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
總結
以上是生活随笔為你收集整理的Dx11DemoBase 基类(三) 实例应用 【已实现】【附带源码】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux之xargs命令用途
- 下一篇: 图片隐写题思路