Ogre-三维窗口上添加导航小窗口

参考: http://www.cppblog.com/hitmaen/archive/2007/05/22/24589.html

参考: http://www.360doc.com/content/13/0906/11/593831_312575920.shtml

参考: http://blog.csdn.net/windows_nt/article/details/7495387

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)

要实现在Ogre-三维窗口上添加导航小窗口

有两种方法,一种是使用Ogre多视口实现,一种是使用Windows的透明窗口实现

下面使用Ogre的多视口来实现

//-------------------------------------------------------------------------------------------------------------

首先创建第二个Camera


//
画中画相机

m_pCameraInner =
m_pSceneManager->createCamera("InnerCam");//创建名为PlayerCam的摄像机

m_pCameraInner->setPosition(Vector3(0,0,500));//设置摄像机的位置

m_pCameraInner->lookAt(Vector3(0,0,0));//摄像机的方向

m_pCameraInner->setNearClipDistance(5);//位置单位的近距离剪裁

然后创建第二个ViewPort,该ViewPort点据窗口的一角


//
画中画视口

Viewport *vpInner =
m_pWindow->addViewport(m_pCameraInner, 1, 0.75, 0, 0.25, 0.25);
// 放置在左上角

vpInner->setBackgroundColour(ColourValue(0, 0, 1));
// 设置底色

vpInner->setOverlaysEnabled(false);
// 不启用overlay

m_pCameraInner->setAspectRatio(Real(vp->getActualWidth())/Real(vp->getActualHeight()));
// 视口纵横比

下面使用windows的透明窗口实现

//-------------------------------------------------------------------------------------------------------------

a.       首先,建立一个无边框的对话框,

b.       然后在对话框的OnInitDialog中设置透明窗体属性,设置透明度


//
设置窗体为半透明

SetWindowLong(m_hWnd,
GWL_EXSTYLE, GetWindowLong(m_hWnd,
GWL_EXSTYLE)|WS_EX_LAYERED);

SetLayeredWindowAttributes(0, 128,
LWA_ALPHA);

c.       再把窗体的位置调整到左上角

d.       可以使用OpenGL在窗体中绘制元素

这样就形成了画中画的效果,并且这个画中画的效果是半透明效果

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)

时间: 2024-08-02 18:24:35

Ogre-三维窗口上添加导航小窗口的相关文章

【百度地图API】建立全国银行位置查询系统(三)——如何在地图上添加银行标注

原文:[百度地图API]建立全国银行位置查询系统(三)--如何在地图上添加银行标注 <摘要>你将在第三章中学会以下知识: 如何在地图上添加带银行logo的标注?(你也可以换成商场logo,酒店logo等) 如何在标注上显示信息窗口,以及添加文字标签等其他覆盖物: 最后,介绍一个获取坐标的给力工具. ---------------------------------------------------------------------------------------------------

导航栏上添加searchBar

导航栏有个titleView的属性, @property(nonatomic,retain) UIView          *titleView; 因此可以写个类,继承自UIView,然后再view上添加需要的控件. 在写一句: self.navigationItem.titleView=search; 就可以达到在导航栏上添加searchBar了. 具体代码如下: 新建类:SearchBarView.m - (instancetype)initWithFrame:(CGRect)frame

在WPF控件上添加Windows窗口式调整大小行为

起因 项目上需要对Canvas中的控件添加调整大小功能,即能在控件的四个角和四条边上可进行相应的拖动,类似Windows窗口那种.于是在参考以前同事写的代码基础上,完成了该功能. 代码实现 Adorner 我们是给现有的控件添加功能,属于装饰功能.当然首先想到的就是Adorner.在MSDN中Adorner的介绍如下: 装饰器是一个绑定到 UIElement 的自定义 FrameworkElement. 装饰器呈现在装饰器层中,它是一个呈现图面,始终位于装饰元素或装饰元素集合的顶部:呈现装饰器独

IPTV小窗口播放视频 页面焦点无法移动的解决方法

在IPTV高清页面中,小窗口播放视频时,在某些机顶盒上(如高清中兴.高清大亚4904)会出现焦点无法移动现象,即按键无响应.被这个bug困扰了很久,虽然我知道解决方法,但只知其然,不知其所以然.今天做了实验,结果分析如下: 当页面调用视频播放方法时,我们知道代码所做的实际工作是将含有视频ID.视频窗口位置.视频窗口大小等参数拼接在url里,赋值给用于播放视频的iframe的src,此时会在当前页面运行播放控件(我猜想可能是这样.当然这个播放控件只在IPTV机顶盒上得到支持是确定的,在PC端会报错

【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍

原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------------------------------------------------------------------------------------------------------- 哇,好久没有上来了.主要是因为最近工作繁忙,加上休息时间被各种排练.社团活动占满,导致木有更新此博客.

Android控件上添加图片

项目中有一个点赞功能,点赞的小图标添加在点赞列表旁边,在xml里可以进行设置,也可以在代码中进行绘图. 下面是两种方法的设置: 1.xml里:一些控件:button.textView等等里面有个属性是android:drawableLeft 就可以将pic设置到text的左边.good.... 2.代码中: TextView txtlikedList = new TextView(this.getContext()); Drawable drawable= getResources().getD

使用【 ajax 】【 bootstrap 】显示出小窗口 详情内容 一些代码意思可以参考下一个文章

使用[ bootstrap ]显示出小窗口  详情内容 显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> &

iOS viewController添加导航条以及返回跳转选择

给单独的viewcontroller或者在Appdelegate的主页面添加导航条,只要在viewcontroller上添加navigationcontroller,在添加此navigationcontroller即可 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow allo

js制作带有遮罩弹出层实现登录小窗口

要实现的效果如下 点击“登录”按钮后,弹出登录小窗口,并且有遮罩层(这个名词还是百度知道的,以前只知道效果,却不知道名字) 在没有点击“登录”按钮之前登录小窗口不显示,点击“登录”按钮后小窗口显示,并且遮罩层笼罩整个页面,使整个页面的其他元素暂时失去行为. 遮罩层的实现:相对于body绝对定位,宽度和高度都和body相同,并且有一定的透明度,使得下面的元素能够被看到.原先的元素的z-index为0,遮罩层的z-index在弹出登录小窗口和原先元素的之间. 说的不是很清楚,还是看代码吧! <!DO