-
11. Data: 2012-10-19 10:52:11
Temat: Re: coś lajtowego - konsola
Od: Baranosiu <r...@w...pl>
Dnia 19.10.2012 kenobi <p...@g...com> napisał/a:
>> > 320x200 512x384 640x480 - ale nie wszystkie
>>
> mozesz powiedziec czy udaje sie odpalic w tych rozdzialkach ?
>
Tak jak napisałem wcześniej, odpaliłem to pod Wine (emulacja WinAPI
pod Unixem) a X-y rządzą się nieco innymi prawami (X11 to protokół
sieciowy a nie driver do grafiki :D). Co do trybów, to nie jestem zbyt
biegły w "gołym" WinAPI, ale pewnie o możliwe tryby jakoś się system
odpytać da (bo DirectX, to w razie czego sobie włączy skalowanie :D).
-
12. Data: 2012-10-19 11:19:14
Temat: Re: coś lajtowego - konsola
Od: Baranosiu <r...@w...pl>
Dnia 19.10.2012 Sławomir Szczyrba <c...@o...the.night> napisał/a:
> 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...
>
> Sławek
Hehe :D Ciekawe, u mnie (też Wine) opcja fullscreen działa, ale
rozdzielczości po prostu się nie przełączają :D Pewnie driver Intela
nie jest najlepiej napisany (a że X-server chodzi z uprawnieniami
roota, to ma swobodny dostęp do sprzętu i coś nabroił :D).
-
13. Data: 2012-10-19 11:31:00
Temat: Re: coś lajtowego - konsola
Od: kenobi <p...@g...com>
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)
-
14. Data: 2012-10-19 11:32:50
Temat: Re: coś lajtowego - konsola
Od: Sławomir Szczyrba <c...@o...the.night>
Obiekt obserwowany: "Baranosiu"
Wyniki obserwacji :
>
> Hehe :D Ciekawe, u mnie (też Wine) opcja fullscreen działa, ale
> rozdzielczości po prostu się nie przełączają :D Pewnie driver Intela
> nie jest najlepiej napisany (a że X-server chodzi z uprawnieniami
> roota, to ma swobodny dostęp do sprzętu i coś nabroił :D).
>
Przełączanie rozdziałek nie działa dopóki nie wyjdziesz z 'konsoli'
(poleceniem leave)
Sławek
--
________ PRZY TWOJEJ KARMIE TRUDNO OCZEKIWAĆ AŻ MRÓWKI
_/ __/ __/ (Równoumagicznienie)
\__ \__ \___________________________________________________
____________
/___/___/ Sławomir Szczyrba steev/AT/hot\dot\pl
-
15. Data: 2012-10-19 11:33:09
Temat: Re: coś lajtowego - konsola
Od: kenobi <p...@g...com>
W dniu piątek, 19 października 2012 11:19:19 UTC+2 użytkownik Baranosiu napisał:
> Dnia 19.10.2012 Sławomir Szczyrba <c...@o...the.night> napisał/a:
>
> > 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...
>
> >
>
> > Sławek
>
>
>
> Hehe :D Ciekawe, u mnie (też Wine) opcja fullscreen działa, ale
>
> rozdzielczości po prostu się nie przełączają :D Pewnie driver Intela
>
> nie jest najlepiej napisany (a że X-server chodzi z uprawnieniami
>
> roota, to ma swobodny dostęp do sprzętu i coś nabroił :D).
jesli tak to polecalbym przelaczenie samemu pulpitu w niska rozdzialke bo konsola na
duzej raczej kiepsko wyglada
-
16. Data: 2012-10-19 11:43:58
Temat: Re: coś lajtowego - konsola
Od: Baranosiu <r...@w...pl>
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
-
17. Data: 2012-10-19 11:55:46
Temat: Re: coś lajtowego - konsola
Od: kenobi <p...@g...com>
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
-
18. Data: 2012-10-19 12:01:00
Temat: Re: coś lajtowego - konsola
Od: kenobi <p...@g...com>
W dniu piątek, 19 października 2012 11:55:46 UTC+2 użytkownik kenobi napisał:
> 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
jest to niedopracowane ale ma pewien potencjal
bo to jest w odczuciu cos w rodzaju wlasnego osa do tego z dostepem do wnetrza
wlasnego programu
-
19. Data: 2012-10-19 12:37:57
Temat: Re: coś lajtowego - konsola
Od: Baranosiu <r...@w...pl>
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
-
20. Data: 2012-10-19 13:27:14
Temat: Re: coś lajtowego - konsola
Od: kenobi <p...@g...com>
no spox, mozna bedzie zobaczyc ogolnie
temat dotyczyl troche czegos innego
1) jak fajnie poprawic taka konsole by
lepiej dzialala/wygladala (bede to pewnie
badac)
2) co mozna spod niej obslugiwac by bylo
fajnie (konsola ma pewien potencjal)