游戏开发论坛

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

DirectDraw页面像素格式

[复制链接]

3

主题

11

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2009-6-12 15:09:00 | 显示全部楼层 |阅读模式
最近在学习directdraw, 我能创建成功页面, 但是我所创建的页面是32位的RGBA格式的, 我如何才能创建555或565格式的页面呀?  我试着填充DDSURFACEDESC2里的DDPIXELFORMAT结构体,  但这样创建页面失败。

请高手解答,在线等待。

30

主题

146

帖子

152

积分

注册会员

Rank: 2

积分
152
发表于 2009-6-12 16:22:00 | 显示全部楼层

Re: DirectDraw页面像素格式

主要部分如下
        DX_INIT_STRUCT( ddsd.ddpfPixelFormat );
        ddsd.dwFlags |= DDSD_PIXELFORMAT;
        ddsd.ddpfPixelFormat.dwFlags       = DDPF_RGB;
        ddsd.ddpfPixelFormat.dwRGBBitCount = Bpp;
        switch ( Bpp )
        {
        case 8:
            ddsd.ddpfPixelFormat.dwFlags |= DDPF_PALETTEINDEXED8;
            break;

        case 16: // 565格式
            ddsd.ddpfPixelFormat.dwRBitMask        = 0x0000f800;
            ddsd.ddpfPixelFormat.dwGBitMask        = 0x000007e0;
            ddsd.ddpfPixelFormat.dwBBitMask        = 0x0000001f;
            break;

        case 24:
            ddsd.ddpfPixelFormat.dwRBitMask        = 0x00ff0000;
            ddsd.ddpfPixelFormat.dwGBitMask        = 0x0000ff00;
            ddsd.ddpfPixelFormat.dwBBitMask        = 0x000000ff;
            break;

        case 32:
            ddsd.ddpfPixelFormat.dwRBitMask        = 0x00ff0000;
            ddsd.ddpfPixelFormat.dwGBitMask        = 0x0000ff00;
            ddsd.ddpfPixelFormat.dwBBitMask        = 0x000000ff;
            ddsd.ddpfPixelFormat.dwRGBAlphaBitMask = 0xff000000;
            break;
        }

12

主题

88

帖子

188

积分

注册会员

Rank: 2

积分
188
发表于 2009-6-12 19:52:00 | 显示全部楼层

Re:DirectDraw页面像素格式

directdraw不支持硬件色彩转换!
换句话说:你不能自己指定页面的色彩格式。由主显示表面决定的

3

主题

11

帖子

15

积分

新手上路

Rank: 1

积分
15
 楼主| 发表于 2009-6-22 15:24:00 | 显示全部楼层

Re:DirectDraw页面像素格式

谢谢分热心回答

3

主题

11

帖子

15

积分

新手上路

Rank: 1

积分
15
 楼主| 发表于 2009-6-22 15:28:00 | 显示全部楼层

Re:DirectDraw页面像素格式

我试了一下, 其实有一个简单的方法,直接调用 SetDisplayMode(1024, 768, 16, 0, 0);就可以设为16色的了,默认为565。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 21:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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