游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3664|回复: 4

ddraw的覆盖页面总是在最前面,该如何解决???

[复制链接]

5

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2005-1-14 17:16:00 | 显示全部楼层 |阅读模式
    用ddraw建立了一个覆盖页面OverlaySurface 用UpdateOverlay() 显示该页面时,始终覆盖了屏幕上的所有东西,请问给如何设置或有别的显示途径可以使它终不在最前端??? 急!

8

主题

553

帖子

560

积分

高级会员

Rank: 4

积分
560
发表于 2005-1-14 18:35:00 | 显示全部楼层

Re:ddraw的覆盖页面总是在最前面,该如何解决???

overlay surface不在最前端? 那还叫什么overlay啊.
为什么需要overlay? overlay产生的原因是:1,避免在vertical blank时flip/blt surface造成的画面"撕裂"现象; 2,使硬件可以窗口模式下使用flip而不是blt,从而提高效率. 3D游戏里面它没有什么用的上的地方, 因为一般硬件不支持render to overlay surface, 2D游戏一般也不用它, 因为象素格式问题, 从RGB的surface blt到YUV的surface时需要硬件花时间去转换, 除非游戏里所有的其他surface也用YUV.
注: 一般硬件overlay surface只支持YUV和其他一些FOURCC的格式, RGB的一般不支持.

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-1-15 08:46:00 | 显示全部楼层

Re: ddraw的覆盖页面总是在最前面,该如何解决???

      倘若要将一种YUV格式的图象覆盖显示到一个自定义的窗口,是硬件将YUV图象格式转换为RGB格式后再在屏幕上显示还是可以通过位块传送到主页面后显示?

8

主题

553

帖子

560

积分

高级会员

Rank: 4

积分
560
发表于 2005-1-17 12:47:00 | 显示全部楼层

Re:ddraw的覆盖页面总是在最前面,该如何解决???

"倘若要将一种YUV格式的图象覆盖显示到一个自定义的窗口", 做到这个很容易的, 只需要创建一个和自定义窗口大小和位置都相同的overlay surface即可, 窗口的大小位置改变时, 此overlay也跟着改变. 一般视频播放软件就是这么做的.
但overlay是比较宝贵的资源, 如果仅仅是为了画一个如"动画按钮"之类的东西就用它也太浪费了点, 一般的硬件只能同时显示一个overlay surface, 多了也没必要.

37

主题

727

帖子

740

积分

高级会员

Rank: 4

积分
740
发表于 2005-1-17 18:02:00 | 显示全部楼层

Re:ddraw的覆盖页面总是在最前面,该如何解决???

你下个 游戏编程指南
里面有
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-24 03:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表