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 鼠标响应问题的解决相关推荐

  1. 在DX12中使用imgui 入门教程 立方体旋转+改变背景颜色

    入门imgui第一天,把遇到的问题和参考两位大佬写的教程,总结了一下,写了下来,若有错误欢迎指正 参考文章: [记录]DirectX12 添加ImGui组件 - 知乎 (zhihu.com) Dire ...

  2. MFC中鼠标响应textOut()输出文本

    最近在工作中有个关于MFC的需求:点击Table中的粗略信息,在页面中显示对应的历史详细信息.本身不是很难,但是其中因为忽视了一个小问题耽误了很多时间.由于涉及公司内部代码,只贴出部分并修改供理解思想 ...

  3. iOS 9应用开发教程之ios9中实现按钮的响应

    iOS 9应用开发教程之ios9中实现按钮的响应 IOS9实现按钮的响应 按钮主要是实现用户交互的,即实现响应.按钮实现响应的方式可以根据添加按钮的不同分为两种:一种是编辑界面添加按钮实现的响应:另一 ...

  4. matlab 判断鼠标按下_Simulink(其他校验模块)+Matlabgui(鼠标响应事件)+Stateflow汽车运动逻辑状态(二)...

    1 Simulink Simulink-其他校验模块 如下图所示为一些其他的校验模块,分别为声明模块,离散梯度模块,输入分辨率检测模块: 声明模块:当输入值非零时检测通过,当输入值中包含有0时,检测模 ...

  5. 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...

  6. 关于MFC的使用总结之八——CGridListCtrlEx鼠标响应事件

    MFC的使用总结之八--CGridListCtrlEx鼠标响应事件 写在前面 点击表格触发事件 表格中添加按钮,点击按钮触发事件 运行结果如下 最终程序 写在前面 MFC是一种用c++设计交互界面的的 ...

  7. High-speed Charting Control(MFC绘图控件)--MFC绘图Demo(包含鼠标响应)

    首先我们先上效果图,如果你需要这样的Demo请点击此处下载:High-speed Charting Control--MFC绘图Demo 在开始之前,我们首先推荐一篇博客,该博客主要对该控件的英文开发 ...

  8. QGraphicsItem设置绘图区域和鼠标响应以及碰撞检测区域,并实现碰撞检测

    QGraphicsItem中有两个方法,分别用来控制QGraphicsItem的绘图区域和碰撞检测区域: 1.[pure virtual] QRectF QGraphicsItem::bounding ...

  9. svg鼠标响应事件的四种方法(其中两种可支持火狐)

    svg鼠标响应事件的四种方法 鼠标响应事件的四种方法,以click事件为例. Mouse Events - SMIL <?xml version="1.0" encoding ...

  10. html响应式布局media,JS中使用media实现响应式布局

    常见写法: 下面总结常见的响应式布局的分类: @media screen and (max-width:320px){ #talkFooter .editArea{-- } } @media scre ...

最新文章

  1. android 学习笔记之图形算法
  2. Windows Server 2012 RS 配置IIS8.0+发布网站
  3. 你真的了解NSNotificationCenter吗?
  4. 结婚戒指为什么戴在无名指上的原因
  5. java实现红包要多少钱_Java实现发红包模拟
  6. RPC框架的可靠性设计
  7. CentOS7系统上Kubernetes集群搭建
  8. 初识Mysql(part4)--我需要知道的5条Mysql语句之排序
  9. 在线交友背后的数学原理
  10. 论文浅尝 | 面向自动问题生成的跨语言训练
  11. 虚拟化精华问答 | 什么是虚拟化?
  12. python如何给一组数据打标签_给数据集打标签python代码实现(1)
  13. Flutter FocusNode输入框焦点控制概述
  14. c语言const限制什么,[C语言]类型限定词const解析
  15. Django中admin
  16. protobuf如何使用Protogen工具生成CS代码详细教学篇
  17. 第一节 细胞是生命活动的基本单位
  18. QQ群排名优化到霸屏的策略怎么做?
  19. 孤独后厂村,IT人百态:30万互联网人跳不出的中国硅谷
  20. 【WLAN】Android 13 p2p / wifi direct介绍

热门文章

  1. 【StyleGAN代码学习】StyleGAN损失函数与训练过程
  2. 单层感知器为什么不能解决异或(XOR)问题
  3. 小胡学python【1】
  4. Springboot实现邮箱验证码注册、找回密码和登录功能
  5. 刀魔王带你了解创口贴圆辊刀模的应用
  6. php做支付宝接口测试,支付宝接口调试经验总结
  7. 易思ESPCMS企业建站管理系统 P8.21120101 稳定版
  8. 科技复原,3000多前年的木乃伊「发声」了
  9. 家用计算机初步,职称计算机Internet基础知识:配置家庭局域网
  10. 微信小程序防止点击事件多次请求接口