 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DerJJ Junior JLI'ler
Anmeldedatum: 24.12.2002 Beiträge: 84
Medaillen: Keine
|
Verfasst am: 15.02.2003, 16:56 Titel: Problem mit Flip |
|
|
Ich habe mir eine Primäre Oberfläche angelegt, genau wie im Buch seite 336 beschrieben
Code: |
LPDIRECTDRAWSURFACE7 lpSPrimary;
LPDIRECTDRAWSURFACE7 lpSBack;
ZeroMemory(&SurfDesc,sizeof(SurfDesc));
SurfDesc.dwSize = sizeof(SurfDesc);
SurfDesc.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
SurfDesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_VIDEOMEMORY;
SurfDesc.dwBackBufferCount = 1;
if(FAILED(lpDD7->CreateSurface(&SurfDesc,&lpSPrimary,NULL)))
{
MessageBox(0,"Fehler beim Erzeugen der primären Oberfläche","Fehler", MB_OK | MB_ICONERROR);
return -1;
}
DDSCAPS2 ddCaps;
ddCaps.dwCaps = DDSCAPS_BACKBUFFER;
if(FAILED(lpSPrimary->GetAttachedSurface(&ddCaps,&lpSBack)))
{
} |
So, und dann will ich ein Bild ausgeben:
Code: | void Render(void)
{
DDBLTFX BlitFX;
ZeroMemory(&BlitFX,0);
BlitFX.dwSize = sizeof(BlitFX);
BlitFX.dwFillColor = 0;
if(FAILED(lpSBack->GetDC(&hdc)))
{
MessageBox(0,"Fehler beim hohlen eines Device Context","Fehler", MB_OK | MB_ICONERROR);
}
HBITMAP hBM = LoadBitmap(hInstance,MAKEINTRESOURCE(IDB_HINTERGRUND));
HDC hBmDC = CreateCompatibleDC(hdc);
SelectObject(hBmDC,hBM);
BitBlt(hdc,0,0,150,150,hBmDC,0,0,SRCCOPY);
DeleteDC(hBmDC);
DeleteObject(hBM);
lpSBack->ReleaseDC(hdc);
lpSPrimary->Flip(NULL,DDFLIP_WAIT);
}
|
1. wird kein Bild ausgegeben
und 2. habe ich immer die Fehlermeldung das die primäre Oberfläche nicht angelegt werden konnte!
3. Wenn ich mehre Bilder aus einer Resource lade... brauch ich da für jedes einen eigenen Device Context?
4. Geht das mit Flip überhaupt in einer Fensteranwendung? Oder kann ich da nur im Fullscreen modus arbeiten? |
|
Nach oben |
|
 |
Sören JLI Master Trainee

Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 15.02.2003, 23:07 Titel: |
|
|
So viel ich weiss geht primäre Oberfläche, Flip() etc. nur im VollBild Modus, da man den exklusiven Zugriff benötigt!
Du musst also dein Programm anpassen, dass es im Vollbild läuft! |
|
Nach oben |
|
 |
DerJJ Junior JLI'ler
Anmeldedatum: 24.12.2002 Beiträge: 84
Medaillen: Keine
|
Verfasst am: 16.02.2003, 11:42 Titel: |
|
|
Ich mag aber net das mein Programm im Vollbild läuft...
also soll ich dann zur Grafikausgabe doch lieber nur das GDI nehmen,
oder trotzdem bei DirectX bleiben? |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|