Direct3D11学习笔记(一):创建最小的Direct3D应用程序

感谢博主~不会飞的章鱼~,本文是基于他的DirextX学习笔记所进行学习时的1记录,更全面的介绍见博客:https://www.cnblogs.com/OctoptusLian/p/9729605.html

一、简介

该例使用D3D实现用单一颜色填充屏幕,知识点包含n32编程基础和创建D3D程序的必要元素;

二、主要步骤

(一)创建窗口和消息循环

1.定义一个窗口类,该类详细描述了窗口的各种属性,将填写好的窗口类注册到?;

2.使用函数创建一个窗口;

3.窗口显示;

4.编写消息处理函数;

(二)设置Direct3D 11 设备

1.创建设备:

设备中包含创建资源的方法;

2.创建直接上下文(immediate context)

直接上下文用于对缓冲区执行渲染;

3.创建交换链

定义一个交换链类,基于填写好的交换链类,利用函数创建交换链;

4.渲染目标视图(可再了解一下资源视图的概念,目前还未理解,以及创建渲染目标视图的作用)

调用GetBuffer()来获取后台缓冲区对象,利用CreateRenderTargetView()创建渲染目标视图,最后在直接上下文中调用OMSetRenderTargets()将其绑定到管道上,这可确保管道呈现的输出被写入后台缓冲区;

5.初始化视口

视口映射剪辑空间坐标,即视口呈现的为最终物体被看见时的坐标;

(三)修改消息循环

使用PeekMessage()而不是GetMessage(),因为应用程序窗口的队列中没有消息,后者会阻塞,并在消息可用之前不会返回,而前者在没有消息等待时,会立即返回而不是阻塞,于是我们可以花时间做一些渲染;

(四)渲染,即编写Render()函数

Present()负责将交换链的后台缓冲区显示在屏幕上;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值