在学习DX色彩渲染过程中,遇到了一个很奇怪的问题,以至于历经一小时才找到所谓的问题所在

居然仅仅是因为两个变量的声明前后位置的问题

代码如下

error code
struct ColorVertex
{
    ColorVertex(){}
    ColorVertex(float x,float y,float z,D3DCOLOR color)
    {
        _x = x;_y=y;_z=z;_color=color;
    }
    D3DCOLOR _color;
    float _x,_y,_z;
    static const DWORD FVF;
};

上面是出错的Code,运行后屏幕无任何显示信息。(期望显示一个彩色三角形)

如下面所见,将D3DCOLOR成员的定义放到float之下时,则运行得到正确结果。

success Code
struct ColorVertex
{
    ColorVertex(){}
    ColorVertex(float x,float y,float z,D3DCOLOR color)
    {
        _x = x;_y=y;_z=z;_color=color;
    }
    float _x,_y,_z;
        D3DCOLOR _color;
    static const DWORD FVF;
};

最终原因: 因为DX中是根据渲染模式来读取缓冲区中的顶点信息,故顶点结构体的数据分布由渲染模式决定。必须使用规范格式的struct来存储顶点信息

转载于:https://www.cnblogs.com/JaggerLee/archive/2009/05/14/1457156.html

学习DX编程中的一个很丢脸,但是不知道是为什么的问题相关推荐

  1. 学习在Unity中创建一个动作RPG游戏

    游戏开发变得简单.使用Unity学习C#并创建您自己的动作角色扮演游戏! 你会学到什么 学习C#,一种现代通用的编程语言. 了解Unity中2D发展的能力. 发展强大的和可移植的解决问题的技能. 了解 ...

  2. 在学习少儿编程中体会AI乐趣

    少儿编程的兴起引发了教育界人士的思考,不断开始有专家发问:少儿编程存在的意义究竟有多大?这样的疑虑是正常的,也是我们对每一个火热的社会现象应该持有的冷静和客观的反思.格物斯坦认为:其实真正意义上的人工 ...

  3. 无意中看到一个很强的贴,简直一群机关枪阿

    MFC五大批判 VcPhi 流氓不可怕,就怕流氓有文化 等 级: 发表于:2007-09-21 18:17:32 楼主 写在本文之前 算起来,我用Visual   C++也有将近5年的历史了.在这期间 ...

  4. Map-Reduce 思想在 ABAP 编程中的一个实际应用案例

    ABAP 是一门企业级应用编程语言,其 740 版本于 2013 年发布,增添了许多新的语法和关键字: 其中一个亮点就是新引入的 REDUCE 关键字.这个关键字的作用和在大规模数据集并行计算领域里广 ...

  5. nvd3使用(1)——多线图中的一个很隐蔽的bug

    d3是一个非常强大的以数据驱动的基础图形库,其中封装了一系列的图形转化变形处理操作,欲知其强大在哪里,强大到什么地步,请参考 http://d3js.org 和 https://github.com/ ...

  6. maya中PySide一个很诡异的问题

    背景: 笔者想在maya主窗口中加一个button,并且点击的时候实现一些方法,然而,常规的代码居然出现了很诡异的问题. maya 中的代码如下: import maya.OpenMayaUI as ...

  7. 单片机编程学习:自己编写的一个很简单的传感器控制电机

    下面这些是自己学习arduino后自己编写的一段代码分享给各位,通过传感器来控制电机运转,代码还可以继续优化改进,下次继续改.仅供学习交流用途. void setup() {   pinMode(8, ...

  8. Windows图形编程 中的一个例程所引发的收获和思考

    作者:朱金灿 来源:http://blog.csdn.net/clever101/ 袁峰大侠著的<Windows图形编程>是一本学习<Windows图形编程>的好书.书中的第二 ...

  9. dva学习--在组件中dispatch一个action

    model的数据: export default {namespace: 'example', //表示对于整个应用不同的命名空间,以便通过this.props.example访问,和当前model文 ...

  10. 编程中的一个易错点:判断某个点是否超出棋盘边界

    给定一个r行c列的棋盘,给定一个点x,y,要求判断点(x,y)处是否可以放置棋子. 判断越界时不能转化成一维判断越界,判断越界必须在二维空间中进行. r, c = 3, 3 a = [0] * (r ...

最新文章

  1. Udacity机器人软件工程师课程笔记(二十五) - 使用PID控制四轴飞行器 - 四轴飞行器(四旋翼)模拟器
  2. xmake入门,构建项目原来可以如此简单
  3. ESP8266的网状网络(Mesh Network)
  4. 笔记——数据可视化02
  5. Sublime Text 3使用SublimeLinter配置JS,CSS,HTML语法检查
  6. Angular消息通知组件ngx-notification
  7. 【操作系统】上下文切换
  8. echarts图表自适应
  9. JavaScript 编码规范大全-Eslint(持续更新,欢迎关注点赞加评论)
  10. Android程序开发初级教程(一)
  11. php中的数据库操作类、分页类,以及smarty扩展类
  12. 多分类决策树 r语言_R语言——决策树模型的相关可视化
  13. [BZOJ4540][HNOI2016]序列(莫队)
  14. CentOS7搭建FTP文件服务器
  15. 远程桌面工具mRemoteNG与Tsmmc
  16. ovftool导出虚拟机报错处理过程!
  17. 100层楼,2个鸡蛋问题
  18. Rasa课程、Rasa培训、Rasa面试、Rasa实战系列之Toxic Language Detection
  19. java 统计子字符串个数_Leecode统计子串个数(java)
  20. HTTP 所有状态码

热门文章

  1. ImportError: libcudart.so.9.2: cannot open shared object file: No such file or directory
  2. 深度学习框架间互操作的工具:MMdnn
  3. 记忆的酒坛里,辛苦会酿成充实和幸福
  4. C结构中包含自己的嵌套定义
  5. c++核心编程第一部分讲义_java并发编程实战-第一部分总结
  6. python爬虫好学不_python爬虫难学吗
  7. es6 filter方法_[ 翻译 ] ES6中数组去重的三种方法
  8. 用python开发的运维管理系统_Python运维三十六式:用Python写一个简单的监控系统...
  9. python语言单词_python – 在动词/名词/形容词之间转换单词
  10. mysql备份为0_MySQL 备份(一)