DirectDraw的大虾们看过来,OverlaySurface问题?

lhztco99 2001-11-30 05:44:58
我在程序中建立了OverlaySurface ,可是为什么总是在前台满满的显示,别的窗口都挡不住它呀?好象用SetClipper也没作用啊。望告知,必谢!!!
...全文
193 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
admireO 2001-12-05
  • 打赏
  • 举报
回复
好羡慕大家能够在这里讨论Overlay呀,我的程序想通过Overlay来加快播放速度.可是每次到创建的时候都失败.上面的兄弟能不能给我段代码,或者去我发的贴子上帮忙解答,谢谢了.
http://www.csdn.net/expert/TopicView.asp?id=404635
lhztco99 2001-12-04
  • 打赏
  • 举报
回复
啊 原来如此,这个微软,不是摆明在耍赖皮嘛,嘻嘻,谢谢worry,
以后还要请你多指教啊!
lhztco99 2001-12-03
  • 打赏
  • 举报
回复
to ryming :
怎么会没用啊 ,Overlay层能提供色彩空间的自动转换,要不然放vcd 或 Dvd 光
YUV->RGB就够耗时间了也。从S3/765开始基本上的显示卡都支持一种以上的Overlay
色彩格式。由于是Overlay窗口,所以在primarySurface 之上,Clipper不太起作用,
我最只好用 Surface->blt 而不用 Surface -> updateOverlay 了。

worry 2001-12-03
  • 打赏
  • 举报
回复
兄弟,播放器确实是用了overlay,只要指定一种dst color key,自己的窗口背景设为此特殊颜色值,就可以只在自己窗口里"透出",而其他位置不显示,至于显示区域,取自己窗口的即可。
DDOVERLAYFX ovfx;
ovfx.dckDestColorkey.dwColorSpaceLowValue = yourwindow_back_color;
ovfx.dckDestColorkey.dwColorSpaceHighValue = yourwindow_back_color;
DWORD dwUpdateFlags = DDOVER_SHOW |
DDOVER_DDFX | DDOVER_KEYDESTOVERRIDE;
m_pDDBackSurface->UpdateOverlay(
&srcRect,m_pDDPrimSurface,
dstRect, dwUpdateFlags, &ovfx);
ryming 2001-12-02
  • 打赏
  • 举报
回复
overlay surface是directdraw最没有用的功能了,几乎没有显卡支持的!
要处理窗口遮挡问题必须用带窗口HWND句柄的SetClipper设置lpPrimary的
Clipper对象!
worry 2001-12-01
  • 打赏
  • 举报
回复
可以用dstcolorkey,设置只在屏幕某种颜色上显示,在其他颜色不显示
lhztco99 2001-12-01
  • 打赏
  • 举报
回复
我当然知道overlay的意思啊,可是看一些播放器软件,使用的也是Overlay Surface ,但是也可以嵌入在一个普通的窗口中,可以被遮挡啊。
chenlee 2001-11-30
  • 打赏
  • 举报
回复
当然啦,“overlay”就是覆盖在其它层上面的意思。

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧