资源简介
D3D11初始化,一个最简单的D3D11应用程序。学习D3D的开始。

代码片段和文件信息
#include
#include
#include
#include
using namespace std;
//重要的全局变量
//在后面学习过程中,这些全局将作为框架类的成员变量存在
HINSTANCE g_hInstance(NULL);
HWND g_hWnd(NULL);
wstring g_clsName(L“d3d11“);
wstring g_wndtitle(L“D3D11初始化“);
UINT g_winWidth(640);
UINT g_winHeight(480);
//D3D相关全局变量
ID3D11Device *g_device(NULL);
ID3D11DeviceContext *g_deviceContext(NULL);
IDXGISwapChain *g_swapChain(NULL);
ID3D11DepthStencilView *g_depthStencilView(NULL);
ID3D11RenderTargetView *g_renderTargetView(NULL);
//初始化
BOOL InitWin32();
//初始化D3D
BOOL InitD3D();
void Render();
//主循环
int Run();
//回收资源
void Release();
LRESULT CALLBACK WinProc(HWND hwnd UINT msg WPARAM wParam LPARAM lParam);
//程序入口
int WINAPI WinMain(HINSTANCE hInstance HINSTANCE hPrevInstance LPSTR cmdLine int cmdShow)
{
g_hInstance = hInstance;
if(!InitWin32())
return -1;
if(!InitD3D())
return -1;
return Run();
}
BOOL InitWin32()
{
//创建窗口类
WNDCLASS wndcls;
wndcls.cbClsExtra = 0;
wndcls.cbWndExtra = 0;
wndcls.hbrBackground = (HBRUSH)GetStockobject(NULL_BRUSH);
wndcls.hCursor = LoadCursor(NULLIDC_ARROW);
wndcls.hIcon = LoadIcon(NULLIDI_APPLICATION);
wndcls.hInstance = g_hInstance;
wndcls.lpfnWndProc = WinProc;
wndcls.lpszClassName = g_clsName.c_str();
wndcls.lpszMenuName = NULL;
wndcls.style = CS_HREDRAW | CS_VREDRAW;
//注册窗口类
if(!RegisterClass(&wndcls))
{
MessageBox(NULLL“窗口注册失败!“L“错误“MB_OK);
return FALSE;
}
//创建窗口
g_hWnd = CreateWindow(g_clsName.c_str()
g_wndtitle.c_str()
WS_OVERLAPPEDWINDOW
CW_USEDEFAULTCW_USEDEFAULT
g_winWidthg_winHeight
NULL
NULL
g_hInstance
NULL);
if(!g_hWnd)
{
MessageBox(NULLL“窗口创建失败!“L“错误“MB_OK);
return FALSE;
}
//显示、更新窗口
ShowWindow(g_hWndSW_SHOW);
UpdateWindow(g_hWnd);
//Win32初始化完毕
return TRUE;
}
BOOL InitD3D()
{
//创建设备及上下文
D3D_FEATURE_LEVEL features[3] = {D3D_FEATURE_LEVEL_11_0 D3D_FEATURE_LEVEL_10_0 D3D_FEATURE_LEVEL_9_3};
D3D_FEATURE_LEVEL myFeatureLevel;
HRESULT hr = D3D11CreateDevice(NULLD3D_DRIVER_TYPE_HARDWARE00features3D3D11_SDK_VERSION&g_device&myFeatureLevel&g_deviceContext);
if(FAILED(hr))
{
MessageBox(NULLL“创建d3d11设备失败!“L“错误“MB_OK);
return FALSE;
}
//检测4x采样等级
UINT msaa4xQuality(0);
g_device->CheckMultisampleQualityLevels(DXGI_FORMAT_R8G8B8A8_UNORM4&msaa4xQuality);
//创建交换链
//先描述其属性
DXGI_SWAP_CHAIN_DESC swapChainDesc = {0};
swapChainDesc.BufferDesc.Width = g_winWidth; //宽、高
swapChainDesc.BufferDesc.Height = g_winHeight;
swapChainDesc.BufferDesc.RefreshRate.Denominator = 1; //刷新率
swapChainDesc.BufferDesc.RefreshRate.Numerator = 60;
swapChainDesc.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; //恒定参数,按照这样指明即可
swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; //同上
swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7178 2012-12-13 08:28 D3D11初始化\Win32.cpp
文件 12288 2012-12-13 08:28 D3D11初始化\init.exe
目录 0 2012-12-13 08:29 D3D11初始化\
- 上一篇:QT3显示图片小程序
- 下一篇:D3D11绘图基础:旋转的彩色立方体
相关资源
- m1卡 ic卡可选择扇区初始化加密软件
-
imx6qSBP的jli
nk初始化脚本 - hp c7000的初始化设置详解
- 易语言静态变量初始化源码
- 1_AURIX 应用笔记 TC27xC启动与初始化.
- IC卡加密格式化工具
- 16C554初始化代码
- VNXe第二代存储初始化工具
- stm32 5个串口初始化实现串口缓存,前
- ST7735R的资料和初始化源码
- M00930 OLED初始化代码
- D3D11_DirectionalShadowMap
- V3500初始化.rar
- D3D11_DerfferredShading
- InvenSense ICM-20600 初始化及自检程序
- ibm v3500初始化工具
- D3D11_ShadowMap1
- D3D11_SpecularMap
- HDS VSP Gx00初始化
- STM32入门程序(详细列出了所有独立外
- 0.49\“ OLED规格书和初始化代码
- D3D11 Cube Mapping程序
- D3D11基本几何体绘制
- 金蝶云 K3_Cloud实施初始化 七个步骤
- k3cloud初始化上线七个步骤 第三步
- 金蝶云k3cloud初始化上线七个步骤 第
- 金蝶云k3cloud初始化上线七个步骤 第
- k3cloud初始化上线七个步骤 第四步 多
- 东芝TC358779XBG-TC358747-TC358749-datasheet+硬
- EMC存储初始化工具,初次安装必用的
评论
共有 条评论