JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=e1a296c3befc32a2c642a6b228c672c5Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

DD - Fensteranwendung

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



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 18:52    Titel: DD - Fensteranwendung Antworten mit Zitat

Hallo alle zusammen

irgendwie gehts ab CreateSurface nicht mehr weiter bzw. das ErrorRoutline das ich geproggt habe erscheint

hier ist der InitCode von DirectDraw:
Code:

if(FAILED(m_DD7->SetCooperativeLevel(m_WindowClass->GetHWnd(), DDSCL_NORMAL)))
      {
         return m_ErrorClass->ErrorMessageBox("WINDOW DirectDraw SCL Error");
      }

      DDSURFACEDESC2 DDSurfDesc;
      ZeroMemory(&DDSurfDesc, sizeof(DDSurfDesc));

      DDSurfDesc.dwFlags = DDSD_CAPS |DDSD_BACKBUFFERCOUNT;

      DDSurfDesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_VIDEOMEMORY;

      DDSurfDesc.dwBackBufferCount = 1;

      if(FAILED(m_DD7->CreateSurface(&DDSurfDesc, &m_DDSPrimary, NULL)))
      {
         return m_ErrorClass->ErrorMessageBox("WINDOW Primary CreateSurface Error");
      }

      DDSCAPS2 DDCaps;
      DDCaps.dwCaps = DDSCAPS_BACKBUFFER;

      if(FAILED(m_DDSPrimary->GetAttachedSurface(&DDCaps, &m_DDSBackBuffer)))
      {
         return m_ErrorClass->ErrorMessageBox("WINDOW BackBuffer Error");
      }

      if(FAILED(m_DD7->CreateClipper(NULL, &m_DDClipper, NULL)))
      {
         return m_ErrorClass->ErrorMessageBox("CreateClipper Error");
      }

      if(FAILED(m_DDClipper->SetHWnd(0, m_WindowClass->GetHWnd())))
      {
         return m_ErrorClass->ErrorMessageBox("SetHwnd Error");
      }

      if(FAILED(m_DDSPrimary->SetClipper(m_DDClipper)))
      {
         return m_ErrorClass->ErrorMessageBox("SetClipper Error");
      }

plz help Crying or Very sad

MFG Sec
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 20:36    Titel: Antworten mit Zitat

Wo kommt denn ein Fehler?
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nEp
Junior JLI'ler



Anmeldedatum: 03.06.2003
Beiträge: 75

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 23:38    Titel: Antworten mit Zitat

Hm also aus dem Code hier ist das jetzt nicht ersichtlich, es kann höchstens daran liegen, dass du vergessen hast die dwSize Variable von DDSURFACEDESC2 auszufüllen, sprich:

Code:

DDSRUFACEDESC2 ddsd;
ddsd.dwSize = sizeof(ddsd);
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 30.07.2003, 11:38    Titel: Antworten mit Zitat

@Lord bei CreateSurface

@nEp es liegt auch daran nicht
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 30.07.2003, 12:09    Titel: Antworten mit Zitat

hier ist die funktion nochmal, bei CreateSurface kommt ein fehler,
aber wenn ich DDSD_BACKBUFFERCOUNT in der zeile

DDSurfDesc.dwFlags = DDSD_CAPS |DDSD_BACKBUFFERCOUNT;
und in der zeile

DDSurfDesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_VIDEOMEMORY;
die DDSCAPS_FLIP und DDSCAPS_COMPLEX weglase gehts, aber dann hab ich kein BackBuffer

hier ist die funktion noch mal:
Code:


if(FAILED(m_DD7->SetCooperativeLevel(m_WindowClass->GetHWnd(), DDSCL_NORMAL)))
      {
         return m_ErrorClass->ErrorMessageBox("WINDOW DirectDraw SCL Error");
      }

      /* DDSURFACEDESC2 ************************************************************************/

      DDSURFACEDESC2 DDSurfDesc;

      ZeroMemory(&DDSurfDesc, sizeof(DDSurfDesc));
      DDSurfDesc.dwSize = sizeof(DDSurfDesc);

      DDSurfDesc.dwFlags = DDSD_CAPS |DDSD_BACKBUFFERCOUNT;

      DDSurfDesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_VIDEOMEMORY;

      DDSurfDesc.dwBackBufferCount = 1;

      DDSCAPS2 DDCaps;
      DDCaps.dwCaps = DDSCAPS_BACKBUFFER;

      /*****************************************************************************************/
      
      /* CreateSurface *************************************************************************/

      if(FAILED(m_DD7->CreateSurface(&DDSurfDesc, &m_DDSPrimary, NULL)))
      {
         return m_ErrorClass->ErrorMessageBox("WINDOW Primary CreateSurface Error");
      }

      /*****************************************************************************************/

      /* GetAttachedSurface ********************************************************************/

      if(FAILED(m_DDSPrimary->GetAttachedSurface(&DDCaps, &m_DDSBackBuffer)))
      {
         return m_ErrorClass->ErrorMessageBox("WINDOW BackBuffer Error");
      }

      /*****************************************************************************************/

      /* CreateClipper *************************************************************************/

      if(FAILED(m_DD7->CreateClipper(NULL, &m_DDClipper, NULL)))
      {
         return m_ErrorClass->ErrorMessageBox("CreateClipper Error");
      }

      /*****************************************************************************************/

      /* SetHWnd *******************************************************************************/

      if(FAILED(m_DDClipper->SetHWnd(0, m_WindowClass->GetHWnd())))
      {
         return m_ErrorClass->ErrorMessageBox("SetHwnd Error");
      }

      /*****************************************************************************************/

      /* SetClipper ****************************************************************************/

      if(FAILED(m_DDSPrimary->SetClipper(m_DDClipper)))
      {
         return m_ErrorClass->ErrorMessageBox("SetClipper Error");
      }

      /*****************************************************************************************/


MFG Sec
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 30.07.2003, 14:14    Titel: Antworten mit Zitat

Hi,

Willst du ein Windowsfenster machen? Dann würde ich dir keinen echten Backbuffer empfehlen.
Versuch mal folgendes:
An dieser Stelle:
Code:
DDSCAPS2 DDCaps;
DDCaps.dwCaps = DDSCAPS_BACKBUFFER;

Keine Variable vom Typ DDSCAPS anlegen, sondern DDSURFACEDESC2 nutzen:
Code:
 DDSurfDesc.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;

Und dann später beim Backbuffer anlegen:
Code:
if(FAILED(m_DDSPrimary->GetAttachedSurface(&DDSurfDesc.ddsCaps, &m_DDSBackBuffer)))

_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 30.07.2003, 14:42    Titel: Antworten mit Zitat

So geht auch nicht Crying or Very sad ,
aber wenn ich im SetCooperativeLevel
DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN eingebe dann gehts Question
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
madmax
Mini JLI'ler



Anmeldedatum: 06.11.2002
Beiträge: 14
Wohnort: Bayern, Mittelfranken, Ansbach
Medaillen: Keine

BeitragVerfasst am: 30.07.2003, 14:53    Titel: Antworten mit Zitat

Hi, hast du des genauso wie im Buch? da is nämlich a Fehler; war bei mir auch. du mussts so machen wie Lord of Programming des vorgschlagen hat dann müsstes funktionieren
_________________
Wer kämpft kann verlieren, wer nicht kämpft hat schon - B. Brecht
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 30.07.2003, 19:30    Titel: Antworten mit Zitat

Es geht nicht Crying or Very sad Crying or Very sad Crying or Very sad

es bleibt immer an der CreateSurface-Funktion stehen bzw. der MessageBox erscheint
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 31.07.2003, 11:39    Titel: Antworten mit Zitat

Dann probier mal, an der Stelle:
Code:
DDSurfDesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_VIDEOMEMORY;

Zitat:
DDSCAPS_VIDEOMEMORY

wegzulassen
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Data
Mini JLI'ler



Anmeldedatum: 16.09.2002
Beiträge: 39

Medaillen: Keine

BeitragVerfasst am: 01.08.2003, 22:20    Titel: Antworten mit Zitat

DDSCAPS_VIDEOMEMORY weglassen?

Ich dachte immer das man die primäre Oberfläche nur im Grafikkartenspeicher ablegen kann
_________________
nothing is inmpossible
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 02.08.2003, 11:03    Titel: Antworten mit Zitat

Jepp, aber das kann der Computer AFAIK selber rausfinden. Bei mir funzt es zumindest, wenn ich das weglasse.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 02.08.2003, 17:42    Titel: Antworten mit Zitat

Was bedeutet denn das "AFAIK"???
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 02.08.2003, 18:53    Titel: Antworten mit Zitat

AFAIK (As Far As I Know):
meines Wissens, soviel ich weiß

ist eine gängige Abkürzung im Internet
_________________
The source of all power is in its destiny...
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