08/10/26 12:18:32
>>14
頂点座標の設定に誤りがあるのでは?
このままではないが、俺のはこんな感じだ。
void RenderFullScreenQuad( const vector4& srcTexCoords, rect_t destRect)
{
const DWORD fvf = D3DFVF_XYZRHW | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0);
struct Vertex
{
vector4f p;
vector2f t;
};
const Vertex vertex[] =
{
{ vector4f( destRect.left -0.5f, destRect.top -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.x, srcTexCoords.y)},
{ vector4f( destRect.right -0.5f, destRect.top -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.z, srcTexCoords.y)},
{ vector4f( destRect.left -0.5f, destRect.bottom -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.x, srcTexCoords.w)},
{ vector4f( destRect.right -0.5f, destRect.bottom -0.5f, 0.5f, 1.0f), vector2f( srcTexCoords.z, srcTexCoords.w)}
};
D3DDevicePtr->SetFVF( fvf);
D3DDevicePtr->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP, //Primitivetype
countof(vertex)-2, //プリミティブの数
vertex,
sizeof(vertex[0]));
}