78 lines
2.1 KiB
C++
78 lines
2.1 KiB
C++
#include "stdafx.h"
|
|
#ifdef _KUI_INVALIDATION
|
|
// { [sonador]
|
|
#include "stdafx.h"
|
|
|
|
#include "SUIViewport.h"
|
|
|
|
#include "KPrimitive.h"
|
|
|
|
#include "KRenderDeviceDX.h"
|
|
|
|
#include <dump/XException.h>
|
|
#include "KResourceManager.h"
|
|
|
|
#include <toolkit/XEnv.h>
|
|
#include <mmo/ArTime.h>
|
|
|
|
#include "GameDefine.h"
|
|
|
|
SUIViewPort::SUIViewPort( bool bClearColorBuffer, bool bClearDepthBuffer )
|
|
: SViewPort( VIEWPORT_GUI, bClearColorBuffer, bClearDepthBuffer )
|
|
{
|
|
}
|
|
|
|
SUIViewPort::~SUIViewPort()
|
|
{
|
|
}
|
|
|
|
void SUIViewPort::RenderSprite()
|
|
{
|
|
if ( m_prSpriteList.size() > 0 || m_prAdditiveSpriteList.size() > 0 ||
|
|
m_prFrontSpriteList.size() > 0 || m_prFrontAdditiveSpriteList.size() > 0 )
|
|
{
|
|
if( m_nRenderFlag.IsOn(RENDER_SPRITE) )
|
|
{
|
|
|
|
START_DPCOUNT("Sprite");
|
|
m_dev->SetDepthBufferCompareMode( K3DRenderDevice::DCM_ALWAYS );
|
|
m_dev->SetDepthBufferWriteEnable( false );
|
|
|
|
K3DMatrix backupWorldMat = *m_dev->GetTransform( K3DRenderDevice::TS_WORLD );
|
|
|
|
m_dev->SetTransformIdentity( K3DRenderDevice::TS_WORLD );
|
|
|
|
if ( m_prSpriteList.size() > 0 )
|
|
{
|
|
m_dev->SetRenderState( K3DRenderDevice::RS_SPRITE_RENDERTARGET );
|
|
//m_dev->SetRenderState( K3DRenderDevice::RS_NO_MIPMAP );
|
|
drawSprite( &m_prSpriteList.front(), m_prSpriteList.size() );
|
|
}
|
|
if ( m_prAdditiveSpriteList.size() > 0 )
|
|
{
|
|
m_dev->SetRenderState( K3DRenderDevice::RS_ADDITIVE_PARTICLE );
|
|
//m_dev->SetRenderState( K3DRenderDevice::RS_NO_MIPMAP );
|
|
drawSprite( &m_prAdditiveSpriteList.front(), m_prAdditiveSpriteList.size() );
|
|
}
|
|
if ( m_prFrontSpriteList.size() > 0 )
|
|
{
|
|
m_dev->SetRenderState( K3DRenderDevice::RS_SPRITE_RENDERTARGET );
|
|
//m_dev->SetRenderState( K3DRenderDevice::RS_NO_MIPMAP );
|
|
drawSprite( &m_prFrontSpriteList.front(), m_prFrontSpriteList.size() );
|
|
}
|
|
if ( m_prFrontAdditiveSpriteList.size() > 0 )
|
|
{
|
|
m_dev->SetRenderState( K3DRenderDevice::RS_ADDITIVE_PARTICLE );
|
|
//m_dev->SetRenderState( K3DRenderDevice::RS_NO_MIPMAP );
|
|
drawSprite( &m_prFrontAdditiveSpriteList.front(), m_prFrontAdditiveSpriteList.size() );
|
|
}
|
|
|
|
END_DPCOUNT();
|
|
|
|
m_dev->SetTransform( K3DRenderDevice::TS_WORLD, &backupWorldMat );
|
|
}
|
|
}
|
|
}
|
|
|
|
// }
|
|
#endif |