LPDIRECT3DDEVICE :: DrawPrimitiveUP только рисование в черно-белом режиме

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. Он также не поддерживает прозрачность.

0

Решение

Однако нарисованная линия либо полностью черная, либо белая в зависимости
на SetVertexShader обнуляется

Чего ты ожидал? цветная линия? Вы установили цвет линии?

Он также не поддерживает прозрачность.

Вы устанавливаете текстуру в нуль, таким образом, смесь не влияет на линию.

0

Другие решения


По вопросам рекламы [email protected]