-
Data: 2012-10-19 12:37:57
Temat: Re: coś lajtowego - konsola
Od: Baranosiu <r...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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
Najnowsze wątki
- 2025-02-05 Re: UK: Michał K. dalej czeka na rozprawę ekstradycyjną w areszcie [bo nie (jeszcze?) zebrał kaucji]
- 2025-02-04 ranking wyciszenia, głośność, hałas przy 130 km/h, na postoju, przy przyspieszaniu
- 2025-02-05 Warszawa => IT Recruiter <=
- 2025-02-05 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-02-05 Rzeszów => Spedytor Międzynarodowy <=
- 2025-02-05 Warszawa => IT Business Analyst <=
- 2025-02-05 Warszawa => Specjalista DevOps <=
- 2025-02-05 Łódź => NodeJS Developer <=
- 2025-02-05 Warszawa => QA Engineer (Quality Assurance) <=
- 2025-02-05 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-02-05 Warszawa => QA Engineer <=
- 2025-02-05 Warszawa => Programista Full Stack .Net <=
- 2025-02-05 Re: UK: Michał K. dalej czeka na rozprawę ekstradycyjną w areszcie [bo nie (jeszcze?) zebrał kaucji]
- 2025-02-04 podpisywanie umów z datą wsteczną
- 2025-02-04 Radio internetowe do starego Androida