DirectX环境配置:

当前环境配置:项目->属性->VC++目录->1)包含目录(编辑新建添加,找到DXsdk文件夹下的include文件夹完成添加DX有关的头文件)->2)库目录(编辑新建添加,找到DXsdk文件夹下的Lib文件夹中的x86完成添加DX有关的库的添加)

工程环境配置:属性管理器->Debug|Win32->双击“Microsoft.Cpp.Win32.user”->VC++目录->1)包含目录(编辑新建添加,找到DXsdk文件夹下的include文件夹完成添加DX有关的头文件)->2)库目录(编辑新建添加,找到DXsdk文件夹下的Lib文件夹中的x86完成添加DX有关的库的添加)

DirectX基本框架:

//-----------------------------------------------------------------------------
// File: main.cpp
//-----------------------------------------------------------------------------
#include <d3d9.h>
#include <d3dx9.h>
#pragma warning( disable : 4996 ) //屏蔽一些警告
#include <strsafe.h>
#pragma warning( default : 4996 )#pragma comment(lib,"d3d9.lib")//引入dx的静态库//-----------------------------------------------------------------------------
// Global variables
//-----------------------------------------------------------------------------
LPDIRECT3D9         g_pD3D = NULL; // 引擎指针,用来创建设备指针
LPDIRECT3DDEVICE9   g_pd3dDevice = NULL; // 设备指针,所有渲染相关的操作全部是用设备指针来完成//-----------------------------------------------------------------------------
// Name: InitD3D()
// Desc: 初始化D3D
//-----------------------------------------------------------------------------
HRESULT InitD3D(HWND hWnd)
{// 创建D3D引擎指针if (NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)))return E_FAIL;//设备参数结构体D3DPRESENT_PARAMETERS d3dpp;ZeroMemory(&d3dpp, sizeof(d3dpp));//让一段内存归零d3dpp.Windowed = TRUE;//是否窗口化d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;//交换方式(前后台的)d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;//后台缓冲区的格式//创建设备指针if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, //显示设备的编号D3DDEVTYPE_HAL,//设备类型hWnd,//窗口句柄D3DCREATE_SOFTWARE_VERTEXPROCESSING,//顶点处理方式&d3dpp,//设备参数结构体&g_pd3dDevice)))//设备指针的地址{return E_FAIL;}return S_OK;
}//-----------------------------------------------------------------------------
// Name: Cleanup()
// Desc: Releases all previously initialized objects
//-----------------------------------------------------------------------------
VOID Cleanup()
{if (g_pd3dDevice != NULL)g_pd3dDevice->Release();if (g_pD3D != NULL)g_pD3D->Release();
}//-----------------------------------------------------------------------------
// Name: Render()
// Desc: Draws the scene
//-----------------------------------------------------------------------------
VOID Render()
{if (NULL == g_pd3dDevice)return;//1.清空后台缓冲(其中包括颜色,深度,模板)g_pd3dDevice->Clear(0, //要清空的矩形区域的个数NULL,//要清空的矩形数组的首地址D3DCLEAR_TARGET /*| D3DCLEAR_ZBUFFER*/, //要清空的内容D3DCOLOR_XRGB(0, 0, 255), //要清空成的颜色1.0f, //要清空成的深度0);//要清空成的模板//2. 开始渲染if (SUCCEEDED(g_pd3dDevice->BeginScene())){// 3.自己的渲染代码// 4.结束渲染g_pd3dDevice->EndScene();}// 5.前后台翻转g_pd3dDevice->Present(NULL, NULL, NULL, NULL);
}//-----------------------------------------------------------------------------
// Name: MsgProc()
// Desc: The window's message handler
//-----------------------------------------------------------------------------
LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{switch (msg){case WM_DESTROY:Cleanup();PostQuitMessage(0);return 0;case WM_PAINT:Render();ValidateRect(hWnd, NULL);//清空绘制区return 0;}return DefWindowProc(hWnd, msg, wParam, lParam);
}//-----------------------------------------------------------------------------
// Name: wWinMain()
// Desc: The application's entry point
//-----------------------------------------------------------------------------
INT WINAPI wWinMain(HINSTANCE hInst, HINSTANCE, LPWSTR, INT)
{//注册窗口类WNDCLASSEX wc ={sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,GetModuleHandle(NULL), NULL, NULL, NULL, NULL,L"D3D Tutorial", NULL};RegisterClassEx(&wc);//创建窗口HWND hWnd = CreateWindow(L"D3D Tutorial", L"D3D Tutorial 01: CreateDevice",WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,NULL, NULL, wc.hInstance, NULL);// 初始化D3D环境if (SUCCEEDED(InitD3D(hWnd))){// 显示更新窗口ShowWindow(hWnd, SW_SHOWDEFAULT);UpdateWindow(hWnd);// 进入主消息循环MSG msg;while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}}//注销窗口UnregisterClass(L"D3D Tutorial", wc.hInstance);return 0;
}

纯手打 如有错 请指教!

DirectX基本框架相关推荐

  1. 托管DirectX,从MDX到SlimDX的转换(转)

    转自:http://gis4all.ru/zh-CN/net/managed-directx/ 开始迁移到托管DirectX SlimDX框架的,例如,MDX应用的帕特里克Murrisa地形的浏览器. ...

  2. [转]托管DirectX,从MDX到SlimDX的转换

    开始迁移到托管DirectX SlimDX框架的,例如,MDX应用的帕特里克Murrisa地形的浏览器. 在托管DirectX代码所示,到新的代码,与SlimDX评论的形式. MDX迁移项目中Slim ...

  3. 3d游戏编程(转帖)

    3d游戏编程(转帖) 我先声明,我不是编程高手,我还只是个初学者,但我觉得我所知道的对刚入门3D游戏编程的新手,应该能让他们少走弯路,我也很想用朝语来写,但是朝语的词 汇库很久没有更新过了,有些专业的 ...

  4. 真人拳皇项目第三次Scrum总结——史经浩

    今天Scrum讨论的内容主要有: DirectX显示图片 因为大家对DirectX都不是很熟,所以今天首先讨论了这个技术问题.付浩同学表示这不是问题,并且,可以利用PNG图片的透明通道解决人物的背景问 ...

  5. .NET Framework 中新托管 Direct3D 图形 API 的简介

    .NET Framework 中新托管 Direct3D 图形 API 的简介 发布日期: 12/6/2004 | 更新日期: 12/6/2004 Yahya H. Mirza 和 Henry da ...

  6. 第11章 三维内功心法——Direct3D编程基础

    11.1 典型Direct3D 程序流程分析 我们其实不用把3D 编程想象得多么神秘,说白了, 3D 编程就像一只纸老虎. 正所谓万剑归宗,首先介绍一下Direct3D 应用程序的一般框架思路.我们来 ...

  7. Windows 8 Directx开发学习笔记(一)应用基本框架

    Windows 8系统10月25日就要正式发布,其应用可与Windows Phone 8应用兼容,所以打算转到Windows 8系列的开发.之前虽然开发过应用,但对游戏开发更感兴趣,随意开始学习Met ...

  8. Hieroglyph3(基于DirectX 11的开源渲染引擎) 框架分析

    Hieroglyph3是一个基于微软最新图形API:DirectX 11的渲染引擎,同时也是<Practical Rendering and Computation with Direct3D ...

  9. DirectX 在MFC框架下的应用

    一般而言,用到DirectX进行编程时,会直接在win32项目下自己创建窗口,然后在该窗口上进行操作.然而,如果已经用MFC写了一部分代码,然后突然发现用DirectX来处理3D的显示部分会比较给力, ...

最新文章

  1. 使用思维导图编写测试用例
  2. LightTools 切趾角度设置
  3. xp系统怎样安装传真服务器,XP系统下如何安装传真机 XP系统安装传真机的详细步骤[图文教程]...
  4. RUP大讲堂(第四讲)-业务建模技术实践
  5. PostgreSQL触发器的使用
  6. php 时间加法函数_php 时间加减
  7. html5可以用flash,HTML5网页可以直接看视频,不用flash吗,另外WP7为何不支持flash。。。HTML5网页...
  8. linux中cooy命令_Linux:CentOS 7中常用的基础命令
  9. 【技术思路】极客时间-左耳听风-程序员攻略开篇
  10. python多进程优化for循环_Python中for循环中的多进程处理和传递多个参数
  11. php apache 配置后不能正常显示html文件的解决方法
  12. 关闭tomcat报错Cannot allocate memory
  13. Nagios社区真有意思
  14. matlab 中的波浪号
  15. 二维数组传参,用int指针接收
  16. 经济学基础之名义利率与实际利率以及他们同复利公式的运用
  17. win10无敌隐身术
  18. Linux软件磁盘列阵RAID
  19. ❤️大学三年沉淀,把我的学习经验分享给你,爆肝万字带你走进编程世界!❤️
  20. DeepFlow Large displacement optical flow with deep matching

热门文章

  1. 看完这篇文章你可能就学会ofd在线转换成pdf了
  2. 多模态生成模型ERNIE-VILG
  3. 如何自动生成 API 接口文档 - 一份详细指南
  4. Python与redis数据库的交互详解【重点】
  5. linux内核添加lrz,linux 调试之lrz的移植与一些说明
  6. ICO图标制作-Axialis IconWorkshop
  7. Get计算机视觉核心知识,看这本书就够了(中秋福利赠送!!!)
  8. html5 video
  9. android 购物车加减列表,Android 购物车加减功能的实现代码
  10. Mysql数据库性能调优面试大全经典分析