direct3d initialisieren / BeginScene



  • hab hier das berühmte buch vom scherfgen...beim bauen von einem kleinen proggie bin ich jetzt bei BeginScene angekommen, und ist gleichzeitig endstation, weil

    seResult seDirect3D::BeginScene() {
    	if(FAILED(m_pD3DDevice->BeginScene())) {
    		seAddErrorLog("seDirect3D::BeginScene failed");
    		return SE_ERROR;
    	}
    	return SE_OK;
    }
    

    spuckt mir eben SE_ERROR zurück *hm*

    direct3d und device ist momentan so eingestellt:

    PresentParams.BackBufferWidth	= 1024;
    PresentParams.BackBufferHeight	= 768;
    
    D3DDISPLAYMODE d3ddm;
    if(FAILED(m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddm))) {
    	seAddErrorLog("Direct3D 9 adapter display mode error");
    	return SE_ERROR;
    }
    PresentParams.BackBufferFormat	= d3ddm.Format;
    PresentParams.SwapEffect		= D3DSWAPEFFECT_DISCARD;
    PresentParams.hDeviceWindow		= hWindow;
    PresentParams.Windowed		= FALSE;
    PresentParams.EnableAutoDepthStencil = TRUE;
    PresentParams.AutoDepthStencilFormat = D3DFMT_D24X8;
    PresentParams.Flags		= D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL;
    
    ...
    
    m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWindow,D3DCREATE_MIXED_VERTEXPROCESSING,&PresentParams,&m_pD3DDevice)
    

    kann mir da wer helfen?



  • Hi,

    es antwortet Dir der berühmte Scherfgen höchstpersönlich 🙂
    (bei weiteren Fragen zum Buch kannst Du auch mein Forum auf www.scherfgen-software.net benutzen)

    Wahrscheinlich vergisst Du, am Ende EndScene aufzurufen.
    Sobald BeginScene zweimal hintereinander aufgerufen wird, ohne ein EndScene dazwischen, gibt es einen Fehler.

    Beim ersten Mal klappt es wahrscheinlich, aber das merkst Du ja nicht, da Du ja nur im Fehlerfall einen Logbucheintrag machst.



  • ich fühle mich geehrt 😃
    hat natürlich auch prompt geholfen...
    mein bildschirm ist jetzt schonmal blau *g* fehlt nur noch das dreieck


Anmelden zum Antworten