struct tri_vertex
{
float x, y, z, h;
D3DCOLOR color;
};
void Draw2DLine(float x1, float y1, float x2, float y2, D3DCOLOR dwColor)
{
tri_vertex vertices[2] =
{
x1, y1, 0.0f, 1.0f, dwColor,
x2, y2, 0.0f, 1.0f, dwColor,
};
pDevice->DrawPrimitiveUP(D3DPT_LINELIST, 1, vertices, sizeof(tri_vertex));
}
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );
pDevice->SetRenderState( D3DRS_LIGHTING, false );
pDevice->SetTexture( NULL, NULL );
pDevice->SetPixelShader( NULL );
// If commented out, the block drawn is black. Otherwise its completely white.
pDevice->SetVertexShader( NULL );
// For transparency
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
pDevice->SetRenderState(D3DRS_BLENDOP,D3DBLENDOP_ADD);
pDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1);
Я пытаюсь сделать простую строку с помощью DrawPrimitiveUP(). Однако линия, нарисованная, либо полностью черная, либо белая, в зависимости от того, что SetVertexShader является нулевым. Он также не поддерживает прозрачность.
Однако нарисованная линия либо полностью черная, либо белая, в зависимости от того, что SetVertexShader является нулевым
Чего вы ожидали? цветная линия? Установили ли вы цвет линии?
Он также не поддерживает прозрачность.
Вы устанавливаете текстуру равной нулю, поэтому смесь не влияет на строку.