在DX12中使用imgui 鼠标响应问题的解决
imgui导入到dx12的时候,刚开始有些问题,就是在拖动控件时,后面的游戏场景会跟着一起旋转。这是因为imgui没有单独响应,需要进行一下鼠标移动的判断。
我先是直接在添加了以下判断
case WM_MOUSEMOVE://让imgui单独响应if (imio.WantCaptureMouse){break;}OnMouseMove(wParam, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));return 0;
但是会报错,
意思是没有创建上下文。
回想之前导入imgui到dx12的时候,我是在Initialize()函数中创建imgui工作流、上下文的,而且是放在窗口初始化和d3d初始化之后的。
所以我们需要对其创建顺序改进:
我是直接在d3dApp的构造函数中就创建好imgui的工作流和上下文:
D3DApp::D3DApp(HINSTANCE hInstance)
: mhAppInst(hInstance)
{// Only one D3DApp can be constructed.assert(mApp == nullptr);mApp = this;//ImgUI 工作流IMGUI_CHECKVERSION();ImGui::CreateContext(); //创建上下文ImGuiIO& io = ImGui::GetIO();(void)io;ImGui::StyleColorsDark();
}
然后在初始化窗口时:
bool D3DApp::InitMainWindow()
{……………………ShowWindow(mhMainWnd, SW_SHOW);UpdateWindow(mhMainWnd);//初始化imgui窗口ImGui_ImplWin32_Init(mhMainWnd);return true;
}
最后,在初始化D3D的函数中:
bool D3DApp::InitDirect3D()
{CreateCommandObjects();CreateSwapChain();CreateRtvAndDsvDescriptorHeaps();ImGui_ImplDX12_Init(md3dDevice.Get(), SwapChainBufferCount,DXGI_FORMAT_R8G8B8A8_UNORM, mSrvHeap.Get(),mSrvHeap.Get()->GetCPUDescriptorHandleForHeapStart(),mSrvHeap.Get()->GetGPUDescriptorHandleForHeapStart());return true;
}
在DX12中使用imgui 鼠标响应问题的解决相关推荐
- 在DX12中使用imgui 入门教程 立方体旋转+改变背景颜色
入门imgui第一天,把遇到的问题和参考两位大佬写的教程,总结了一下,写了下来,若有错误欢迎指正 参考文章: [记录]DirectX12 添加ImGui组件 - 知乎 (zhihu.com) Dire ...
- MFC中鼠标响应textOut()输出文本
最近在工作中有个关于MFC的需求:点击Table中的粗略信息,在页面中显示对应的历史详细信息.本身不是很难,但是其中因为忽视了一个小问题耽误了很多时间.由于涉及公司内部代码,只贴出部分并修改供理解思想 ...
- iOS 9应用开发教程之ios9中实现按钮的响应
iOS 9应用开发教程之ios9中实现按钮的响应 IOS9实现按钮的响应 按钮主要是实现用户交互的,即实现响应.按钮实现响应的方式可以根据添加按钮的不同分为两种:一种是编辑界面添加按钮实现的响应:另一 ...
- matlab 判断鼠标按下_Simulink(其他校验模块)+Matlabgui(鼠标响应事件)+Stateflow汽车运动逻辑状态(二)...
1 Simulink Simulink-其他校验模块 如下图所示为一些其他的校验模块,分别为声明模块,离散梯度模块,输入分辨率检测模块: 声明模块:当输入值非零时检测通过,当输入值中包含有0时,检测模 ...
- 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...
- 关于MFC的使用总结之八——CGridListCtrlEx鼠标响应事件
MFC的使用总结之八--CGridListCtrlEx鼠标响应事件 写在前面 点击表格触发事件 表格中添加按钮,点击按钮触发事件 运行结果如下 最终程序 写在前面 MFC是一种用c++设计交互界面的的 ...
- High-speed Charting Control(MFC绘图控件)--MFC绘图Demo(包含鼠标响应)
首先我们先上效果图,如果你需要这样的Demo请点击此处下载:High-speed Charting Control--MFC绘图Demo 在开始之前,我们首先推荐一篇博客,该博客主要对该控件的英文开发 ...
- QGraphicsItem设置绘图区域和鼠标响应以及碰撞检测区域,并实现碰撞检测
QGraphicsItem中有两个方法,分别用来控制QGraphicsItem的绘图区域和碰撞检测区域: 1.[pure virtual] QRectF QGraphicsItem::bounding ...
- svg鼠标响应事件的四种方法(其中两种可支持火狐)
svg鼠标响应事件的四种方法 鼠标响应事件的四种方法,以click事件为例. Mouse Events - SMIL <?xml version="1.0" encoding ...
- html响应式布局media,JS中使用media实现响应式布局
常见写法: 下面总结常见的响应式布局的分类: @media screen and (max-width:320px){ #talkFooter .editArea{-- } } @media scre ...
最新文章
- android 学习笔记之图形算法
- Windows Server 2012 RS 配置IIS8.0+发布网站
- 你真的了解NSNotificationCenter吗?
- 结婚戒指为什么戴在无名指上的原因
- java实现红包要多少钱_Java实现发红包模拟
- RPC框架的可靠性设计
- CentOS7系统上Kubernetes集群搭建
- 初识Mysql(part4)--我需要知道的5条Mysql语句之排序
- 在线交友背后的数学原理
- 论文浅尝 | 面向自动问题生成的跨语言训练
- 虚拟化精华问答 | 什么是虚拟化?
- python如何给一组数据打标签_给数据集打标签python代码实现(1)
- Flutter FocusNode输入框焦点控制概述
- c语言const限制什么,[C语言]类型限定词const解析
- Django中admin
- protobuf如何使用Protogen工具生成CS代码详细教学篇
- 第一节 细胞是生命活动的基本单位
- QQ群排名优化到霸屏的策略怎么做?
- 孤独后厂村,IT人百态:30万互联网人跳不出的中国硅谷
- 【WLAN】Android 13 p2p / wifi direct介绍