Direct3D Demo

2023-10-27

空项目 + C++代码 ==> 空白窗口应用程序 ==> 创建初始化D3D11,用D3D渲染窗体的画布。

添加Direct3D

分为一下步骤:
1. 定义想检查的设备类型 和 特征级别
2. 创建Direct3D设备,渲染环境和交换链
3. 创建渲染对象
4. 设置视口viewport观察区

1.四种动设备类型

硬件设备:最快

WARP设备:CPU渲染设备

引用设备:如果硬件不支持某种特性的渲染,在软件中模拟渲染,也是在CPU上执行

软件驱动设备:开发者自己编写软件渲染驱动,一般不用于高性能渲染。推荐使用WARP设备。

// 列举的驱动类型 和 特征级别

// 只渲染客户区域
RECT dimensions;
GetClinetRect(hwnd, &demensions);

unsigned int width = demensions.right - dimensions.left;
unsigned int height = dimensions.bottom - dimensions.top;

// 查找能够被支持的DX特征
DED_DRIVER_TYPE driverTypes[] = 
{
    D3D_DRIVER_TYPE_HARDWARE, D3D_DRIVER_TYPE_WARP,
    D3D_DRIVER_TYPE_REFERENCE, D3D_DRIVER_TYPE_SOFTWARE
};

usigned int totalDriverTypes = ARRAYSIZE(driverTypes);

// 希望使用三种设备目标.
// 如果没有支持 DX 11 类型的硬件,则 Demo 就运行于 D3D 10.1 或者 10.0 作为替代
D3D_FEATURE_LEVEL featureLevels[]=
{
    D3D_FEATURE_LEVEL_11.0,
    D3D_FEATURE_LEVEL_10_1,
    D3D_FEATURE_LEVEL_10_0
};

unsigned int totalFeatureLevels = ARRAYSIZE(featureLevels);

未完待续

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Direct3D Demo 的相关文章

随机推荐

  • 合宙Air724UG LuatOS-Air LVGL API--对象

    对象 概念 在 LVGL 中 用户界面的基本构建块是对象 例如 按钮 标签 图像 列表 图表或文本区域 属性 基本属性 所有对象类型都共享一些基本属性 Position 位置 Size 尺寸 Parent 父母 Click enable 单
  • Jenkins添加allure测试报告

    构建任务 1 新建item 2 输入任务名称 gt 点击Freestyle project gt 点击确定 3 在任务配置页面对任务进行配置 gt 添加描述 gt 选择高级 4 勾选使用自定义的工作空间 gt 目录输入执行文件的存放路径 5
  • [Pytorch系列-55]:循环神经网络 - 使用LSTM网络对股票走势进行预测

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121665139 目录 第1章 LST
  • Element-ui踩坑

    Element ui踩坑 验证图片上传 其实 加上 prop就行了 再图上传成功的时候再做个图片验证取消就可以 看着麻烦其实挺简单的
  • jquery导入数据_亿级电商实时数据分析平台构建实战

    基于Flink ClickHouse构建亿级电商实时数据分析平台 PC 移动 小程序 引用网络文章开启本课程的开篇 在大数据分析领域中 传统的大数据分析需要不同框架和技术组合才能达到最终的效果 在人力成本 技术能力和硬件成本上以及维护成本让
  • 合并两个有序数组为一个有序数组

    一 归并排序 问题 两个有序数组 合并成一个有序数组 先依次比较两个数组 按照小的就传入新的数组 当这次比较完之后可能有一个数组的长度很长 留下一些数组 然后在新数组的末尾插入即可 两个有序数组的合并函数 int MergeList int
  • bat面试题 python 单链表反转排序

    单链表反转python实现 单链表的反转可以使用循环 也可以使用递归的方式 1 循环反转单链表
  • Java初始String和运算符

    1 Sting 在Java中 数据类型分为基本数据类型和引用数据类型 基本数据类型有 4类 即 整型 浮点型 字符型 布尔型 8种 即 byte short int long float double 引用数据类型有 Sting 包装类 B
  • 项目总结(云课堂and网易云音乐)

    一 云课堂 地址栏传参 首页 搜索页 接收地址参数 二 网易云音乐 1 audio的属性 src 歌曲的路径 preload 是否在页面加载后立即加载 设置 autoplay 后无效 controls 显示 audio 自带的播放控件 lo
  • #if...#endif的用法总结参考

    if endif的用法总结 if endif是C 种的条件编译预处理命令 有两种格式 1 ifdef 标示符 程序段1 else 程序段2 endif 表示 如果标示符已经被 define命令定义过 则编译程序段1 否则编译程序段2 2 i
  • 学习egg

    Egg学习 基础功能 内置对象 Applicant 它是一个全局应用对象 一个应用中只有一个实例 他有四个事件 server http服务启动后会触发 error 发生异常的时候会触发 可以在这里进行日志记录等处理 request和resp
  • 程序基本算法习题解析 动态规划-统计单词个数:给出一个长度不超过200,而且全部小写英文字母组成的字符串。 要求将此字符串分成k份,输出最大的包含单词个数。

    题目 给出一个长度不超过200 而且全部小写英文字母组成的字符串 该字符串必须每行20个字母的方式输入 要求将此字符串分成k份 1
  • 纷享销客受邀出席CDIE2023数字化创新博览会 助力大中型企业增长

    2023年 穿越周期 用数字化的力量重塑企业经营与增长的逻辑 再次成为企业数字化技术应用思考的主旋律 以数字经济为主线 数字技术融入产业发展与企业增长为依据 推动中国企业数字化升级 9月5日 第九届CDIE203数字化创新博览会在上海张江科
  • GitLab CI/CD 在 Node.js 项目中的实践

    近期在按照业务划分项目时 我们组被分了好多的项目过来 大量的是基于 Node js 的 也是我们组持续在使用的语言 现有流程中的一些问题 在维护多个项目的时候 会暴露出一些问题 如何有效的使用 测试用例 如何有效的使用 ESLint 部署上
  • 让代码更加简洁的五大原则,简明叙述

    1取变量名时像给孩子取名字一样认真 2一个函数只做一件事 长度不宜过长 lt 20行 3循环 判断的嵌套尽量地少 最好小于等于两层 4让类只有一种职责 5不要着急实现功能 先想好这段代码应该放在哪里
  • MATLAB的包

    包命名空间 https ww2 mathworks cn help matlab matlab oop scoping classes with packages html 包文件夹 包是一种特殊文件夹 可以包含类文件夹 函数和类定义文件及
  • PyCharm使用技巧(五):在PyCharm中使用IPython / Jupyter Notebook

    PyCharm v2018 2最新版本下载 在PyCharm中使用IPython Jupyter Notebook 在你开始之前 在执行本教程的任务之前 请确保满足以下先决条件 您已经创建了一个Python项目 在本教程中 使用项目C Sa
  • C++ 中的判断语句,if、else..if、switch 和三目运算符(C++复习向p10)

    文章目录 if 和 else 语句 三目运算符 switch 语句 if 和 else 语句 只有 if 的情况 if boolExpression 如果括号满足 执行 if boolExpreesion cout lt lt yes 无代
  • add_executable错误总结

    很久没有写blog了 最近在kdevelop上开发程序的时候 需要在主函数的文件中引用别的文件的函数 添加了对该函数所在的头文件之后仍然出现该函数没有定义的错误 经历了一番波折之后 才发现是忘记了在cmakelist的add executa
  • Direct3D Demo

    空项目 C 代码 gt 空白窗口应用程序 gt 创建初始化D3D11 用D3D渲染窗体的画布 添加Direct3D 分为一下步骤 1 定义想检查的设备类型 和 特征级别 2 创建Direct3D设备 渲染环境和交换链 3 创建渲染对象 4