游戏开发论坛

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

GetBackBuffer的图片,怎么这样?

[复制链接]

24

主题

94

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2005-10-6 17:00:00 | 显示全部楼层 |阅读模式
当然BMP读取也是自己写的,不过测试了几组数据都对得

获取BACKBUFFER如下:

LPDIRECT3DSURFACE8 pSurface ;
D3DSURFACE_DESC surfaceDesc;
HRESULT h = g_pd3dDevice->GetBackBuffer( 0, D3DBACKBUFFER_TYPE_MONO, &pSurface ) ;

if ( h != D3D_OK )
{
        MessageBox( ) ;
}
else
{
        pSurface->GetDesc(&surfaceDesc);
        D3DLOCKED_RECT rect ;

        h = pSurface->LockRect( &rect, NULL, 0 ) ;
        DWORD* buffer = (DWORD* ) rect.pBits ;// 直接获得数据
。。。
}

之后我把DWORD的数据当做ARGB 4byte读取,对吗? 反正即使错了那也是颜色的问题吧?
那么GETBACKBUFFER究竟GET了什么?
sf_20051061704.jpg

24

主题

94

帖子

96

积分

注册会员

Rank: 2

积分
96
 楼主| 发表于 2005-10-6 17:01:00 | 显示全部楼层

Re:GetBackBuffer的图片,怎么这样?

另外我在别的数个地方都测试了,就是CATCHBMP函数的位置,结果都试这样
关了CLEAR也一样,究竟哪里错了?

明明就差这么一步了……竟然…………

15

主题

1268

帖子

1268

积分

金牌会员

Rank: 6Rank: 6

积分
1268
发表于 2005-10-6 17:14:00 | 显示全部楼层

Re:GetBackBuffer的图片,怎么这样?

不用这样做,你可以用API直接拷贝表面数据到贴图,也可以直接保存为图片,详细情况察看DX9 /D3D /D3DX 部分的FUNC/TEX FUNC

0

主题

237

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
发表于 2005-10-6 17:36:00 | 显示全部楼层

Re:GetBackBuffer的图片,怎么这样?

D3DXSaveSurfaceToFile

24

主题

94

帖子

96

积分

注册会员

Rank: 2

积分
96
 楼主| 发表于 2005-10-6 19:24:00 | 显示全部楼层

Re:GetBackBuffer的图片,怎么这样?

天啊,有这样的东西……

可以了…………
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-28 01:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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