Direct3D的初始化
对于我这种今天才刚开学学习DX的初学者来说,初始化Direct3D真是件让人头疼的事。不过好歹对照龙书弄出来了。。
初始化Direct3D的步骤:
1、获取IDirect3D9的指针
2、查检设备性能。判断主显卡是否支持硬件顶点运算
3、初始化D3DPRESENT_PARAMETERS结构体的一个实例
4、创建IDirect3DDevice9对像 (它代表了我们用来显示3D图形的物理设备对像)
IDirect3DDevice9 *pDevice = NULL;
// Step 1:得到指向IDirect3D9的指针 IDirect3D9* d3d9 = 0;d3d9 = Direct3DCreate9(D3D_SDK_VERSION);if( !d3d9 ){::MessageBox(0, "Direct3DCreate9() - FAILED", 0, 0);return false;}// Step 2:检查硬件性能D3DCAPS9 caps;d3d9->GetDeviceCaps(D3DADAPTER_DEFAULT, deviceType, &caps);int vp = 0;if( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT )vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;elsevp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;// Step 3:填充结构体 D3DPRESENT_PARAMETERS d3dpp;d3dpp.BackBufferWidth = width;d3dpp.BackBufferHeight = height;d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;d3dpp.BackBufferCount = 1;d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;d3dpp.MultiSampleQuality = 0;d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.hDeviceWindow = hwnd;d3dpp.Windowed = windowed;d3dpp.EnableAutoDepthStencil = true; d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;d3dpp.Flags = 0;d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;// Step 4:创建设备对象hr = d3d9->CreateDevice(D3DADAPTER_DEFAULT, // primary adapterdeviceType, // device typehwnd, // window associated with devicevp, // vertex processing&d3dpp, // present parametersdevice); // return created device
d3d9->Release();
转载于:https://www.cnblogs.com/whongfei/archive/2012/08/26/5247032.html
Direct3D的初始化相关推荐
- DirectX12 3D游戏开发实践(龙书)第四章 Direct3D的初始化
目录 Direct3D的初始化 预备知识 Direct3D概述 组件对象模型 纹理格式(Textures Formats) 交换链和页面翻转 深度缓冲 资源与描述符 多重采样技术的原理 利用Direc ...
- Direct3D 12入门教程之 ---- Direct3D 12初始化流程
注:以下内容参考自 书籍:<DirectX 12 3D>游戏开发实战, 微软官方的 DirectX样例程序:DirectX-Graphics-Samples, 参见github链接:htt ...
- dx12 龙书第四章学习笔记 -- Direct3D的初始化
1.预备知识: ①Direct3D 12概述: 通过Direct3D这种底层图形应用程序编程接口(Application Programming Interface, API),即可在应用程序中对图形 ...
- Direct3D初始化代码含义
// Desc: 初始化Direct3D //----------------------------------------------------------------------------- ...
- 《DirectX 9.0 3D游戏开发编程基础》 第一章 初始化Direct3D 读书笔记
REF设备 参考光栅设备,他能以软件计算方式完全支持Direct3D Api.借助Ref设备,可以在代码中使用那些不为当前硬件所支持的特性,并对这此特性进行测试. D3DDEVTYPE 在程序代码中, ...
- DirectX9.03D Direct3D初始化
Direct3D 的初始化分解为如下步骤: 1 获取接口 IDrirect3D8的指针. 2 检查设备性能(D3DCAPS9), 判断主显(primaty display adapter or pri ...
- 初始化Direct3D
一.Direct3D概述 DirectX是微软公司开发的一套功能丰富的底层API,其功能涵盖了: 2D/3D图形加速的支持. 各种输入设备的控制. ...
- DirectX11 Direct3D初始化
Direct3D初始化 1. Direct3D初始化步骤 下面将讲解如何初始化Direct3D.我们将Direct3D的初始化过程分为如下几个步骤: 1.使用D3D11CreateDevice方法创建 ...
- Direct3D 初始化
Direct3D是一套底层图形API,借助API,我们能够利用硬件加速功能绘制3D场景,Direct3D 可以被视为应用程序与图形设备交互式的中介,它们之前的关系可以描述如下 应用程序--->D ...
最新文章
- 英特尔支持员工自带设备办公
- python 格式化字符串_Python格式化字符串常用操作
- C语言指针定义变量方式
- [Java基础]标准输入输出流
- AtCoder Beginner Contest 234
- mysql主从复制 火墙_MySQL高级知识(十五)——主从复制
- Android数据存储之SQLite数据库存储
- Exploratory Data Analysis可视化分析美国天气
- 数值策划科普-------阈值
- 《Robot Framework自动化测试修炼宝典》道长
- html5制作人物动作,如何用3DMAX制作多动作人物
- android人脸身份认证,Android通过支付宝进行刷脸认证
- win10在电脑中添加新用户
- 在线制图工具团队版介绍
- 2021-2027全球与中国超声波焊接头市场现状及未来发展趋势
- 这几种常见的伪学习,看下你是不是也中招了?
- html制作svg工具,使用Adobe Illustrator制作SVG的操作流程
- 手把手教你采集京东销售数据并做简单的数据分析和可视化
- 基于微信预约挂号小程序毕业设计毕设作品(8)毕业设计论文模板
- 服务器修改远程链接端口号,怎么修改服务器的远程连接端口号
热门文章
- ❤️今天,该让 python 上个热门❤️
- 自动化测试工具Selenium
- D-S证据理论基本概念
- data 谷歌浏览器更改user 路径_chrome修改默认用户目录
- primal and dual linear problem
- DaNet: Decompose-and-aggregate Network for 3D Human Shape and Pose Estimation
- differential forms
- 快排、归并、堆排序运用场景
- GoogleNet_V3结构(论文复现)
- redhat rpm 卸载mysql_Linux下卸载MySQL rpm包出现error: specifies multiple packages 解决