实时3D地形引擎——Chapter6_03——D3DApp框架阅读2

YOLOv13改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性 Bw−wgt2h−hgt2weight2Bweight2w−wgt​2h−hgt​2​其中weight2weight = 2weight2。 阅读详情

        上一篇根据函数的执行过程将D3DApp框架的主要函数看了一遍,不过后来发现漏了一个非常重要的地方,就是消息处理。这个框架的消息处理函数为WndProc,写得非常完备,特别是在窗口缩放和全屏等地方。那么对于我们来说,其实最重要的地方就是处理WM_PAINT时调用Render函数进行渲染。

下面是D3DApp框架自带的描述:

//-----------------------------------------------------------------------------
// Name: class CD3DApplication
// Desc: A base class for creating sample D3D9 applications. To create a simple
//       Direct3D application, simply derive this class into a class (such as
//       class CMyD3DApplication) and override the following functions, as 
//       needed:
//          OneTimeSceneInit()    - To initialize app data (alloc mem, etc.)
//          InitDeviceObjects()   - To initialize the 3D scene objects
//          FrameMove()           - To animate the scene
//          Render()              - To render the scene
//          DeleteDeviceObjects() - To cleanup the 3D scene objects
//          FinalCleanup()        - To cleanup app data (for exitting the app)
//          MsgProc()             - To handle Windows messages
//-----------------------------------------------------------------------------
        这里放的是CD3DApplication类,实际上在这个框架中,主要是由这个类完成工作,而且我们需要自定义工作时所需要重写的函数主要也就是上面所列出的几个函数(Gaia框架对此进行了扩展,需要重写的函数多了一些)。D3DApp框架中的其他类的函数基本上不需要重写。下面是我根据执行过程将重要的几个函数串在了一起,作为D3DApp框架阅读的结束。



文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况 主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。 立即下载

相关推荐

抖音__NS_sig3签名机制解析与动态Hook实战

在现代移动应用中,客户端与服务端之间的可信通信契约往往依赖于动态生成的请求签名,如抖音(某手)的__NS_sig3参数。该签名并非简单哈希,而是融合设备指纹、传感器数据、运行时上下文与轻量加密的综合摘要,体现了‘环境即凭证’的安全设计思想。其核心价值在于抵御静态伪造与批量模拟,提升接口调用的真实性与不可复用性。典型应用场景包括Feed流加载、点赞关注等关键业务接口的身份校验。本文基于真实逆向与Frida动态Hook实践,深入解析__NS_sig3的so层实现逻辑、JNI调用链路、输入参数真实性验证机制,以及

weixin_30127995的博客 375

Introduction to 3D Game Programming with DirectX 11 学习笔记 (2)D3DApp 类

D3DApp 是一个框架类,用于创建主窗口,创建 Direct3D 对象,并处理主循环逻辑。 源文件 ${CODE}/d3dApp.h ${CODE}/d3dApp.cpp 类方法详解 HINSTANCE D3DApp::AppInst() 返回当前应用的实例句柄。该值在 D3DApp 的构造函数中传入并保存。一般在创建唯一的 D3DApp 实例时,将 WinMain 函数的 h...

icbm的专栏 657

Typora绘制思维导图

我们观察一下,其实思维导图就是树状结构的数据嘛,作为程序员,拿语言写树状结构的数据是很平常的事情。而且写代码可比画图省事多了,查阅资料可以知道,有一种`mermaid`语法,就是做这件事情的,支持 UML,甘特图,流程图等。

Peter Cheung的博客 7933

Directx--初始化操作

一.建立 D3DAPP 头文件及cpp文件 文件创建后,构造D3D类并转运原来main中的代码 构造D3D类: #include<windows.h> class D3DAPP { public: D3DAPP(HINSTANCE hInst); LRESULT MsgProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam); bool InitWnd(); bool InitD3D(); bool Init(); prot

weixin_62773441的博客 1429

多智能体强化学习论文——SEAC(NIPS 2020)

存在的问题&研究动机&研究思路 在稀疏奖励的环境下,多智能体的exploration存在效率不足等问题。 在IAC的基础上尝试加入重要性采样,使得每次更新智能体iii的参数时,不再仅仅使用智能体iii的数据,而是使用所有智能体的数据进行智能体iii数据的更新。 对于原始的IAC算法是on-policy的,而SEAC则是off-poligy的。 创新点 在每个智能体iii的actoriactor_iactori​和criticicritic_icritici​的更新过程中,都加入了重要性

我的AI笔记 1206

Vivado新手必看:5分钟搞定FPGA程序固化到Flash(附MCS文件生成全流程)

本文为FPGA新手详细解析了如何将程序固化到Flash存储器的完整流程。核心在于理解SRAM工艺FPGA断电易失的特性,并利用Vivado工具将比特流文件转换为Flash可识别的MCS文件。文章重点拆解了生成MCS文件的关键配置步骤、硬件连接要点,以及通过JTAG烧写Flash的实战操作,并提供了常见启动失败问题的排查清单,帮助开发者实现设计从调试到产品部署的关键跨越。

weixin_29230901的博客 352

Directx11学习笔记【八】 龙书D3DApp的实现

Directx11学习笔记【八】 龙书D3DApp的实现 原文:Directx11学习笔记【八】 龙书D3DApp的实现directx11龙书中的初始化程序D3DApp跟我们上次写的初始化程序大体一致,只是包含了计时器的内容,而且使用了深度模板缓冲。 D3DUtil类,定义了一些工具和宏,目前只定义了两个宏,以后还会添加 #ifn...

weixin_30384217的博客 585

一文读懂 MAVLink、PPM、SBUS:无人机通信协议的工作原理与适用场景

本文系统对比无人机领域三大核心通信协议:MAVLink作为全链路数据协议,支持飞控与地面站的双向通信,适合航拍测绘等专业场景;SBUS是数字化的高效控制协议,具备16通道、抗干扰特性,成为中高端设备标配;PPM作为传统模拟协议,成本低廉但性能有限,适合入门级应用。文章深入解析各协议的工作原理、帧结构、适用场景及调试技巧,指出MAVLink侧重状态监控、SBUS/PPM专注控制指令的互补关系,并给出新手选型建议:入门选PPM,进阶用SBUS,开发必备M

bother3000的博客 7124

3D游戏引擎开发心得(3)

这两天忙,没有更新进度,今天周日,要不上。突然觉得我写的东西太自我为中心,应该把我的心得写的清楚点,让更多的人从中受益。 前两天遇到的问题,用四元数旋转世界矩阵的时候为什么要把四元数旋转矩阵乘在世界矩阵的前面呢?研究中… 未果。 说一下我的引擎现在能完成的功能吧。它现在可以加载.x模型,进行输入处理,功能还不多。贴一下代码吧:首先是D3D_Application

ID_WinMain的专栏 799

python语言下使用opencv接口cv2.VideoCapture()接口调用海康机器人工业相机

文章目录 目录 文章目录 前言 一、opencv接口介绍 二、调用海康机器人工业相机 1.使用海康机器人工业相机的前提 2.调用海康机器人工业相机进行显示 3.调用海康机器人工业相机进行存图 4.调用海康机器人工业相机存视频 5.调用海康机器人工业相机进行简单图像处理 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下.

qq_39570716的博客 1万+

Ubuntu 24.04 部署 EMQX 5.8 开源版MQTT服务器:从零搭建到实战应用

本文详细指导如何在Ubuntu 24.04系统上部署EMQX 5.8开源版MQTT服务器。内容涵盖从环境准备、安装Erlang、下载安装包到启动服务的完整步骤,并提供了验证服务、配置网络防火墙以及通过WebSocket工具进行基础消息收发的实战方法,帮助用户快速搭建稳定、免费的物联网消息中间件。

weixin_29209825的博客 293

【转贴】DXUT 框架入门 1

CD3DApplication 框架类已经光荣的退役了,取而代之的是DXUT*系列函数。在这篇文章中将要简单介绍DXUT框架的应用。 最近的directx 下载地址 , 这里面包含了64位操作系统库以及directx10等等,directx10 的程序例子只能运行在windows vista 上面。尽管可以编译,但缺少directx3d10 运行库. 在安装sdk之后,别忘记安装Redist...

weixin_34389926的博客 172

「JS逆向三百例」JS逆向HIKVISION-视频监控的前端密码加密

本文详细分析了HIKVISION-海康威视监控前端登录过程中密码的加密机制,通过逆向工程解析了其 JavaScript 加密逻辑,重点研究了HIKVISION-海康威视监控的前端密码SHA256加密算法的实现。基于逆向分析结果,使用 Python 模拟了HIKVISION-海康威视监控的登录流程,最终实现了自动化登录功能。本文旨在为安全研究人员提供技术参考,帮助理解前端加密机制,并强调技术研究的合法性和合规性。

布啦啦 1096

实时3D地形引擎——Chapter6_02——D3DApp框架阅读1

下面就是入口点,这一次我们将从入口点开始分析一下D3DApp框架的运行过程。 //----------------------------------------------------------------------------- // Name: WinMain() // Desc: Entry point to the program. Initializes everything

1571

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

DirectX11 演示程序框架

演示程序框架 本书中的演示程序均使用d3dUtil.h、d3dApp.h、d3dApp.cpp文件中的代码,这些文件可以从本书网站下载。由于本书的第Ⅱ部分和第Ⅲ部分的所有演示程序都会用到些常用文件,所以我们把些文件保存在了Common目录下,使些文件被所有的工程共享,避免多次复制文件。d3dUtil.h文件包含了一些有用的工具代码,d3dApp.h和d3dApp.cpp文件包含了Direct3D

梦幻DUO的游戏开发之路 3152

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

DirectX游戏编程(一):创建一个Direct3D程序

一、环境 Visual Studio 2012,DirectX SDK (June 2010) 二、准备 1.环境变量(如没有配置请添加) 变量名:DXSDK_DIR 变量值:D:\Software\Program\Microsoft DirectX SDK (June 2010) 这里D:\Software\Program\Microsoft DirectX SDK (June 20...

weixin_30497527的博客 450

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WM_PAINT详解

The WM_PAINT message is generated by the system and should not be sent by an application.The system sends this message when there are no other messages in the application's message queue   也就是说WM_PAIN

FUN 4854

Windows GUI WM_PAINT消息一直发送的问题

while(msg.message != WM_QUIT) { // If there are Window messages then process them. if(PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) { TranslateMessage( &msg ); DispatchMessage( &msg );

wuanshi5的专栏 1462

窗口刷新问题(WM_PAINT)

在Windows API编程中,WM_PAINT是Windows窗口的一个重要消息,应用程序就是通过响应这个消息来完成窗口的绘制。   The WM_PAINT message is generated by the system and should not be sent by an application.The system sends this message when there a

imgodor的专栏 1448

《Real Time 3D Terrain Engines Using C++ And DirectX9》(实时地形引擎)随书源码

《Real Time 3D Terrain Engines Using CplusplusAnd DirectX9》(实时地形引擎)随书源码,gaia引擎源码下载:http://ishare.iask.sina.com.cn/f/23556371.html

weixin_34307464的博客 305

实时3D地形引擎开坑

实时3D地形引擎这本书由承天一大哥翻译,翻了翻,感觉不错,虽然貌似因为写得简略而有点难懂。这么好的书,假如翻翻就算了的话,实在太浪费了,所以还是在优快云上开个坑写一下自己看源码的过程吧,呵呵。上一篇博文是5个月前写的,这5个月过去了,感觉没什么进步。现在去向已经定了,不用纠结了,必须好好自学一下了。         这个系列将会以这本书的例子为主展开描述,估计主要写我是怎么样看代码的。好,今天

1768

Direct3D入门之框架的搭建

    学习一样东西,最好能够从最基础做起。学习D3D,笔者并不赞同直接继承SDK Sample的CD3DApplication,然后override那几个虚函数,因为这样会让初学者对D3D更感神秘,因此我们需要从头开始,不用害怕,其实一点都不难:)一、Win32 SDK框架    看过Petzold的《Windows程序设计》的朋友应该知道创建窗口的固定步骤。而利用Win32 SDK搭建

Heath's Blog 4724

D3DFrame 入门

D3DFrame 入门作者:Philip Taylor发布日期:2000 年 5 月 15 日     将于 2000 年 6 月 19 日存档 下载本文的源代码(63.9K)欢迎关注“Driving DirectX”的第二个问题,MSDN Online Voices 的 DirectX® 专栏。在下面几个专栏中,我想着重讨论 Direct3d(R) (D3D) for Direc

ozx的专栏 1848
上一篇: 实时3D地形引擎——Chapter6_02——D3DApp框架阅读1
下一篇: 实时3D地形引擎——Chapter6_04——GameHost框架阅读
HowdChow
博客等级 码龄15年 10粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值