-
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
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek