Ĺadny brzuch
BARDZO potrzebuje odpowiedzi więc pisze jeszcze raz :)
A więc mam taki problem we wszystkich kursach DD
mamy taką inicjacje:
lpDDGlowny->SetCooperativeLevel(hwnd, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE);
lpDDGlowny->SetDisplayMode(800, 600, 16);
Ale ja niechce wyświetlać wszystkiego na pełnym ekranie tylko np.
ładować to do objektu TImage, lub czegoś podobnego.
Jak daje flage DDSCL_NORMAL i niepisze SetDisplayMode to przy tworzeniu powierzchni wyskakuje błąd EAccessViolation tak jakby DD wogóle nie stworzył powierzchni.
Jak to zrobić?
JUŻ WIEM (SAM DO TEGO DOSZŁEM) :)
Po pierwsze nie może być PRIMARYSURFACE tylko OFFSCREENPLAIN
No i oczywiście trzeba zainicjować tak:
DirectDrawCreate(NULL, &lpDD, NULL);
lpDD->SetCooperativeLevel(Handle, DDSCL_NORMAL);
A żeby przenieść na obiekt TImage to trzeba napisać:
BitBlt(Image1->Canvas->Handle, 0, 0, 250, 250, kontekst, 0, 0, SRCCOPY);
Gdzie kontekst to kontekst powierzchni DD.
:) :) :)
I już jest DD wyświetla wynik na obiekcie TImage.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
A więc mam taki problem we wszystkich kursach DD
mamy taką inicjacje:
lpDDGlowny->SetCooperativeLevel(hwnd, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE);
lpDDGlowny->SetDisplayMode(800, 600, 16);
Ale ja niechce wyświetlać wszystkiego na pełnym ekranie tylko np.
ładować to do objektu TImage, lub czegoś podobnego.
Jak daje flage DDSCL_NORMAL i niepisze SetDisplayMode to przy tworzeniu powierzchni wyskakuje błąd EAccessViolation tak jakby DD wogóle nie stworzył powierzchni.
Jak to zrobić?
JUŻ WIEM (SAM DO TEGO DOSZŁEM) :)
Po pierwsze nie może być PRIMARYSURFACE tylko OFFSCREENPLAIN
No i oczywiście trzeba zainicjować tak:
DirectDrawCreate(NULL, &lpDD, NULL);
lpDD->SetCooperativeLevel(Handle, DDSCL_NORMAL);
A żeby przenieść na obiekt TImage to trzeba napisać:
BitBlt(Image1->Canvas->Handle, 0, 0, 250, 250, kontekst, 0, 0, SRCCOPY);
Gdzie kontekst to kontekst powierzchni DD.
:) :) :)
I już jest DD wyświetla wynik na obiekcie TImage.