博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
D3D中SetTransform(D3DTS_VIEW)出现 0xC0000005: 读取位置 0x00000000 时发生访问冲突
阅读量:20816 次
发布时间:2019-12-03

本文共 1551 字,大约阅读时间需要 5 分钟。

VOID onCreateD3D()
{
g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
if (!g_pD3D)
{
return;
}
D3DDISPLAYMODE d3ddm;
ZeroMemory(&d3ddm, sizeof(d3ddm));
g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
D3DPRESENT_PARAMETERS d3dapp;
ZeroMemory(&d3dapp, sizeof(d3dapp));
d3dapp.Windowed = FALSE;
d3dapp.BackBufferHeight = d3ddm.Height;
d3dapp.BackBufferWidth = d3ddm.Width;
d3dapp.BackBufferCount = 1;
//d3dapp.BackBufferFormat = d3ddm.Format;
d3dapp.AutoDepthStencilFormat = D3DFMT_D16;
d3dapp.EnableAutoDepthStencil = true;
d3dapp.SwapEffect = D3DSWAPEFFECT_DISCARD;
g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dapp, &g_p3dDevice);
if (!g_p3dDevice)
{
return;
}
g_p3dDevice->SetRenderState(D3DRS_ZENABLE, true);
g_p3dDevice->SetRenderState(D3DRS_LIGHTING, false);
g_p3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
g_p3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);

}

VOID onInit()

{
onCreateD3D();
D3DXMATRIX matView, matProj;
D3DXMatrixIdentity(&matView);
D3DXMatrixIdentity(&matProj);
D3DXVECTOR3 vEyes(0.0f,3.0f,-10.0f);
D3DXVECTOR3 vLookAt(0.0f,0.0f,0.0f);
D3DXVECTOR3 vUp(0.0f,1.0f,0.0f);
D3DXMatrixLookAtLH(&matView, &vEyes, &vLookAt, &vUp);
g_p3dDevice->SetTransform(D3DTS_VIEW, &matView);
D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI / 3, 16.0f/ 9.0f, 1.0f, 5000.0f);
g_p3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
}

出现观察矩阵设置异常的原因是忘记了在初始化时给D3DPRESENT_PARAMETERS的BackBufferFormat 设置参数,去掉第一句标红的注释符号就行了

0xC0000005错误的根本原因是:忘记初始化或者指定的数据所占内存大小大于该数据类型,即所谓的内存溢出

转载地址:http://ukuubk.baihongyu.com/

你可能感兴趣的文章
系统架构设计笔记(64)—— 嵌入式系统设计
查看>>
系统架构设计笔记(65)—— 项目的范围、时间与成本
查看>>
系统架构设计笔记(66)—— 配置管理与文档管理
查看>>
说说 Python 元组的高级用法
查看>>
系统架构设计笔记(66)—— 配置管理与文档管理
查看>>
系统架构设计笔记(67)—— 软件需求管理
查看>>
系统架构设计笔记(68)—— 软件开发的质量与风险
查看>>
系统架构设计笔记(69)—— 人力资源管理
查看>>
系统架构设计笔记(70)—— 软件运行评价与过程改进
查看>>
系统架构设计笔记(71)—— 信息系统概述
查看>>
说说 Canvas 的旋转功能
查看>>
说说 Canvas 的缩放功能
查看>>
系统架构设计笔记(72)—— 信息系统工程
查看>>
系统架构设计笔记(73)—— 政府信息化与电子政务
查看>>
系统架构设计笔记(74)—— 企业信息化与电子商务
查看>>
系统架构设计笔记(75)—— 知识管理与商业智能
查看>>
说说在 log4j 中如何把日志记录到不同的文件中
查看>>
出现 Non-terminating decimal expansion; no exact representable decimal result 问题的解决方法
查看>>
使用 Navicat for MySQL 执行 SQL 语句时,出现 out of memory 问题的解决方法
查看>>
说说 jBPM 流程定义语言(3)—— state 活动 (状态活动)
查看>>