CodeSampler DX9 Full-screen initialization
D3D新手,请轻拍。
最近在学CodeSampler上的DX9范例。编译环境是VS2012。搭编译环境用了一两天,另行开文吐槽(有时间的话)。
本文讲讲Full-screen initialization里面的一个问题。
程序运行到第288行时报错:
g_pd3dDevice->Clear( , NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
D3DCOLOR_COLORVALUE(0.0f,1.0f,0.0f,1.0f), 1.0f, );
因为g_pd3dDevice此时是空指针。
所以单步调试,发现init中有这样几行:
// Does this adapter mode support a mode of 640 x 480?
if( d3ddm.Width != || d3ddm.Height != )
continue; // Does this adapter mode support a 32-bit RGB pixel format?
if( d3ddm.Format != D3DFMT_X8R8G8B8 )
continue; // Does this adapter mode support a refresh rate of 75 MHz?
if( d3ddm.RefreshRate != )
continue;
d3ddm是显示器支持的模式的枚举,包括分辨率宽高,刷新率和format(暂时不知是啥)。我的显示器上一共有13种。
但是这几行检测强制要求显示器支持640X480,75MHZ的模式。
LZ的显示器没有完全符合的模式
于是在后面的代码里
if( bDesiredAdapterModeFound == false )
{
// TO DO: Handle lack of support for desired adapter mode...
return;
}
init函数直接返回了。而初始化g_pd3dDevice的代码还在后面,于是它就没被初始化了。
o(╯□╰)o这代码居然不报错而是直接return。
解决方案:上面的75改成60(即LZ的显示器支持的一种模式),运行成功。
CodeSampler DX9 Full-screen initialization的更多相关文章
- man screen
http://www.gnu.org/software/screen/manual/screen.html Screen User's Manual Next: Overview, Previous: ...
- 简单的OO ALV小示例
OO ALV即面向对象ALV,是在屏幕上显示的一种可以自定义大小的ALV.它区别普通ALV的优点是可以多个ALV出现在同一个屏幕,也可以同其他屏幕元素同时出现在同一个屏幕. 示例展示: 1. 进入实用 ...
- SAP事件 Event Flow(转载)
1 报表过程事件 报表过程事件是在报表运行过程中由系统自动控制,按照一定次序被触发的事件,其目的是从数据库中选择数据并整理,准备进行列表输出.这些事件从报表程序启动开始就被系统顺序触发,现分述如下: ...
- ALV报表——表头实现
ABAP实现ALV表头的DEMO: 运行效果: 代码: *********************************************************************** ...
- EasyPrtSc sec[1.2] 发布!
//HOMETAG #include<bits/stdc++.h> namespace EasilyPrtSc{ //this namespace is for you to be mor ...
- 列表屏幕(List Screen)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 选择屏幕(Selection Screen)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- What is the Database Initialization Parameter That is Associated to an ORA-32004 Error ?
APPLIES TO: Oracle Database - Enterprise Edition - Version 9.2.0.1 to 11.2.0.3 [Release 9.2 to 11.2] ...
- Windows Forms Application Creation and Initialization
Windows Forms Application Creation and Initialization This topic details the steps performed after a ...
随机推荐
- linux 安装gcc8
https://blog.csdn.net/longji/article/details/80400339 01 ubuntu1604desktop_x64 安装gcc8.1.0系统环境: gcc版本 ...
- jenkins 多版本 jdk
最近又开始使用jenkins了,遇到一个问题,开发本地使用的jdk是1.7,而我们jenkins由于需要对docker的插件的支持必须使用1.8. 这样就导致了有的开发的代码在jenkins去代码库c ...
- 《Http权威指南》读书笔记
第7章 Http缓存 1.什么是Http缓存? http缓存指的是: 当客户端向服务器请求资源时,会先抵达浏览器缓存,如果浏览器有"要请求资源"的副本,就可以直接从浏览器缓存中提取 ...
- poj_3045 贪心
Farmer John's N (1 <= N <= 50,000) cows (numbered 1..N) are planning to run away and join the ...
- 大数据实操2 - hadoop集群访问——Hadoop客户端访问、Java API访问
上一篇中介绍了hadoop集群搭建方式,本文介绍集群的访问.集群的访问方式有两种:hadoop客户端访问,Java API访问. 一.集群客户端访问 Hadoop采用C/S架构,可以通过客户端对集群进 ...
- QT Designer基础——登录界面设计基础版2
认识QT Designer提供的可选控件:以下八个大类 Layouts:布局相关 Spacers:留空 Buttons:可点击的按钮类 Item Views和 Item Widgets:高级控件,例如 ...
- js计算日期相减天数
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head ...
- Unity 角色移动贴墙行走
直接贴上代码,旋转角色角度检测碰撞 Vector2 v2Normal = new Vector2(normal.x, normal.y); float fAngle = Vector2.SignedA ...
- django admin的实用配置
https://www.cnblogs.com/wumingxiaoyao/p/6928297.html
- Python MD5算法使用
## md5算法简介 1. **简介** MD5消息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值 ...