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的更多相关文章

  1. man screen

    http://www.gnu.org/software/screen/manual/screen.html Screen User's Manual Next: Overview, Previous: ...

  2. 简单的OO ALV小示例

    OO ALV即面向对象ALV,是在屏幕上显示的一种可以自定义大小的ALV.它区别普通ALV的优点是可以多个ALV出现在同一个屏幕,也可以同其他屏幕元素同时出现在同一个屏幕. 示例展示: 1. 进入实用 ...

  3. SAP事件 Event Flow(转载)

    1 报表过程事件 报表过程事件是在报表运行过程中由系统自动控制,按照一定次序被触发的事件,其目的是从数据库中选择数据并整理,准备进行列表输出.这些事件从报表程序启动开始就被系统顺序触发,现分述如下: ...

  4. ALV报表——表头实现

    ABAP实现ALV表头的DEMO: 运行效果: 代码: *********************************************************************** ...

  5. EasyPrtSc sec[1.2] 发布!

    //HOMETAG #include<bits/stdc++.h> namespace EasilyPrtSc{ //this namespace is for you to be mor ...

  6. 列表屏幕(List Screen)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. 选择屏幕(Selection Screen)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. 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] ...

  9. Windows Forms Application Creation and Initialization

    Windows Forms Application Creation and Initialization This topic details the steps performed after a ...

随机推荐

  1. ARTS打卡计划第一周-Algorithm

    7. Reverse Integer import math class Solution: def reverse(self, x: int) -> int: ret = 0 if x > ...

  2. ansible自动化

    一,工具与环境介绍   1.1 ansible简介 批量管理服务器的工具 无需部署agent,通过ssh进行管理 流行的自动化运维工具:https://github.com/ansible/ansib ...

  3. Spring 初学笔记

    Spring 初学笔记: https://blog.csdn.net/weixin_35909255/article/category/7470388

  4. day52类型转换 运算符 流程控制

    0.复习 1.导入 <div id="div1" onclick="this.style.color = 'red';">12345</div ...

  5. PostgreSQL 锁等待诊断详解

    摘要PostgreSQL和大多数传统RDBMS一样,都设计了大量的锁来保证并发操作的数据一致性. 同时PG在设计锁等待时,以队列方式存储等待锁. 参考 ProcSleep()@src/backend/ ...

  6. rsync配置安装

    rsync安装 1.将rsync包解压,包链接: https://pan.baidu.com/s/1jHPosXC 密码: maay 2.进入rsync安装包运行命令: ./configure --p ...

  7. python note 15 正则表达式

    # 正则表达式 只和字符串打交道 # 正则表达式的规则# 规则 字符串 从字符串中找到符合规则的内容 # 字符组 : [] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的 # [0 ...

  8. http 6000端口 chrome ERR_UNSAFE_PORT

    参考原因 折腾了半天.chrome的提示真不够意思,还是火狐的提示厉害,知道真相的我眼泪流下来.

  9. storm1.1.0 drpc 部署和调用测试

    一.配置集群storm.yaml文件,配置drpc.server 二.部署到linux上,开启nimbus,drpc,supervisor 等服务 /opt/module/storm-1.1.0/bi ...

  10. token回话保持,axios请求拦截和导航守卫以及token过期处理

    1:了解token:有时候大家又说token令牌.整个机制是前端第一次登陆发送请求,后端会根据前端的用户名和密码, 通过一些列的算法的到一个token令牌, 这个令牌是独一无二的,前端每次发送请求都需 ...