79 lines
2.3 KiB
C++
79 lines
2.3 KiB
C++
#include "stdafx.h"
|
|
#include ".\kprimitivetile.h"
|
|
#include "KRenderDevice.h"
|
|
#include "KRenderDeviceDX.h"
|
|
|
|
|
|
KTilePrimitive::KTilePrimitive(void)
|
|
{
|
|
memset(m_Verts, 0, sizeof(m_Verts));
|
|
memset(&m_Min, 0, sizeof(m_Min));
|
|
memset(&m_Max, 0, sizeof(m_Max));
|
|
}
|
|
|
|
KTilePrimitive::~KTilePrimitive(void)
|
|
{
|
|
memset(m_Verts, 0, sizeof(m_Verts));
|
|
memset(&m_Min, 0, sizeof(m_Min));
|
|
memset(&m_Max, 0, sizeof(m_Max));
|
|
}
|
|
|
|
void KTilePrimitive::SetupVerts(STileVertex min, STileVertex max)
|
|
{
|
|
m_Verts[0] = min;
|
|
m_Verts[1] = max;
|
|
m_Verts[2] = max;
|
|
m_Verts[3] = min;
|
|
|
|
m_Verts[1].y = min.y;
|
|
//m_Verts[1].z = min.z;
|
|
m_Verts[1].v = min.v;
|
|
|
|
m_Verts[3].y = max.y;
|
|
//m_Verts[3].z = max.z;
|
|
m_Verts[3].v = max.v;
|
|
|
|
//for(int i = 0; i < 4; i++)
|
|
//{
|
|
//m_Verts[i].color = 0xffffffff;
|
|
//}
|
|
|
|
m_Min = min;
|
|
m_Max = max;
|
|
}
|
|
|
|
void KTilePrimitive::Render( KViewportObject *viewport, class K3DRenderDevice *dev, bool bUseAccum)
|
|
{
|
|
//K3DMatrix worldview;
|
|
//K3DMatrixIdentity( worldview );
|
|
//K3DMatrixMultiply( &world, m_pTransform, &m_RootMat );
|
|
//dev->SetTransform( K3DRenderDevice::TS_WORLD, &world );
|
|
//dev->SetTransform( K3DRenderDevice::TS_VIEW, &world );
|
|
//dev->SetTransformIdentity(K3DRenderDevice::TS_WORLD);
|
|
//dev->SetTransformIdentity(K3DRenderDevice::TS_VIEW);
|
|
|
|
//((K3DRenderDeviceDX*) dev)->setToDefaultRenderState();
|
|
dev->SetRenderState( K3DRenderDevice::RS_DEFAULT );
|
|
|
|
dev->EnableLightEffect(false);
|
|
//dev->EnableLightEffect(true);
|
|
dev->SetCullMode(K3DRenderDevice::KCM_CCW);
|
|
//dev->SetCullMode(K3DRenderDevice::KCM_CW);
|
|
//dev->SetCullMode(K3DRenderDevice::KCM_NONE);
|
|
|
|
IDirect3DDevice9* pD3dDevice = ((K3DRenderDeviceDX*) dev)->GetD3DDevice();
|
|
|
|
pD3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
|
|
pD3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
|
|
pD3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
|
|
|
|
pD3dDevice->SetRenderState( D3DRS_COLORVERTEX, TRUE );
|
|
pD3dDevice->SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1 );
|
|
|
|
dev->SetTextureFactor(0xffffffff);
|
|
dev->SetTexture(0, m_spTexture);
|
|
//dev->DrawTriangleFan(D3DFVF_XYZ | D3DFVF_TEX1, m_Verts, 4, sizeof(STileVertex));
|
|
dev->DrawTriangleFan(D3DFVF_XYZW | D3DFVF_DIFFUSE | D3DFVF_TEX1, m_Verts, 4, sizeof(STileVertex));
|
|
//dev->DrawTriangleFan(D3DFVF_XYZRHW | D3DFVF_TEX1, m_Verts, 4, sizeof(STileVertex));
|
|
}
|