游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2376|回复: 6

DDRAW允许建立一个比显示模式大的离屏表面吗?

[复制链接]

6

主题

15

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2007-8-20 15:42:00 | 显示全部楼层 |阅读模式
如题:
我在测试时,建立一个比显示模式小或相等的离屏表面,就可以,但:
ddsd.dwWidth=显示模式宽+1

ddsd.dwHeight=显示模式高+1
就无法工作了.
看说明,离屏表面可以随意设置大小呀,只要内存足够大...

29

主题

224

帖子

224

积分

中级会员

Rank: 3Rank: 3

积分
224
QQ
发表于 2007-8-20 19:10:00 | 显示全部楼层

Re:DDRAW允许建立一个比显示模式大的离屏表面吗?

理论上,应该是可以的吧?无法工作到底是在哪里出错?

6

主题

15

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2007-8-20 19:12:00 | 显示全部楼层

Re:DDRAW允许建立一个比显示模式大的离屏表面吗?

如果:
ddsd.dwWidth=显示模式宽
ddsd.dwHeight=显示模式高
贴入一小图片,可以正常显示,但
ddsd.dwWidth=显示模式宽+1
ddsd.dwHeight=显示模式高+1
就立即不显示

29

主题

224

帖子

224

积分

中级会员

Rank: 3Rank: 3

积分
224
QQ
发表于 2007-8-20 19:17:00 | 显示全部楼层

Re:DDRAW允许建立一个比显示模式大的离屏表面吗?

可能是你将缓冲贴到主表面时没设置好裁减,DX没自动裁减的。

6

主题

15

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2007-8-20 19:19:00 | 显示全部楼层

Re:DDRAW允许建立一个比显示模式大的离屏表面吗?

DDSURFACEDESC2 ddsd;
INIT_DXSTRUCT(ddsd);
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; // valid flags
ddsd.dwWidth = 1025;//1024
ddsd.dwHeight = 768;
if (FAILED(lpDD7->CreateSurface(&ddsd,&lpDDSMap,NULL))) return FALSE;//到这就报错

6

主题

15

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2007-8-20 19:31:00 | 显示全部楼层

Re:DDRAW允许建立一个比显示模式大的离屏表面吗?

初始化这个离屏表面时就过不去了...
换成1024或以下,就可以了...
是不是初始化比显示模式大的离屏表面时,ddsd还要做别的设置?

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2007-8-21 12:07:00 | 显示全部楼层

Re:DDRAW允许建立一个比显示模式大的离屏表面吗?

会不会是因为一定要用2的幂次作为长宽的,而且要使正方形。你用的是DX7阿
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 09:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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