-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.task.gda.pl!not-for-mail
From: Baranosiu <r...@w...pl>
Newsgroups: pl.comp.programming
Subject: Re: coś lajtowego - konsola
Date: Fri, 19 Oct 2012 10:37:57 +0000 (UTC)
Organization: CI TASK http://www.task.gda.pl/
Lines: 165
Message-ID: <k5rai5$6f5$1@news.task.gda.pl>
References: <4...@g...com>
<k5r0pj$dbm$1@news.task.gda.pl>
<8...@g...com>
<k5r24i$g9e$1@news.task.gda.pl>
<5...@g...com>
<b...@g...com>
<4...@g...com>
<e...@g...com>
<s...@h...pl>
<6...@g...com>
<k5r7cr$ude$1@news.task.gda.pl>
<7...@g...com>
Reply-To: Baranosiu <r...@w...pl>
NNTP-Posting-Host: user-31-175-154-40.play-internet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: news.task.gda.pl 1350643077 6629 31.175.154.40 (19 Oct 2012 10:37:57 GMT)
X-Complaints-To: a...@n...task.gda.pl
NNTP-Posting-Date: Fri, 19 Oct 2012 10:37:57 +0000 (UTC)
User-Agent: slrn/pre1.0.0-18 (Linux)
Xref: news-archive.icm.edu.pl pl.comp.programming:200145
[ ukryj nagłówki ]Dnia 19.10.2012 kenobi <p...@g...com> napisał/a:
> W dniu piątek, 19 października 2012 11:44:00 UTC+2 użytkownik Baranosiu napisał:
>> Dnia 19.10.2012 kenobi <p...@g...com> napisał/a:
>>
>> > W dniu piątek, 19 października 2012 10:48:01 UTC+2 użytkownik Sławomir Szczyrba
napisał:
>>
>> >> kenobi donosi :
>>
>> >>
>>
>> >> >> > 320x200 512x384 640x480 - ale nie wszystkie
>>
>> >>
>>
>> >> > mozesz powiedziec czy udaje sie odpalic w tych rozdzialkach ?
>>
>> >>
>>
>> >> >
>>
>> >>
>>
>> >> Hm, pod WINE zamroziło mi kartę grafiki (intel) na amen.
>>
>> >>
>>
>> >> Musiałem odpiąć kompa od prądu.
>>
>> >>
>>
>> >> Boję się pytać, JAK ty te tryby graficzne ustawiasz...
>>
>> >>
>>
>> >>
>>
>> > normalnie to jest zwykle wywolanie tak ze
>>
>> > nie ja raczej odpowiadam za tego freeze
>>
>> >
>>
>> > void changeResolution(int width, int height, int bpp, int rate=0)
>>
>> > {
>>
>> > DEVMODE fullscreenSettings;
>>
>> >
>>
>> > EnumDisplaySettings(NULL, 0, &fullscreenSettings);
>>
>> >
>>
>> > fullscreenSettings.dmPelsWidth = width;
>>
>> > fullscreenSettings.dmPelsHeight = height;
>>
>> > fullscreenSettings.dmBitsPerPel = bpp;
>>
>> > fullscreenSettings.dmDisplayFrequency = rate;
>>
>> > fullscreenSettings.dmFields = DM_PELSWIDTH |
>>
>> > DM_PELSHEIGHT |
>>
>> > DM_BITSPERPEL
>>
>> > | DM_DISPLAYFREQUENCY
>>
>> > ;
>>
>> >
>>
>> > bool isChangeSuccessful = ChangeDisplaySettings(&fullscreenSettings,
CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL;
>>
>> >
>>
>> >
>>
>> > }
>>
>> >
>>
>> > i wywolania
>>
>> >
>>
>> > if(Key=='1') changeResolution(320, 200, 32);
>>
>> > if(Key=='2') changeResolution(512, 384, 32);
>>
>> > if(Key=='3') changeResolution(640, 480, 32);
>>
>> > if(Key=='4') changeResolution(800, 600, 32);
>>
>> > if(Key=='5') changeResolution(1024, 768, 32);
>>
>> >
>>
>> > u mnie pod xp bardzo ladnie dziala ale ktos
>>
>> > chyba z win 7 mowil mi ze u niego nie ma reakcji na 1 i 2 dziala tylko 3 (i
pewnie 4 5)
>>
>>
>>
>> A to z tego co pamiętam, to działa mniej więcej tak, że jak wywołasz
>>
>> EnumDisplaySettings(NULL,0,&wskaznik); to tylko inicjujesz utworzenie
>>
>> "tablicy" wszystkich dostępnych trybów, a potem się jedzie pętlą i
>>
>> wywołuje EnumDisplaySettings tylko zamiast 0 jako drugiego argumentu
>>
>> wstawia się kolejno 1,2,3... itd. aż do momentu, kiedy ta funkcja
>>
>> zwróci FALSE (zero), oczywiście po każdym wywołaniu możesz sobie
>>
>> sprawdzić jakie dane funkcja Ci zwróciła w strukturze 'wskaznik' :D
>
> no jeszcze sie tym nie interesowalem za
> duzo
>
> dorzucilem dla testow program console2 do
> tego samego zipa mozna wydawac polecania
> typu
>
> fullscreen 320 200 32
>
> i sprawdzac czy dziala, zakomentowalem tez
> linijeke ustawiajaca rate na zero bo to chyba
> wymuszalo najnizsze refreshrate i bez tego chyba
> lepiej dziala - jakby cos to escape wychodzi
> z progsa i rozdzialaka wraca do normalnej
>
Tu masz jak używać EnumDisplaySettings:
http://msdn.microsoft.com/en-us/library/windows/desk
top/dd162611(v=vs.85).aspx
Szczególną uwagę zwróć na opis pola ipDevMode, PRZED wywołaniem tej
funkcji do pola dmSize trzeba wstawić wielkość struktury DEVMODE i
ustawić dmDriverExtra na dodatkowe dane drivera (lub zero), dopiero po
tym wołasz EnumDisplaySettings(NULL,0,&wskaznik) co spowoduje
"odpytanie" drivera o dostępne tryby. Kolejne tryby przeglądasz
wstawiając jako drugi argument kolejne liczby naturalne (poczynając od
1) i w strukturze 'wskaznik' dostajesz informacje o kolejnych trybach
(i trzeba sprawdzać pole dmFields, czy odpowiednie bity są ustawione
na 1, bo jeśli na 0, to znaczy, że odpowiadające mu pole w strukturze
'wskaznik' nie zostalo ustawione przez driver, a więc zawiera "losowe"
dane). Opis pól dmFields jest tu:
http://msdn.microsoft.com/en-us/library/windows/desk
top/dd183565(v=vs.85).aspx
Jeśli znajdziesz spełniający Twoje wymagania tryb (może pasować
rozdzielczość, ale niektóre karty mają 24-bitowe TrueColor, a inne
32-bitowy), to go ustawiasz przez ChangeDisplaySettings (nie
modyfikujesz nic w strukturze na własną rękę! masz gotowca zwróconego
przez driver a więc coś, co "na pewno" jest obsługiwane!). Opis
ChangeDisplaySettings jest tu:
http://msdn.microsoft.com/en-us/library/windows/desk
top/dd183411(v=vs.85).aspx
Możesz najpierw wywołać ChangeDisplaySettings z CDS_TEST dołożonym do
dwflags aby sprawdzić, czy dana kombinacja przejdzie w trybie
fullscreen :D
Jeśli szukany przez Ciebie tryb nie jest obsługiwany przez kartę
(czyli wywołując EnumDisplaySettings dojdziesz do "FALSE"), to nie ma
sensu "siłowo" wołać ChangeDisplaySettings z na sztywno wpisanymi w
program wartościami :D
Następne wpisy z tego wątku
- 19.10.12 13:27 kenobi
- 19.10.12 13:45 Sławomir Szczyrba
- 19.10.12 13:49 kenobi
- 19.10.12 13:53 kenobi
- 19.10.12 13:54 Baranosiu
- 19.10.12 14:20 kenobi
- 19.10.12 14:33 Baranosiu
- 19.10.12 15:14 Sławomir Szczyrba
- 19.10.12 15:32 kenobi
- 19.10.12 15:44 kenobi
- 19.10.12 16:05 Baranosiu
- 19.10.12 16:27 kenobi
- 19.10.12 16:33 kenobi
- 19.10.12 16:35 Baranosiu
- 19.10.12 16:45 Baranosiu
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-20 Precedensy politycznie motywowanego nie wydawania w UE
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi
- 2024-12-20 Opole => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-20 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-20 Rzeszów => International Freight Forwarder <=
- 2024-12-20 Katowice => Key Account Manager (ERP) <=
- 2024-12-20 Ekstradycja
- 2024-12-20 Mikroskop 3D
- 2024-12-20 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-20 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe