DirectX 初始化DirectX(第一方式)

 

上一章我们学会了如何C++Win32项目中搭建DirectX开发环境, 那么下面来写代码初始化DirectX吧O(∩_∩)O~。 首先你创建一个Win32程序,点击运行你可以看见一个window窗口程序,我创建的项目名叫 InitDirectX, 如下图

首先配置好DirectX开发环境, 然后点击进入InitDirectX.cpp写初始化的代码.

一、 引入头文件d3d9.h

#include <d3d9.h>

二、 定义DirectX的接口对象,设备对象

LPDIRECT3D9 g_pD3D = NULL;            //定义D3D9接口对象
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;        //定义D3D9接口设备指针

三、 编写初始化DirectX函数InitD3D

//初始化Direct3D方法
HRESULT InitD3D(HWND hWnd)
{
    //创建DirectX接口对象
    if(NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION))){
        return E_FAIL;
    }

    //清空内存
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp,sizeof(d3dpp));

    d3dpp.Windowed = TRUE;                        //True窗口显示模式, FALSE全屏显示模式
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;    //指定后台缓冲区的内容复制到前台的缓存中,一般设置成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;
}

 

四、 编写是否DirectX函数

//释放DirectX
VOID Cleanup()
{
    if(g_pd3dDevice != NULL)
    {
        g_pd3dDevice->Release();
    }

    if(g_pD3D != NULL)
    {
        g_pD3D->Release();
    }
}

 

五、 编写渲染主函数,以后绘制东西都在这个函数中

//渲染
VOID Render()
{
    if(NULL == g_pd3dDevice)
    {
        return;
    }

    //用某种颜色清空场景
    g_pd3dDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(255,168,165),1.0f,0);

    if(SUCCEEDED(g_pd3dDevice->BeginScene()))
    {
        //开始写渲染部分,在这里绘制物体

        g_pd3dDevice->EndScene();
    }

    g_pd3dDevice->Present(NULL,NULL,NULL,NULL);
}

 

六、 在InitInstance函数中加入初始化InitD3D函数,传入窗口句柄

 

七、 在窗口处理函数中加入,Render渲染函数,Cleanup释放函数

 

=.=然后运行程序你就能看见窗口已经是一片黄色啦,我去掉了窗口的菜单栏(wcex.lpszMenuName    = NULL;)

 

 

=.=再见

时间: 2024-07-31 14:23:11

DirectX 初始化DirectX(第一方式)的相关文章

DirectX初始化全过程详解

#include <Windows.h>#include <d3d9.h>#include <d3dx9.h>#pragma comment(lib,"d3d9.lib")#pragma comment(lib,"d3dx9.lib")#pragma comment(lib,"winmm.lib") //声明const int width = 800;const int height = 600;IDirect

SharpDX初学者教程第3部分:初始化DirectX

原文 http://www.johanfalk.eu/blog/sharpdx-beginners-tutorial-part-3-initializing-directx 在这部分中,我们将初始化DirectX. 我们要做的第一步是添加一个调用InitializeDeviceResources()我们Game 类的新方法,如下所示: private void InitializeDeviceResources() { } 首先,我们需要为后台缓冲区创建一个描述,这是通过以下代码完成的: usi

const成员或者引用成员必须使用构造函数初始化列表的方式

#include<iostream.h> class A { const int a; int b; }; void main() { A obja; }编译出现如下错误:error C2512: 'A' : no appropriate default constructor available;如果将const去掉就没错了! #include<iostream.h> class A { public: const int a; int b; A(int x):a(x){} };

DirectX学习之第一个可运行的工程

学习一门开发语言的第一件事情当然是搭建一个可运行的环境,然后运行一个可成功执行的案例. 本人在学习DirectX的第一个工程的时候,参考了雨凇MoMo的一篇文章(https://www.xuanyusong.com/archives/802),但是看了之后,还是不知道如何才能运行起来. 然后,又参考了一篇文章(https://blog.csdn.net/chenwu_843402773/article/details/8077935). 通过参考第二篇文章中的一些内容,最终把第一篇文章中的案例运

WCF中的ServiceHost初始化两种方式

1 代码方式 1 2 3 4 5 6 7 8 9 10 using(ServiceHost host=new ServiceHost(typeof(HelloWordService)))  {      host.AddServiceEndpoint(typeof(IHelloWordService),          new BasicHttpBinding(), new Uri("http://localhost:10000/HelloWorldService"));      

DirectX中文手册

目  录 第一章 DirectX基础(初级篇) 第一节  什么是DirectX 一.什么是DirectX ? 二.DirectX的组成部分 三.关于DirectDraw 四.为什么要使用DirectDraw? 五.DirectX5.0的新特性? 六.什么是部件对象模型(COM) 七.自我检测 第二节  如何安装和使用DirectX 一.编译库和运行库 二.安装 VC++ 5.0 三.安装 DirectX5.0 的 SDK 四.DirectX 5.0 的文件说明 五.卸载 DirectX 第三节 

DirectX 因素:音频处理对象简介

中文原文地址:https://msdn.microsoft.com/zh-cn/magazine/dn201755.aspx 英文原文地址:https://msdn.microsoft.com/en-us/magazine/dn201755.aspx?utm_source=tuicool&utm_medium=referral DirectX 的 XAudio2 组件更多只是方式在 Windows 8 应用程序中播放声音和音乐. 我是来查看它而是作为一多功能工程组的声音处理. 通过使用多个 IX

DirectX学习笔记(一)

一.前言 学习DirectX的初衷是为了做游戏,为了开发游戏引擎.我在之前其实学习过一段时间的DirectX,但是由于后来一些其他原因将DirectX的学习搁置到了一边.现在有了比较充裕的时间,想把DirectX的相关知识捡起来,复习以前学习过的知识,顺带学习新的知识. 二.windows相关 首先,其实我对windows编程了解也不是很多.大一的时候看过一段时间的windows程序设计这本书,但是好像看天书一样,学了没有多久就转去学Qt去了.后来回来学习DirectX的时候,发现需要windo

DirectX 3D 之C#开发

C#下进行directX的3D开发,一个旋转的4棱锥的例子. 建议看两个文档<Managed DirectX 9图形和游戏编程简略中文文档>和<Managed DirectX 9 SDK 中文文档>. 另外最好下载个DirectX SDK (August 2007).rar.里面有些范例还是非常好的. 一.首先在电脑上装了DirectX. 二.建立一个C#的Windows应用程序,添加两个引用Microsoft.DirectX和Microsoft.DirectX.Direct3D;