- 注册时间
- 2009-11-24
- 最后登录
- 2019-5-19
⑥精研
- 积分
- 1274

|
为啥在ID3DXSprite->Begin()的时候会有问题啊?
Game.exe 中的 0x004011c0 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
这究竟是什么问题啊囧……
- void Render() {
- if (g_pD3DDevice->Clear(NULL, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0, 0) == S_OK){
- if (SUCCEEDED(g_pD3DDevice->BeginScene())) {
- sprite->Begin(D3DXSPRITE_ALPHABLEND);
- // TODO : Add scene rendering code here.
- sprite->End();
- g_pD3DDevice->EndScene();
- g_pD3DDevice->Present(NULL, NULL, NULL, NULL);
- }
- }
- }
复制代码- HRESULT InitializeGraphics(HWND hWnd) {
- HRESULT hr;
- if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
- return E_FAIL;
- D3DPRESENT_PARAMETERS d3dpp;
- ZeroMemory(&d3dpp, sizeof(d3dpp));
- d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
- if (windowed) {
- d3dpp.Windowed = TRUE;
- }
- else {
- D3DDISPLAYMODE d3ddm;
- g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
- d3dpp.BackBufferCount = 1;
- d3dpp.BackBufferFormat = d3ddm.Format;
- d3dpp.BackBufferWidth = screenwidth;
- d3dpp.BackBufferHeight = screenheight;
- d3dpp.Windowed = FALSE;
- }
- hr = g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pD3DDevice);
- if (hr == S_OK) {
- g_pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
- g_pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
- g_pD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
- g_pD3DDevice->SetRenderState(D3DRS_BLENDOPALPHA, D3DBLENDOP_ADD);
- g_pD3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
- g_pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
- }
- return hr;
- }
复制代码 |
|