JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem mit Flip

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DerJJ
Junior JLI'ler



Anmeldedatum: 24.12.2002
Beiträge: 84

Medaillen: Keine

BeitragVerfasst am: 15.02.2003, 17:56    Titel: Problem mit Flip Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 16.02.2003, 00:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
DerJJ
Junior JLI'ler



Anmeldedatum: 24.12.2002
Beiträge: 84

Medaillen: Keine

BeitragVerfasst am: 16.02.2003, 12:42    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum