Three D3D 8 questions

Started by
2 comments, last by Draigan 23 years, 5 months ago
Question the First: =================== I been trying to initialize my game on someone else''s computer. Every time I call IDirect3D8->CreateDevice(...) it fails and returns the D3DERR_INVALIDCALL error message. I assume this is one of the parameters that I am passing to CreateDevice(). He has a RAGE Pro, as do I. It works fine on mine, but like I said, returns D3DERR_INVALIDCALL. Here is the section of code: // fill parameters memset(&dp, 0, sizeof(dp)); dp.Windowed = FALSE; dp.SwapEffect = D3DSWAPEFFECT_FLIP; dp.BackBufferWidth = scrWidth; dp.BackBufferHeight = scrHeight; dp.MultiSampleType = D3DMULTISAMPLE_NONE; dp.hDeviceWindow = hwnd; dp.BackBufferFormat = m_displayMode; dp.BackBufferCount = 1; dp.EnableAutoDepthStencil = TRUE; dp.AutoDepthStencilFormat = zformat; dp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT; dp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; m_lpD3D->CreateDevice(m_adapter, D3DDEVTYPE_HAL, hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &dp, &m_lpDevice); As well, when I set dp.FullScreen_RefreshRateInHz to D3DPRESENT_RATE_UNLIMITED, it fails on mine with an invalidcall error. So, maybe my friend has a driver problem. But why doesn''t D3DPRESENT_RATE_UNLIMITED work? Question the Second: ==================== I get these messages (in the output window) saying: Direct3D8: :HEL: DestroyExecuteBuffer Is this the normal message that is output when a dynamic vertex buffer gets a DISCARD call? Does D3D actually delete the old vertex buffer and create anew? Question the Third: =================== When I release some textures that I have created, I am presented with this text in the output window of Visual C++ when running in debug mode... Direct3D8: (ERROR):****************************************************** Direct3D8: (ERROR) :ASSERTION FAILED! File d:\nt_chk\multimedia\directx\dxg\d3d8\fw\mipsurf.hpp Line 78: m_cRefDebug == 0 Direct3D8: (ERROR) :***************************************************** Anyone have any idea what this means and why I am getting it? This is a video RAM texture created with no mip-map levels. From the file-name, mipsurf.hpp, it seems that maybe it has something to do with mip surfaces. Thank you all. -Dion
Advertisement
Hey I''m taking a wild stab at "Answer the First"...
Did you enumerate the video hardware adapter modes before trying to set the fill rate to D3DPRESENT_RATE_UNLIMITED?? Perhaps the current card driver doesn''t support that option...

just my 2 cents..

Wazoo

Learn about game programming!Games Programming in C++: Start to Finish
It seems odd that I''d have to enum the adapter modes just to be able to set to D3DPRESENT_RATE_UNLIMITED. The docs say that D3DPRESENT_RATE_UNLIMITED is used to make the presentation run as fast as the hardware can handle. If I have to enumerate to get this mode, then why have it there?
Some cards are unable to flip unless they are in vsync. So you should set it to D3DPRESENT_INTERVAL_ONE to be on the safe side.

In response to your third question, are you releasing the textures before you release the device and D3D object? if not, do so. Also, make sure you check they are null before releasing them.


Please state the nature of the debugging emergency.


sharewaregames.20m.com

This topic is closed to new replies.

Advertisement