社区
多媒体/流媒体开发
帖子详情
DirectDraw的Surface是32位的,我要显示24位,16位,8位BMP图,怎么办?怎么进行全屏显示?
jmcooler
2007-03-06 09:43:00
DirectDraw的Surface是32位的,我要显示24位,16位,8位BMP图,怎么办?怎么进行全屏播放?
...全文
582
4
打赏
收藏
DirectDraw的Surface是32位的,我要显示24位,16位,8位BMP图,怎么办?怎么进行全屏显示?
DirectDraw的Surface是32位的,我要显示24位,16位,8位BMP图,怎么办?怎么进行全屏播放?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
viewerviewer
2007-03-07
打赏
举报
回复
ddsd.ddpfPixelFormat.dwRGBBitCount 要对应于8,16,24,32
viewerviewer
2007-03-07
打赏
举报
回复
把这些去掉试试:
ddsd.ddpfPixelFormat.dwRBitMask = 0xff0000;
ddsd.ddpfPixelFormat.dwGBitMask = 0xff00;
ddsd.ddpfPixelFormat.dwBBitMask = 0xff;
viewerviewer
2007-03-06
打赏
举报
回复
可以创建24,16bit的Surface的啊
jmcooler
2007-03-06
打赏
举报
回复
我在创建主表面时,没有设置象素格式,而在创建离屏(OFFSCREENPLAIN)表面时设置了象素格式如下:
ZeroMemory( &ddsd, sizeof(ddsd) );
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
ddsd.dwWidth = nVidWidth;
ddsd.dwHeight = nVidHeight;
ddsd.ddpfPixelFormat.dwFlags = DDPF_RGB;
ddsd.ddpfPixelFormat.dwSize = sizeof(ddsd.ddpfPixelFormat);
ddsd.ddpfPixelFormat.dwRGBBitCount = 24;
switch( nClrDepth )
{
case 8:
ddsd.ddpfPixelFormat.dwRBitMask = 0xFF0000;
break;
case 15: //RGB555
ddsd.ddpfPixelFormat.dwRBitMask = 0x7c00;
ddsd.ddpfPixelFormat.dwGBitMask = 0x3e0;
ddsd.ddpfPixelFormat.dwBBitMask = 0x1f;
break;
case 16: //RGB565
ddsd.ddpfPixelFormat.dwRBitMask = 0xf800;
ddsd.ddpfPixelFormat.dwGBitMask = 0x7e0;
ddsd.ddpfPixelFormat.dwBBitMask = 0x1f;
break;
case 24:
ddsd.ddpfPixelFormat.dwRBitMask = 0xff0000;
ddsd.ddpfPixelFormat.dwGBitMask = 0xff00;
ddsd.ddpfPixelFormat.dwBBitMask = 0xff;
break;
case 32:
ddsd.ddpfPixelFormat.dwRBitMask = 0xff0000;
ddsd.ddpfPixelFormat.dwGBitMask = 0xff00;
ddsd.ddpfPixelFormat.dwBBitMask = 0xff;
break;
default:
return FALSE;
}
ddrval = m_lpDDraw->CreateSurface( &ddsd, &m_lpddsBack, NULL );
我用24位测试,则返回一个(象素格式不正确的)错误
D
DRAW
DEMO
简单的游戏DEMO,演示了如何使用D
DRAW
基于窗口的
Di
rect
Draw
编程
http://blog.csdn.net/lanyzh0909/article/details/6363378
Di
rect
Draw
在window下支持
全屏
模式(也叫独占模式)和窗口模式。
Di
rect
Draw
基于
全屏
模式的编程例子在%_WINCEROOT%PUBLIC/
DI
RECT
X/SDK/SAMPLES/D
DRAW
下有,读者可以去自己去查看,但是基于窗口下的
Di
rect
Dra
我的
Di
rect
Draw
7学习之旅
我的
Di
rect
Draw
7学习之旅 学习
Di
rect
Draw
大概两个月,这两个月也是我系统地学习游戏编程的两个月。所以在这个时间段里,我还学习了其他的东西,例如C++----当然,C++不是容易学的,我只学了点皮毛-----后来看《C++编程经典》,看到满世界的对象,顿时觉得自己的程序中的那些“面向对象”是多么粗糙!我的整个学习过程都是以渐进式做东西而推进的,即是学到一个阶段了就
Di
rect
Draw
学习总结
Di
rect
Draw
学习总结 最近一段时间,一直在学习
Di
rect
Draw
. 在这里把自己学习的一些浅浅的体会写出来.因为自己工作中只使用很少的
Di
rect
Draw
,所以也没有深入研究.基本上是浅尝辄止把. 要学习
Di
rect
Draw
. 首先要熟悉COM.
Di
rect
X利用COM 实现了程序的无缝升级.这是DX一个很大的优点,用户无需对特定版本的DX编写程序.开发出来
Di
rect
X5.0最新游戏编程指南
Di
rect
Draw
教程篇二
二、第一个
Di
rect
Draw
实例 要使用
Di
rect
Draw
,首先必须创建
Di
rect
Draw
对象的一个实例来表征计算机上的
显示
适配卡,然后使用接口方法来处理对象。另外还需要创建一个或多个
Di
rect
Draw
Surface
对象的实例来
显示
游戏。DDEX1首先创建一个
Di
rect
Draw
对象,再创建一个主表面(primary
surface
)和一个后台缓冲区(back buffer),然后
多媒体/流媒体开发
2,554
社区成员
20,277
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章