Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ LPDIRECT3DDEVICE::DrawPrimitiveUP仅黑白图形_C++_Line_Direct3d_Primitive_Direct3d9 - Fatal编程技术网

C++ LPDIRECT3DDEVICE::DrawPrimitiveUP仅黑白图形

C++ LPDIRECT3DDEVICE::DrawPrimitiveUP仅黑白图形,c++,line,direct3d,primitive,direct3d9,C++,Line,Direct3d,Primitive,Direct3d9,我正在尝试使用DrawPrimitiveUP绘制一条简单的线。 但是,绘制的线要么完全为黑色,要么完全为白色,具体取决于为空的SetVertexShader。它也不支持这两个方面的透明度 但是,绘制的线可能是完全黑色的,也可能是白色的,具体取决于 在SetVertexShader为空时 你期望什么?彩色线条?你把线的颜色调好了吗 它也不支持这两个方面的透明度 您将纹理设置为null,因此混合对线条没有影响。是,颜色已设置。它支持其他D3D应用程序中的透明度,纹理设置为null。您在哪里设置了颜色

我正在尝试使用DrawPrimitiveUP绘制一条简单的线。 但是,绘制的线要么完全为黑色,要么完全为白色,具体取决于为空的SetVertexShader。它也不支持这两个方面的透明度

但是,绘制的线可能是完全黑色的,也可能是白色的,具体取决于 在SetVertexShader为空时

你期望什么?彩色线条?你把线的颜色调好了吗

它也不支持这两个方面的透明度


您将纹理设置为null,因此混合对线条没有影响。

是,颜色已设置。它支持其他D3D应用程序中的透明度,纹理设置为null。您在哪里设置了颜色?我对透明线非常感兴趣,你能给我看一张它的图片吗?它是由Draw2DLINE的参数设置的。你想提供一个可编译的代码吗?我想试一试。目前我无法找出你提供的代码有什么问题。
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);