DirectX是Microsoft(微软)推出的一套函数库,这套函数库可以用于游戏,多媒体等软件开发,它内部包含了很多子模块,其中用于图形绘制的

模块称之为DirectX Graphics ,DirectX Graphics  又分为了二维回执和Draw和三维绘制的3D,我们使用的Direct3d draw来搭建图形学习的环境

因为DirectX提供了可以几乎操作显存的能力,所以比操作系统 提供的GDI(GraphicsDeviceInterface)快的很多.

注意在学习DirectX的时候需要安装他的SDK 还需要在IDE编译器中包含lib 和 include 文件等

PS:下面的代码我写的Dx = directX

此处包含了dx draw的头文件

#include <ddraw.h>
#pragma comment(lib, "ddraw.lib")
#pragma comment(lib, "dxguid.lib")

#pragma comment表示链接上面的两个库

LPDIRECTDRAW7 g_ddraw; //表示创建了dxdraw对象

//函数使用:

DirectDrawCreateEx()//此函数表示创建dxdraw对象

DirectDrawCreateEx( 0 , (void**)&g_ddraw,IID_IDirectDraw7,0);

第一个参数是lpGUID:指向DirectDraw接口的全局唯一标志符(GUID:Global unique identify)的指针。在这里,我们给它NULL,

表示我们将使用当前的DirectDraw接口。//沉默接口

第二个参数是lplpDD:这个参数是用来接受初始化成功的dxDraw对象的地址

第三个参数是pUnkOuter:代表了DxDraw对象的一个ID号   注意: 确保加入了dxguid.lib这个库: #pragma comment (lib, "dxguid.lib")

第四个参数pUnkOuter 在 DirectX7手册中解释道: 允许未来与组件聚合功能的兼容性。然而,目前,这种方法返回一个错误,如果这个参数是空的。当然我们还是写0为沉默参数


此函数返回值在手册中解释如下

If the function succeeds, the return value is DD_OK.//如果是正确的则返回DD_OK

If it fails, the function can return one of the following error values: //返回错误就为0

//设置dxDraw与操作系统的协调层级,因为dxDraw可以
//绕开操作系统直接和硬件的驱动程序交互,而此时操
//作系统也要访问硬件的驱动,那么就必须双方进行协
//商共用的方案,这种协商和我们应用程序如果使用dxDraw
//有关系的,如果就是一般的窗口程序中使用dxDraw那
//么设置为DDSCL_NORMAL即可,表示一般的层级,如果
//我们要独占显卡那么就必须设置为DDSCL_FULLSCREEN
//、DDSCL_EXCLUSIVE、DDSCL_ALLOWREBOOT,这样的组
//合就是一般进行全屏游戏开发使用的标记

此时我们就可以用g_ddraw指出成员了,他是一个指针

g_ddraw->SetCooperativeLevel(g_hWnd, DDSCL_NORMAL);

此时我们可以创建一个ddsd 来得到当前显卡工作模式

DDSURFACEDESC2 ddsd;

ddsd.dwSize = sizeof(DDSURFACEDESC2);

PS:此图片表示DDSURFACEDESC2 结构体的参数。

ddsd.dwSize = sizeof(DDSURFACEDESC2);
g_ddraw->GetDisplayMode(
&ddsd);

//设置当前显卡的工作模式
g_ddraw->SetDisplayMode(
//水平分辨率
ddsd.dwWidth,
//垂直分辨率
ddsd.dwHeight,
//位深
ddsd.ddpfPixelFormat.dwRGBBitCount,
//刷新率
0,
//默认的参数
DDSDM_STANDARDVGAMODE);

最后记得release()此指针

写法g_ddraw->Release();

DirectX学习--1相关推荐

  1. WPF结构、图形支持与DirectX学习

    Windows 呈现基础(Windows Presentation Foundation,WPF)是一个用于Windows平台的全新的图形显示系统.WPF是针对.NET而设计的,它受现代显示技术,如H ...

  2. Direct-X学习笔记--Alpha颜色混合

    Alpha混合技术是灰常有用的东东.待我好好学习一下. 一.简介 首先看一下Alpha通道,Alpha通道是计算机中存储图片透明度信息的通道,它是一个8位灰度的通道,用256级灰度记录图像中的透明信息 ...

  3. DirectX学习笔记--3D基本数学知识整理

    最近在看<Direct9.0 3D游戏编程基础>以及浅墨大神的<windows游戏编程从零开始>两本书,希望能通过博客来记录一下自己的学习历程,整理相关的知识,方便查阅. 一. ...

  4. DirectX学习资料汇总

    前提   由于DirectX已经发展了好多年,现在已经发展到了DirectX 12.0,而且DirectX现在还在发展中.这里汇总一下我学DirectX时碰到的一些学习资料,供后来人按需获取. 网站篇 ...

  5. DirectX学习笔记(九):模板缓存与镜面效果实现

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处.   文章链接: http://blog.csdn.net/zhmxy555/article/details/8632184 作者:毛星云( ...

  6. DirectX学习笔记_关于Sprite.Draw2D的说明

    在DirectX的Sprite中提供一个Draw2D的方法,该方法绘制一个Sprite对象用于二维空间中显示,在DirectX 9.0C中,该方法有6个重载,分别是 1 public void Dra ...

  7. directX学习系列8 颜色融合(转)

    1, Multipass(多通道)    将一个任务划分成几个阶段,由多个pass处理不同阶段,后续pass总是处理前一个pass的结果.例如复杂的光照方程可以分成几个pass来计算.    用不同的 ...

  8. DirectX学习笔记(十五):粒子系统实现

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处.   文章链接:http://blog.csdn.net/zhmxy555/article/details/8744805 作者:毛星云(浅 ...

  9. Direct-X学习笔记--天空盒

    学习了三维的地形系统之后,该抬头看看天空啦.下面学习一下传说中的三维天空系统.其实三维天空的实现比地形系统简单得多,我们只需要用一点点小伎俩,就可以蒙混大多数人. 一.简介 我们在玩游戏的时候,尤其是 ...

最新文章

  1. 彩图完美解释:麦克斯韦方程组
  2. Prototype1.5.1源代码解读分析-1
  3. NDArray自动求导
  4. 映射递归循环-约瑟夫环问题递归解法的一点理解
  5. 基础10 多进程、协程(multiprocessing、greenlet、gevent、gevent.monkey、select、selector)...
  6. s1 java 复习 视频小课
  7. 【Java线程】“打工人”初识线程池及自定义线程池实战
  8. win11打开安全中心显示英文怎么办 windows11打开安全中心显示英文的解决方法
  9. 基于Socket的.NET应用组件
  10. 什么是Http无状态协议?
  11. Pyqt之模态与无模态对话框(Modal and Modeless)
  12. 韦东山嵌入式Linux第一期视频-韦东山-专题视频课程
  13. 【MapGIS二次开发】常见问题解析
  14. 解读测试能力素质模型(Job Model)
  15. api—淘宝图片上传
  16. 负折射率波导matlab,介质波导的数值模拟
  17. CTF高手教你如何实现文件加解密破解
  18. C语言常见字符串函数、字符分类函数与内存函数的使用
  19. 平实给力的写作指导入门手册——leo鉴书57
  20. SaaS是什么,目前主流的国内SAAS平台提供商有哪些?

热门文章

  1. js逆向之加密算法介绍
  2. foreach 循环获取索引
  3. linux下ora-12505,linux系统oracle数据库出现ora12505问题的解决方法
  4. linux中的inotify
  5. DOCTYPE 作用
  6. webgl的透视投影矩阵
  7. c语言用10元20元50元不超过50张,凑够1000元,输出所有换算方式
  8. postgresql 11 store procedure 初探之一
  9. PowerPoint制作科技风工作报告封面页
  10. 刘知远:大模型值得探索的十个研究方向