首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectDraw:如果表面大于后台缓冲区,则裁剪失败

DirectDraw:如果表面大于后台缓冲区,则裁剪失败
EN

Stack Overflow用户
提问于 2010-07-02 15:09:23
回答 1查看 343关注 0票数 0

我正在为移动设备编写一个游戏引擎,并且我正在尝试支持多分辨率。游戏世界可以比屏幕大得多,所以我使用裁剪器在世界上创建了一个视口。

我的设备的分辨率是240x320。当我将视口设置为240x320,将世界设置为240x320时,一切都很好。我可以毫不费力地将世界滑出屏幕。但是,当我的视口是220x320,我的世界是240x320时,当曲面移动到左侧屏幕之外时,DDERR_INVALIDPARAMS会失败:

代码语言:javascript
复制
(09:02:06) - INFO - ERROR! DirectDraw: One or more of the passed parameters are incorrect. (DDERR_INVALIDPARAMS)
(09:02:06) - INFO - ERROR! Couldn't copy to screen. (RECT: -1, 0, 239, 320) (line 125 in file .\src\SurfaceDirectDraw.cpp)
(09:02:06) - INFO - Dimensions: (0, 0, 240, 320)
(09:02:06) - INFO - ERROR! DirectDraw: One or more of the passed parameters are incorrect. (DDERR_INVALIDPARAMS)
(09:02:06) - INFO - ERROR! Couldn't copy to screen. (RECT: -2, 0, 238, 320) (line 125 in file .\src\SurfaceDirectDraw.cpp)
(09:02:06) - INFO - Dimensions: (0, 0, 240, 320)
(09:02:06) - INFO - ERROR! DirectDraw: One or more of the passed parameters are incorrect. (DDERR_INVALIDPARAMS)
(09:02:06) - INFO - ERROR! Couldn't copy to screen. (RECT: -3, 0, 237, 320) (line 125 in file .\src\SurfaceDirectDraw.cpp)
(09:02:06) - INFO - Dimensions: (0, 0, 240, 320)

将表面移到屏幕外的右侧可以很好地工作,表面已正确裁剪。

当表面大于后台缓冲区时,如何在后台缓冲区上裁剪曲面?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2010-07-02 15:25:26

我真的不知道我是否正确(DirectDraw很多年没用过了),但我猜是关于负向剪裁的。所以也许你应该把你的0/0设置在最左边/最上面的位置,这样你就不会得到负数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3163858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档