|
就是一个无标题栏的透明窗口,里面是用Ogre实时渲染的模型。我的关键问题是无法将窗口背景透明化,Ogre中只能设置背景色:mMainViewport->setBackgroundColour( ColourValue::White );
我用如下代码,完全无用,背景仍然存在:
SetWindowLong(hRenderWnd,GWL_STYLE,GetWindowLong(hRenderWnd,GWL_STYLE)&(~(WS_OVERLAPPED|WS_CAPTION|WS_BORDER|WS_THICKFRAME)));
SetWindowLong(hRenderWnd, GWL_EXSTYLE, GetWindowLong(hRenderWnd,GWL_EXSTYLE)|WS_EX_LAYERED);
SetLayeredWindowAttributes(hRenderWnd,RGB(1,1,1),0,LWA_ALPHA/*LWA_COLORKEY*/);
我现在想到个方法,就是使用渲染到纹理,并且进行了尝试,但结果不行。比如我将场景渲染到texture(Ogre::TexturePtr)上,那么背景色仍然存在……
请问哪位大侠有好的解决方案吗?貌似这种问题没有人遇到过啊 |
|