Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
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!
Quellcode:
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

zum Seitenanfang zum Seitenende Profil || Suche
001
14.07.2002, 16:56
[RMen]OneStone



lpDDSSurface initalisiert?

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
002
14.07.2002, 17:01
snoopdog



jop hab ich mit diesem code
Quellcode:
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

zum Seitenanfang zum Seitenende Profil || Suche