000
14.07.2002, 16:26
snoopdog
|
Hi immer wenn ich meine Surfaces Blitten will, dann schließt sich mein Programm immer.... heir mal der code vom blitting und vom ausgebe in ne Surface!
BOOL Clear_Puffer(LPDIRECTDRAWSURFACE7 lpDDSPrimary, LPDIRECTDRAWSURFACE7 lpDDSBack) { DDBLTFX ddBltFx;
RECT quell,ziel;
ddBltFx.dwSize = sizeof(DDBLTFX); ddBltFx.dwFillColor = RGB(0,0,255);
//SetRect(&fill_area,0,0,1024,768);
quell.top = 100; quell.bottom = 100; quell.left = 100; quell.right = 100;
ziel.top = 100; ziel.bottom = 100; ziel.left = 100; ziel.right = 100;
ddrval = lpDDSPrimary->Blt(&ziel,lpDDSBack,&quell,DDBLT_COLORFILL | DDBLT_WAIT,NULL); //ddrval = lpDDSPrimary->BltFast(100,100,lpDDSSurface,NULL,DDBLTFAST_WAIT);
//while(lpDDSPrimary->Flip(NULL,DDFLIP_WAIT)!=DD_OK);
return true;
}
void paint(LPDIRECTDRAWSURFACE7 lpDDSSurface) { HDC hDC; const char szText[] = "Bal";
lpDDSSurface->GetDC(&hDC); TextOut(hDC,100,100,szText,strlen(szText)); lpDDSSurface->ReleaseDC(hDC); }
ich hab zwei surfaces erstellt, einmal die Primary und einmal ne OffscreenSurface. Kann mir einer sagen warum das programm sich imemr schließt ??
PS ich rufe die Clear_Puffer Funktion (ist die Blitting Funktion) nach der paint funktion in der WinMain Funktion auf.
--
Visit our 500er Gamer Lan @ www.evil-lanparty.de or @ www.evil-havoc.com Visit the HaVoc Lanparty Community @ www.havoc-lanparty.com
|
|
Profil || Suche
|
002
14.07.2002, 17:01
snoopdog
|
jop hab ich mit diesem code
void CreateOffscreenSurface(LPDIRECTDRAWSURFACE7 lpDDSOffscreen) { DDSURFACEDESC2 ddsd; DDSCAPS2 ddscaps;
ZeroMemory(&ddsd,sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd); ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY; ddsd.dwHeight = 100; ddsd.dwWidth = 100;
ddrval = lpDD->CreateSurface(&ddsd,&lpDDSOffscreen,NULL); }
und für die Primary
void CreatePrimarySurface(LPDIRECTDRAWSURFACE7 lpDDSPrimary) { DDSURFACEDESC2 ddsd; DDSCAPS ddscaps;
ZeroMemory(&ddsd,sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); ddsd.dwFlags = DDSD_CAPS; ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
ddrval = lpDD->CreateSurface(&ddsd,&lpDDSPrimary,NULL); }
und die beiden Funktionen rufe ich auch in der WinMain funktion auf.
Aber ich sehe grad, kan nder thread in Gamprogramming forum verschoben werden??
--
Visit our 500er Gamer Lan @ www.evil-lanparty.de or @ www.evil-havoc.com Visit the HaVoc Lanparty Community @ www.havoc-lanparty.com
|
|
Profil || Suche
|