Avatar billede zareba Nybegynder
30. maj 2002 - 11:10 Der er 11 kommentarer og
2 løsninger

SVGA

Jeg vil gerne skrive et program der kan bruge SVGA i en opløsning 640x480. Er der nogle der hved hvordan man kan skrive sådanne programmer?

Måske i gennem asm.
Avatar billede kamikaze Nybegynder
30. maj 2002 - 11:24 #1
Ikke forstået. Vil du ændre skærmopløsning????
Avatar billede zareba Nybegynder
30. maj 2002 - 11:28 #2
Hvis jeg nu fx. vil programere tetris i c++, og jeg vil have at det skal køre med en skærm opløsning 640x480.

Nogle ideer til hvordan fx. jeg kan gøre det?
Avatar billede soreno Praktikant
30. maj 2002 - 11:29 #3
hvilket styresystem snakker vi om ?
Avatar billede kamikaze Nybegynder
30. maj 2002 - 11:30 #4
Ja, jeg har en funktion liggende:

bool SetScreenRes(DWORD XRes, DWORD YRes, DWORD Bits)
{
    DEVMODE  DevMode;
    if (EnumDisplaySettings(NULL, 0, &DevMode) == 0) return false;
    DevMode.dmFields    = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
    DevMode.dmPelsWidth  = XRes;
    DevMode.dmPelsHeight = YRes;
    DevMode.dmBitsPerPel = Bits;
    if (ChangeDisplaySettings(&DevMode, 0) != DISP_CHANGE_SUCCESSFUL) return false;
    return true;
}
Avatar billede kamikaze Nybegynder
30. maj 2002 - 11:31 #5
men, du skal bare lige vide at det anses for dårlig stil at ændre brugerens skærmopløsning :-)
Avatar billede zareba Nybegynder
30. maj 2002 - 11:32 #6
Windows 98.
Avatar billede soreno Praktikant
30. maj 2002 - 11:35 #7
brug opengl www.opengl.org så behøver du ikke bekymre dig om opløsningen.. du kan bare lave dit eget kordinatsystem og lade opengl om at styre resten.
tutorials kan findes her:
nehe.gamedev.net
nate.scuzzy.net
Avatar billede kamikaze Nybegynder
30. maj 2002 - 11:35 #8
FX:

#include <windows.h>
#include <conio.h>

bool SetScreenRes(DWORD XRes, DWORD YRes, DWORD Bits)
{
    DEVMODE  DevMode;
    if (EnumDisplaySettings(NULL, 0, &DevMode) == 0) return false;
    DevMode.dmFields    = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
    DevMode.dmPelsWidth  = XRes;
    DevMode.dmPelsHeight = YRes;
    DevMode.dmBitsPerPel = Bits;
    if (ChangeDisplaySettings(&DevMode, 0) != DISP_CHANGE_SUCCESSFUL) return false;
    return true;
}


void main()
{
    SetScreenRes(800, 600, 16);
    getch();
    SetScreenRes(1024, 768, 32);
}
Avatar billede kamikaze Nybegynder
30. maj 2002 - 11:42 #9
soreno >> Det kan man også i Win32 API'et vha. SetViewPortExt og SetWindowExtEx osv.
Avatar billede kamikaze Nybegynder
30. maj 2002 - 11:42 #10
(men der er nu meget man kan i OpenGL som man ikke kan i Win API'et :-)
Avatar billede soreno Praktikant
30. maj 2002 - 11:43 #11
ok, det viste jeg ikke, men der er nu også andre fordele ved opengl :-)
Avatar billede zareba Nybegynder
30. maj 2002 - 11:46 #12
Jeg deler lige over. TAK:-)
Avatar billede kamikaze Nybegynder
30. maj 2002 - 12:16 #13
Takker for points :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester