DX9动态贴图使用。。
sunnycase吧
全部回复
仅看楼主
level 6
潇洒_先知 楼主
创建:
dev->CreateTexture(512, 512, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &g_pTexture, NULL);
// 顺带的z-buffer(对于UI而言,可以忽略,关闭z-buffer test就好了)
dev->CreateDepthStencilSurface(512, 512, D3DFMT_D24S8, D3DMULTISAMPLE_NONE, 0, FALSE, &g_pDepthStencil, NULL);
使用:
//记录原始缓冲区
LPDIRECT3DSUFACE9 pFrameBufferBackup, pDepthBufferBackup;
dev->GetRenderTarget(0, &pFrameBufferBackup);
pFrameBufferBackup->Release();// 不明其义
dev->GetDepthStencilSurface(&pDepthBufferBackup);
pDepthBufferBackup->Release();// 不明其义
LPDIRECT3DSURFACE9 pSurface;
g_pTexture->GetSurfaceLevel(0, &pSurface);
dev->SetRenderTarget(0, pSurface);
dev->SetDepthStencilSurface(g_pDepthStencil);
dev->Clear(xxxx);// 清除缓冲和画面,代码略
Render();// 渲染,代码略
pSurface->Release();// 依旧不明其义,可能只是减少接口指针引用数吧
dev->SetRenderTarget(0, pFrameBufferBackup);
dev->SetDepthStencilSurface(pDepthBufferBackup);
以上,将Render()内的对象渲染到了Texture里面
之后使用之即可
2011年04月15日 14点04分 1
level 11
。。我的意思是把小纹理复制进去。而不是Render进去 毕竟设计模式还不能Render的
2011年04月15日 14点04分 2
level 6
潇洒_先知 楼主
回复2楼:
文字呢?
2011年04月15日 14点04分 3
level 11
回复3楼:
Sprite.Render啊。 在GUIMgr.Render里调用。
2011年04月15日 14点04分 4
level 6
潇洒_先知 楼主
回复4楼:
不是一次性渲染么?
2011年04月15日 14点04分 5
level 11
回复5楼:
GUIAnim GUILabel除外的一次性渲染
2011年04月15日 14点04分 6
level 6
潇洒_先知 楼主
请问怎么处理层次??
2011年04月16日 01点04分 7
level 11
回复7楼:
下午就知道了。。话说你不用上课的么
2011年04月16日 02点04分 8
level 6
潇洒_先知 楼主
回复8楼:
上课
放学要3点了
2011年04月16日 03点04分 9
level 11
回复9楼:
。。我们要下午5点了。 还要考理综。。。
2011年04月16日 03点04分 10
level 6
潇洒_先知 楼主
回复10楼:
膜拜
2011年04月16日 03点04分 11
level 5
[拍砖]晕了……
2011年06月15日 00点06分 12
level 5
[揉脸]额……现在终于能看懂了……[瀑布汗~]
2011年06月24日 09点06分 13
1