Dx11DemoBase 基类(三) 实例应用 【已实现】【附带源码】

现在我已经到哪了? 读书时,尤其是技术知识书籍, 我一般会担忧自己是否陷得太深, 细节关注得太多, 而忘了整体的过程; 一直以来对Direct3D 很畏惧, 因为太多函数和细节;现在我必须暂缓下, 看看自己已经做了什么, 还差什么, 下一步要如何规划。如下图:

 

已经仅仅完成了定义 "能够自动进行初始化工作的" 基类, 但是没能够 使用, 需要用子类实现 update(float) 和 render()  :

-- BlankDemo.h

#ifndef _BLANK_DEMO_H_
#define _BLANK_DEMO_H_#include "Dx11DemoBase.h"class BlankDemo : public Dx11DemoBase
{
public:BlankDemo();virtual ~BlankDemo();bool LoadContent();void UnloadContent();void Update( float dt);void Render();
};#endif

-- BlankDemo.cpp

#include "BlankDemo.h"BlankDemo::BlankDemo()
{}BlankDemo::~BlankDemo()
{}bool BlankDemo::LoadContent()
{return true;
}void BlankDemo::UnloadContent()
{}void BlankDemo::Update( float dt)
{}void BlankDemo::Render()
{if( d3dContext_ == 0)return ;    float clearColor[ 4] = { 0.0f, 0.0f, 0.25f, 1.0f };d3dContext_->ClearRenderTargetView( backBufferTarget_, clearColor);swapChain_->Present( 0, 0);
}

主要在 BlankDemo::Render() 内进行 清屏 和 显示.

到目前为止,共完成了两件事, 

第一  Windows 编程, 提供了简易 封装: 《Windows 窗体简易封装类 【已实现】【附带源码】》

第二  提供了 DirectX11 的 简易框架: 《Dx11DemoBase 基类(一)》《Dx11DemoBase 基类(二) 初始化 DirectX11 的 4个基本步骤》

下面将这两部分柔和, 使DirectX11 编程变得简易, 大致测试demo 将如:

#include <Windows.h>
#include "evlWin.h"            //windows 窗口封装
#include "BlankDemo.h"        //DirectX11 封装int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int cmdShow)
{// 创建窗体EvlWin *eWin = new EvlWin( hInstance, prevInstance, cmdLine, cmdShow, NULL, NULL);// 显示窗体eWin->show();// DirectX11 处理对象Dx11DemoBase *demo = new BlankDemo();// DirectX11 相关初始化bool result = demo->Initialize( hInstance, eWin->m_hwnd);if( result == false)return -1;//不使用 eWin 事件循环//eWin->loopMessage();// 重写 windows 事件循环, 融入 DirectX11 
    MSG msg;while( TRUE ){if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE)){if( msg.message == WM_QUIT)break;TranslateMessage( &msg);DispatchMessage( &msg);}else{demo->Update( 0.0f);demo->Render();}}// 释放资源demo->Shutdown();delete demo;demo = NULL;return static_cast< int>( 0);
}

这是 源代码 : test_BlankDemo.rar, 包含 :

Dx11DemoBase.cpp/.h    DirectX11基类
BlankDemo.cpp/.h       测试Dx11DemoBase 的子类
evlWin.cpp/.h          windows窗体处理封装类
test_BlankDemo.cpp     主入口

最终效果就是显示一个 窗体( 相当 简陋, 此版本的demo 还有很多地方需要进行优化, 但考虑到自己是 刚学, 尽量还是不要钻太深, 先将过程走完先, 对整体有个把握.)

转载于:https://www.cnblogs.com/Wilson-Loo/archive/2012/11/30/2791874.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改 decimal 默认值为0.00 sql_被经理邀请去“爬山”,只是因为我写错了一条SQL语句?...

作者&#xff1a;isysc1链接&#xff1a;https://juejin.im/post/5f06a2156fb9a07e5f5180df来源&#xff1a;掘金前戏SQL 写的妙&#xff0c;涨薪呱呱叫&#xff01;新来的实习生小杨写了一条 SQL 语句SELECT wx_id from user WHERE wx_id 2当小杨迫不及待准备下班回家的时候&…

java课工场面向对象题p题库_面向对象设计(Java)-题库课稿.doc

面向对象程序设计 java 题库抽题规范:此题库共75道题,抽8道作为期末考试题。其中,易8道,较易33道,较难18道,难16道.按题型,第一大题抽4道&#xff0c;每道10分&#xff1b;第二大题抽2道&#xff0c;每道10分&#xff1b;第三大题抽1道&#xff0c;每道20分&#xff1b;第四大题…

opensips简介

1、引入 随着通信IP化的发展&#xff0c;IP传输的高带宽、低成本等优势使得越来越多的企业、电信运营商加快建设基于IP的各种通信应用。在通信协议IP化发展中&#xff0c;SIP协 议毫无争议地成为各大电信运营商构建其未来网络的基础协议&#xff0c;越来越多的SIP软件产品也不…

JS中关于clientWidth、offsetWidth、scrollWidth

网页可见区域宽&#xff1a; document.body.clientWidth;网页可见区域高&#xff1a; document.body.clientHeight;网页可见区域宽&#xff1a; document.body.offsetWidth (包括边线的宽);网页可见区域高&#xff1a; document.body.offsetHeight (包括边线的宽);网页正文全…

shell 执行失败重试_Uipath 机器人总是运行失败怎么办?

要知道为什么RPA机器人容易失败&#xff0c;首先了解下它和常规的应用系统有哪些区别。常规应用系统&#xff0c;就像程序员自己创造了一个世界、一个域&#xff0c;在这个世界里创造它的人就是主宰。出现BUG的风险是相对可控的&#xff0c;顶多是功能用不了。而RPA项目&#x…

c mysql安装教程视频_MySQL安装教程 - Windows安装MySQL教程 - 小白式安装MySQL教程 - 青衫慧博客...

版权声明本文转发自旧站点萧瑟云日志&#xff0c;近期考虑准备将旧站进行关闭(没有精力维护)&#xff0c;部分文章将会迁移至本站。文章发表于&#xff1a;2017-10-28 12:32:03前言上次给大家带来了SQL Server的小白式安装教程&#xff0c;这次再次带来一个MySQL的小白式安装教…

PJSIP UA分析(1)--PJSUA主函数

1 intmain(intargc, char*argv[])2 {3 do{4 app_restart PJ_FALSE; //PJ_FALSE是一个宏&#xff0c;一旦用户调用pjsua可执行文件进入该循环&#xff0c;那么默认只执行一次退出5 //如果需要再次循环&#xff0c;那么在下面函数中…

锁定表头和固定列(Fixed table head and columns)

前段时间需要这个功能&#xff0c;但是找了很多都不能完美的实现&#xff0c;不是只能锁定表头&#xff0c;就是浏览器兼容问题什么的&#xff0c;在此就自己做了一个锁定表头和列的js方法&#xff0c;依赖于JQuery。 因为方法很简单&#xff0c;就未封装成插件的形式&#xff…

游戏详细设计说明书_宜家的说明书设计脑洞太大了!

平常我们看到的说明书是像这样纯文字解说的或者是规范的文字配图这些说明书一般都是注重文字的上表达而大家熟悉的家居品牌宜家将说明书创意玩出了新境界&#xff01;↓↓↓这不&#xff0c;最近由于全球疫情严峻期间宜家的全新说明书手册搜罗了各种纸上游戏意为帮助大家打发无…

centos删除php_centos如何卸载php

查看php版本php -v查看php相关软件包#rpm -qa|grep php(视频教程推荐&#xff1a;linux视频教程)提示如下&#xff1a;#php-pdo-5.1.6-27.el5_5.3#php-mysql-5.1.6-27.el5_5.3#php-xml-5.1.6-27.el5_5.3#php-cli-5.1.6-27.el5_5.3#php-common-5.1.6-27.el5_5.3#php-gd-5.1.6-27…

PJSIP UA分析(2)--PJSUA注册

1、一开始是回调使用的函数&#xff0c;例如on_incoming_call当来电话的时候&#xff0c;pjsip会自动去调用你写的这个函数&#xff0c;前提是你在初始化pjsua的时候设置了on_incoming_call &on_incoming_call&#xff0c; 2、error_exit退出应用所需要的操作 3、main函数…

cgblib 代理接口原理_Java开发者你还不知道?告诉你Dubbo 的底层原理,面试不再怕...

前言平常我们在构建分布式系统的时候&#xff0c;一般都是基于 Dubbo 技术栈或者是SpringCloud 技术栈来做。早期其实最先比较流行的是Dubbo&#xff0c;我记得我们当时有个部分的老大就是用的是Dubbo 来构建的一个系统&#xff0c;到后面才出来的 SpringCloud&#xff0c;由于…

包含对流环热,热流边界,等温边界的稳态热传导方程的FEM求解。

以下面的问题为例&#xff1a;对于如图所示的平面传热问题&#xff0c; 若上端有给定的热流-2W/m2&#xff0c;即从下往上传输热量&#xff0c;结构下端有确定的温度100&#xff0c;周围介质温度为20&#xff0c;在两侧有换热&#xff0c;换热系数为α100W/㎡/K&#xff0c;热导…

php安装扩展步骤,PHP扩展安装方法步骤解析

php扩展安装方法极简单. 也遵循3大步.但多出一个phpize的步骤.1.pecl.php.net 在右上解的输入框 中输入需要的扩展 比如 redis2.搜索完成后会看到两个蓝色的框 . 下方有个表格. 表格内容如 search results (1 of 1) 再下面有一行不起眼的结果. 其中就有一个redis(搜索什么显示什…

python生成动态二维码实例_python生成动态个性二维码(示例代码)

1 安装工具 2 生成普通二维码 3 带图片的二维码 4 动态 GIF 二维码 5 在Python程序中使用 一、安装 首先在python环境下运行&#xff0c; 打开cmd进入python27 进入scripts 然后在scripts输入命令&#xff1a;pip install myqr二、 生成普通二维码 安装了 myqr 之后&#xff0c…

MFC取消菜单栏

在CMainFrame的OnCreate()中添加如下代码&#xff1a;//去掉标题栏及其他样式SetWindowLong(this->m_hWnd,GWL_STYLE,0);//去掉边框及其他样式SetWindowLong(this->m_hWnd,GWL_EXSTYLE,0);//取消菜单栏this->SetMenu(NULL); 在CView中的OnCreate()中也去掉边框 //去掉…

php的cookie变量作用,PHP语言中cookie的作用

PHP语言中cookie的作用时间&#xff1a;2015-11-9Cookie的概念最早是由Netscape在1994年提出来的,它是保存在浏览器中的小信息包,更确切地说,Cookie是保存在客户端硬盘里的,由字符串组成的小文本文件.文本文件的命令格式如下;用户名网站地址[数字].txt举个例子,如果用户在系统盘…

如何查看Linux版本号(内核版本号和发行版本号)

首先&#xff0c;要分清内核版本号和发行版本号的区别。 因为所有linux都是使用kernel.org上来的内核来作为发行版的基础的&#xff0c;所以内核版本号的高低大致能体现该linux版本的新旧。 而发行版本的版本号完全是各发行商自己定义的&#xff0c;不能用来和其它发行版本的版…

matlab武汉理工大学数值分析线性函数拟合实验_「首席架构师推荐」数值计算库精选...

这是一个著名的数值库列表&#xff0c;这些库用于软件开发中执行数值计算。它不是一个完整的列表&#xff0c;而是一个包含Wikipedia上文章的数字库列表&#xff0c;很少有例外。典型库的选择取决于一系列不同的需求&#xff0c;例如:期望的特性(例如:大维线性代数、并行计算、…

DCE和DTE的区别

DCE&#xff08;数据通信设备或者数据电路终端设备&#xff09;&#xff1a;该设备和其与通信网络的连接构成了网络终端的用户网络接口。它提供了到网络的一条物理连接、转发业务量&#xff0c;并且提供了一个用于同步DCE设备和DTE设备之间数据传输的时钟信号。调制解调器和接口…