|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
m_maty Mini JLI'ler
Anmeldedatum: 12.08.2003 Beiträge: 24 Wohnort: bei Koblenz Medaillen: Keine
|
Verfasst am: 24.02.2005, 23:11 Titel: Backbuffer - Present funktioniert nicht |
|
|
hi,
weiss jemand wie ich die korrekte Initialisierung des Backpuffers für den Fenstermodus machen muss.
Hab lange probiert, wenn ich es so mache zeigt er mir nur dann die richtige ausgabe wenn ich nach Present auch noch einen Screenshot mache, kommentiere ich das aus zeigt er nix an (Nur die gewählte BBuffer farbe - seltsam ?
CPP: | D3DDISPLAYMODE d3ddm;
m_lpD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm);
D3DPRESENT_PARAMETERS PParams;
ZeroMemory(&PParams, sizeof(PParams));
PParams.Windowed = true;
PParams.hDeviceWindow = m_hWnd;
PParams.SwapEffect = D3DSWAPEFFECT_COPY ; //D3DSWAPEFFECT_DISCARD;
PParams.BackBufferHeight = m_rFensterRect.bottom;
PParams.BackBufferWidth = m_rFensterRect.right;
PParams.EnableAutoDepthStencil=TRUE;
PParams.AutoDepthStencilFormat=D3DFMT_D16;
PParams.BackBufferFormat = d3ddm.Format;
PParams.MultiSampleType = D3DMULTISAMPLE_NONE;
PParams.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
if(FAILED(m_lpD3D->CreateDevice(D3DADAPTER_DEFAULT, //welche Grafikkarte
m_devTyp, //Hard oder Softwaremodus
m_hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&PParams,
&m_lpD3DDevice)))
{
AfxMessageBox("Fehler bei der Directx Initialisierung ");
return;
}
// Zeiger auf dem Hintergrundpuffer holen
m_lpD3DDevice->GetBackBuffer(0,0,
D3DBACKBUFFER_TYPE_MONO,
&m_lpBackBuffer);
----------------------------------------------------------------
//Füllfarbe um Backpuffer zu füllen
this->m_lpD3DDevice->Clear(0,0,D3DCLEAR_TARGET, m_colFarbe,0,0);
this->m_lpD3DDevice->BeginScene();
this->m_lpD3DDevice->StretchRect(m_surf_Hintergrundsurface,
NULL,
m_lpBackBuffer,
NULL,
D3DTEXF_NONE);
this->m_lpD3DDevice->EndScene();
//Backpuffer anzeigen
this->m_lpD3DDevice->Present(0,0,this->m_hWnd,0);
// Oberfläche in Datei speichern (wenn ich das mache zeigt er mir im Direct X Fenster auch den Backpuffer an - dann müsste ich aber jedes mal Screenshots machen um das Prog zum laufen zu bekommen)
//D3DXSaveSurfaceToFile("c:\\screenshot.bmp",D3DXIFF_BMP, m_lpBackBuffer,0,NULL);
|
Hoffe, mir kann da jemand helfen
Grüsse, Maty |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
m_maty Mini JLI'ler
Anmeldedatum: 12.08.2003 Beiträge: 24 Wohnort: bei Koblenz Medaillen: Keine
|
Verfasst am: 25.02.2005, 12:42 Titel: |
|
|
ist immer: D3D_OK
wenn ich auf softwaremodus umschalte macht er's korrekt. |
|
Nach oben |
|
|
m_maty Mini JLI'ler
Anmeldedatum: 12.08.2003 Beiträge: 24 Wohnort: bei Koblenz Medaillen: Keine
|
Verfasst am: 26.02.2005, 16:01 Titel: |
|
|
ok, hatt sich erledigt auf meinem andern pc gings - war wohl der treiber |
|
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
|