查看: 2669|回复: 9

CEGUI 鼠标位置

[复制链接]

该用户从未签到

发表于 2011-4-26 16:43:55 | 显示全部楼层 |阅读模式
OSG与CEGUI 结合时候。鼠标位置总是不对。
当设置OSG的窗口为屏幕大小时,比如1920*1200.CEGUI能准确获取鼠标位置。

当OSG窗口加上边框并进行缩减时。CEGUI就无法准确获取鼠标位置。有什么办法可以解决呢?谢谢各位了。
GlobalVar::windows_y=为自己设的窗口高度。
case osgGA::GUIEventAdapter::MOVE:

{

CEGUI::System::getSingleton().injectMousePosition(ea.getX(),GlobalVar::windows_y-ea.getY());//975-

return false;

}

case osgGA::GUIEventAdapter:USH:

{

CEGUI::System::getSingleton().injectMousePosition(ea.getX(),GlobalVar::windows_y-ea.getY());//975-

if(ea.getButton()==osgGA::GUIEventAdapter:EFT_MOUSE_BUTTON)

{

CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::LeftButton);

}

else

{

//CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::LeftButton);


}

return false;

}

该用户从未签到

发表于 2011-4-27 08:37:57 | 显示全部楼层
您用的什么方法实现了OSG与CEGUI的结合?

该用户从未签到

发表于 2011-4-27 08:50:58 | 显示全部楼层
请把CEGUI的相关内容封转在一个osg:rawable中使用

该用户从未签到

 楼主| 发表于 2011-4-27 09:44:15 | 显示全部楼层
回复 3# liuzhiyu123 嗯。就是将CEGUI封装到osg:rawable里的呢。。是照着freesouth视频教程里做的~

该用户从未签到

 楼主| 发表于 2011-4-27 09:45:20 | 显示全部楼层
回复 2# array 是照着freesouth的视频做的。将cegui封装到osg的drawable里

该用户从未签到

发表于 2011-4-28 08:18:44 | 显示全部楼层
GlobalVar::windows_y的值是否是准确的?把它打印出来看看呢

该用户从未签到

 楼主| 发表于 2011-4-28 09:41:18 | 显示全部楼层
回复 6# array

打印出来的值看着倒是正确。而且算了一下CEGUI的窗口变化率和OSG的窗口变化率都一致。。。。。

该用户从未签到

发表于 2011-4-28 12:30:27 | 显示全部楼层
我不清楚cegui有没有调整自己的窗口尺寸的函数,如果有的话,也许您需要在RESIZE事件中调用它

该用户从未签到

 楼主| 发表于 2011-4-28 14:30:42 | 显示全部楼层
回复 8# array
我找找看。先谢谢array。

该用户从未签到

发表于 2013-1-27 14:29:23 | 显示全部楼层
llosg 发表于 2011-4-28 14:30
回复 8# array
我找找看。先谢谢array。

osg 和cegui的坐标系统是不一样的 cegui是以左上角为00 osg好像是以左下角为00的 这个您的需要做一下运算
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表