Commit 12fbb7fb authored by hybrid's avatar hybrid

Change point attenuation in D3D to work as the OpenGL version.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2535 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 810f87e9
......@@ -861,16 +861,17 @@ void CD3D8Driver::drawVertexPrimitiveList(const void* vertices,
case scene::EPT_POINT_SPRITES:
case scene::EPT_POINTS:
{
f32 tmp=Material.Thickness/getScreenSize().Height;
if (pType==scene::EPT_POINT_SPRITES)
pID3DDevice->SetRenderState(D3DRS_POINTSPRITEENABLE, TRUE);
pID3DDevice->SetRenderState(D3DRS_POINTSCALEENABLE, TRUE);
pID3DDevice->SetRenderState(D3DRS_POINTSIZE, *(DWORD*)(&Material.Thickness));
f32 tmp=1.0f;
pID3DDevice->SetRenderState(D3DRS_POINTSCALE_C, *(DWORD*)(&tmp));
tmp=0.0f;
pID3DDevice->SetRenderState(D3DRS_POINTSIZE_MIN, *(DWORD*)(&tmp));
pID3DDevice->SetRenderState(D3DRS_POINTSIZE, *(DWORD*)(&tmp));
tmp=1.0f;
pID3DDevice->SetRenderState(D3DRS_POINTSCALE_A, *(DWORD*)(&tmp));
pID3DDevice->SetRenderState(D3DRS_POINTSCALE_B, *(DWORD*)(&tmp));
pID3DDevice->SetRenderState(D3DRS_POINTSIZE_MIN, *(DWORD*)(&tmp));
tmp=0.0f;
pID3DDevice->SetRenderState(D3DRS_POINTSCALE_C, *(DWORD*)(&tmp));
pID3DDevice->DrawIndexedPrimitiveUP(D3DPT_POINTLIST, 0, vertexCount,
primitiveCount, indexList, D3DFMT_INDEX16, vertices, stride);
pID3DDevice->SetRenderState(D3DRS_POINTSCALEENABLE, FALSE);
......
......@@ -1143,16 +1143,17 @@ void CD3D9Driver::drawVertexPrimitiveList(const void* vertices,
case scene::EPT_POINT_SPRITES:
case scene::EPT_POINTS:
{
f32 tmp=Material.Thickness/getScreenSize().Height;
if (pType==scene::EPT_POINT_SPRITES)
pID3DDevice->SetRenderState(D3DRS_POINTSPRITEENABLE, TRUE);
pID3DDevice->SetRenderState(D3DRS_POINTSCALEENABLE, TRUE);
pID3DDevice->SetRenderState(D3DRS_POINTSIZE, *(DWORD*)(&Material.Thickness));
f32 tmp=1.0f;
pID3DDevice->SetRenderState(D3DRS_POINTSCALE_C, *(DWORD*)(&tmp));
tmp=0.0f;
pID3DDevice->SetRenderState(D3DRS_POINTSIZE_MIN, *(DWORD*)(&tmp));
pID3DDevice->SetRenderState(D3DRS_POINTSIZE, *(DWORD*)(&tmp));
tmp=1.0f;
pID3DDevice->SetRenderState(D3DRS_POINTSCALE_A, *(DWORD*)(&tmp));
pID3DDevice->SetRenderState(D3DRS_POINTSCALE_B, *(DWORD*)(&tmp));
pID3DDevice->SetRenderState(D3DRS_POINTSIZE_MIN, *(DWORD*)(&tmp));
tmp=0.0f;
pID3DDevice->SetRenderState(D3DRS_POINTSCALE_C, *(DWORD*)(&tmp));
if (!vertices)
{
......
......@@ -151,7 +151,7 @@ namespace video
// Irrlicht Engine D3D9 render path normal map pixel shader version 2.0
const char D3D9_PARALLAX_MAP_PSH_20[] =
";Irrlicht Engine 0.10 D3D9 render path parallax mapping pixel shader \n"\
";Irrlicht Engine D3D9 render path parallax mapping pixel shader \n"\
";Input: \n"\
" \n"\
";t0: color map texture coord \n"\
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment