游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1337|回复: 1

帮忙看一下函数!!谢谢复制纹理的!帮帮忙

[复制链接]

3

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2008-10-29 22:48:00 | 显示全部楼层 |阅读模式
目标,把一个纹理的RECT区域复制给空的TEXTURE
简单的说就是 pDest = pSrc的rc区域
void CopyTexture(LPDIRECT3DTEXTURE9 pSrc, LPDIRECT3DTEXTURE9* pDest,RECT* rc)
{
        D3DSURFACE_DESC TexDesc;

        pSrc->GetLevelDesc( 0, &TexDesc );
        DWORD NumLevels = pSrc->GetLevelCount();

        D3DXCreateTexture(
                g_pd3dDevice,
                TexDesc.Width,
                TexDesc.Height,
                NumLevels,
                0,
                TexDesc.Format,
                D3DPOOL_MANAGED,
                &(*pDest) );
        LPDIRECT3DSURFACE9 pSrcSurf = 0;
        LPDIRECT3DSURFACE9 pDestSurf = 0;

        for( int i = 0 ; i < NumLevels ; i++ )
        {
                (*pDest)->GetSurfaceLevel( i, &pDestSurf );
                pSrc->GetSurfaceLevel( i, &pSrcSurf );

                D3DXLoadSurfaceFromSurface(
                        pDestSurf,
                        0,
                        0,
                        pSrcSurf,
                        0,
                        0,
                        D3DX_FILTER_NONE,
                        0);

                pDestSurf->Release();
                pSrcSurf->Release();
        }

}
目前是完全复制,和RECT没有关系,怎么把RECT区域给pDest阿?? 帮帮忙

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-10-30 11:26:00 | 显示全部楼层

Re:帮忙看一下函数!!谢谢复制纹理的!帮帮忙

把你复制数据的部分擐成D3DXLoadSurfaceFromSurface,比你这样写功能强大多了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 00:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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