Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 29.07.2003, 18:52 Titel: DD - Fensteranwendung |
|
|
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
MFG Sec _________________ MFG Sec |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
|
Nach oben |
|
|
nEp Junior JLI'ler
Anmeldedatum: 03.06.2003 Beiträge: 75
Medaillen: Keine
|
Verfasst am: 29.07.2003, 23:38 Titel: |
|
|
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 |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 30.07.2003, 11:38 Titel: |
|
|
@Lord bei CreateSurface
@nEp es liegt auch daran nicht _________________ MFG Sec |
|
Nach oben |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 30.07.2003, 12:09 Titel: |
|
|
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 |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.07.2003, 14:14 Titel: |
|
|
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 |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 30.07.2003, 14:42 Titel: |
|
|
So geht auch nicht ,
aber wenn ich im SetCooperativeLevel
DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN eingebe dann gehts _________________ MFG Sec |
|
Nach oben |
|
|
madmax Mini JLI'ler
Anmeldedatum: 06.11.2002 Beiträge: 14 Wohnort: Bayern, Mittelfranken, Ansbach Medaillen: Keine
|
Verfasst am: 30.07.2003, 14:53 Titel: |
|
|
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 |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 30.07.2003, 19:30 Titel: |
|
|
Es geht nicht
es bleibt immer an der CreateSurface-Funktion stehen bzw. der MessageBox erscheint _________________ MFG Sec |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 31.07.2003, 11:39 Titel: |
|
|
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 |
|
|
Mr. Data Mini JLI'ler
Anmeldedatum: 16.09.2002 Beiträge: 39
Medaillen: Keine
|
Verfasst am: 01.08.2003, 22:20 Titel: |
|
|
DDSCAPS_VIDEOMEMORY weglassen?
Ich dachte immer das man die primäre Oberfläche nur im Grafikkartenspeicher ablegen kann _________________ nothing is inmpossible |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 02.08.2003, 11:03 Titel: |
|
|
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 |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 02.08.2003, 17:42 Titel: |
|
|
Was bedeutet denn das "AFAIK"??? _________________ MFG Sec |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 02.08.2003, 18:53 Titel: |
|
|
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 |
|
|
|