SetRenderTarget将不起作用 [英] SetRenderTarget won't work
问题描述
我正在尝试渲染到屏幕外的表面,所以我这样做:
-------------------------------------------------
d3ddev-> GetRenderTarget(0,&backbuffer);
d3ddev-> CreateOffscreenPlainSurface(64,64,D3DFMT_A8R8G8B8,D3DPOOL_SYSTEMMEM,&surface,NULL);
...
d3ddev-> SetRenderTarget(0,surface);
d3ddev-> Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(70,90,0),1.0f,0);
RECT rect;
rect.left = 0;
rect.top = 0;
rect.right = 63;
rect.bottom = 63;
D3DXVECTOR2 spriteCenter(32.0f,32.0f);
D3DXVECTOR2 trans(0,0);
D3DXMATRIX矩阵;
D3DXVECTOR2缩放比例(1.0f,1.0f);
D3DXMatrixTransformation2D(&matrix,&spriteCenter,0.0f,&scaling,&spriteCenter,tank.rotation,&trans);
sprite-> SetTransform(&matrix);
sprite-> Draw(纹理,&rect,NULL,NULL,0xFFFFFFFF);
sprite-> Flush();
...
d3ddev-> SetRenderTarget(0,backbuffer);
-----------------------------------------
但这不起作用,精灵在屏幕的左上角变白了.我尝试添加dev-> beginscene/endscene,sprite-> begin/end,但一无所获.
I''m trying to render to an off-screen surface, so i do:
-------------------------------------------------
d3ddev->GetRenderTarget(0, &backbuffer);
d3ddev->CreateOffscreenPlainSurface(64, 64, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, &surface, NULL);
...
d3ddev->SetRenderTarget(0, surface);
d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(70, 90, 0), 1.0f, 0);
RECT rect;
rect.left = 0;
rect.top = 0;
rect.right = 63;
rect.bottom = 63;
D3DXVECTOR2 spriteCenter(32.0f, 32.0f);
D3DXVECTOR2 trans(0, 0);
D3DXMATRIX matrix;
D3DXVECTOR2 scaling(1.0f, 1.0f);
D3DXMatrixTransformation2D(&matrix, &spriteCenter, 0.0f, &scaling, &spriteCenter, tank.rotation, &trans);
sprite->SetTransform(&matrix);
sprite->Draw(texture, &rect, NULL, NULL, 0xFFFFFFFF);
sprite->Flush();
...
d3ddev->SetRenderTarget(0, backbuffer);
-----------------------------------------
But it won''t work, the sprites are blitted on the top-left corner of my screen. I tried adding dev->beginscene/endscene, sprite->begin/end, but nothing.
what''s wrong?
推荐答案
D3DXVECTOR2 trans(0,0);
让trans(X,Y)
D3DXVECTOR2 trans(0, 0);
Where trans(X,Y)
这样说:甚至可以D3DXSPRITE-> Draw到屏幕外的表面吗?还是仅仅到后缓冲区?
如果有人可以链接某人或发布规则的完整代码
Let''s put it this way: is it even possible to D3DXSPRITE->Draw to an off-screen surface? or just to the backbuffer?
if somebody can link a tut or post complete code that''d rule
在这里... ^ ]
问候
Here...http://www.toymaker.info/Games/html/sprites.html[^]
Regards
这篇关于SetRenderTarget将不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!