Witam!
Przedstawię mój problem. Chcę zmienić tryb graficzny (rozdzielczość, odświeżanie, pełny ekran) w moim programie. Czytałem wiele w necie, ale wszystko z Delphi. Próbowałem przełożyć to sobie na C++, ale nic z tego ;/ Czytałem coś na M$ o DEVMODE, ale jak dodaję deklarację tego typu to mam błędy dziwne i wgl. Proszę o szybką pomoc!
PS: Oczywiście w grę nie wchodzą biblioteki typu SDL ;)
0
0
Oczywiście w grę nie wchodzą biblioteki typu SDL
Dlaczego „oczywiście”? Rozumiem, że masz swoje powody, ale nie są one dla innych „oczywiste”.
Próbowałem przełożyć to sobie na C++, ale nic z tego ;/
Pokaż kod, i powiedz jaki masz z nim problem.
0
Nie czepiaj się ;) Napisałem, aby wszyscy wiedzieli i nie pisali tego typu postów: "Ściągnij se SDL'a i tam masz czego potrzebujesz"
No okej masz tu kod z tego forum w Delphi:
var
Mode: TDeviceMode;
begin
with Mode do
begin
dmSize := SizeOf(Mode);
dmBitsPerPel := 16;
dmPelsWidth := 640;
dmPelsHeight := 480;
dmFields := DM_PELSWIDTH + DM_PELSHEIGHT;
ChangeDisplaySettings(Mode, 0)
end;
end;
A tu z MSDN'u strukturę w CPP:
typedef struct_devicemode {
WCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
DWORD dmDisplayFlags;
DWORD dmDisplayFrequency;
DWORD dmDisplayOrientation;
} DEVMODE;
Tyle, że nie wiem jak to zrobić ;/ Jak wywołuję ChangeDisplaySettings(Mode, 0) to jest error, że nie może przeształcić devicemode na devicemode*. Coś takiego. Próbowałem różności, ale nie mogę sobie z tym poradzić. Proszę o odpowiedź.
0
var
Mode: TDeviceMode;
begin
with Mode do
begin
dmSize := SizeOf(Mode);
dmBitsPerPel := 16;
dmPelsWidth := 640;
dmPelsHeight := 480;
dmFields := DM_PELSWIDTH + DM_PELSHEIGHT;
ChangeDisplaySettings(Mode, 0)
end;
end;
DEVMODE Mode;
Mode.dmSize = sizeof(DEVMODE);
Mode.dmBitsPerPel = 16;
Mode.dmPelsWidth = 640;
Mode.dmPelsHeight = 480;
dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
ChangeDisplaySettings(&Mode,0);