130 lines
2.6 KiB
C++
130 lines
2.6 KiB
C++
#include "stdafx.h"
|
|
// sonador #2.1.2.10 중화권 로그인/로고 화면 갱신
|
|
#include "SGameImageScene.h"
|
|
#include "SGameSceneManager.h"
|
|
#include <kfile/KFileManager.h>
|
|
#include "KDeviceManager.h"
|
|
#include "KViewport.h"
|
|
#include "SGameMilesSoundMgr.h"
|
|
#include "KResourceManager.h"
|
|
#include "KUIWndManager.h"
|
|
|
|
using namespace rp;
|
|
|
|
SGameImageScene::SGameImageScene(
|
|
SGameSceneManager& sceneMgr
|
|
, SGameScene* parent
|
|
, const char* sceneName
|
|
, const char* imageFile
|
|
, const K3DVector& position
|
|
, bool registerSelf
|
|
, KViewportObject* viewport
|
|
, const K3DVector2& size
|
|
, const K3DVector2& scale)
|
|
: SGameScene ( sceneMgr, parent, sceneName )
|
|
, mImageFile ( imageFile )
|
|
, mPosition ( position )
|
|
, mRegisterSelf ( registerSelf )
|
|
, mViewport ( viewport )
|
|
, mSize ( size )
|
|
, mScale ( scale )
|
|
{
|
|
}
|
|
|
|
SGameImageScene::~SGameImageScene()
|
|
{
|
|
}
|
|
|
|
void SGameImageScene::onEnter()
|
|
{
|
|
if( mImageFile.size() == 0 )
|
|
return;
|
|
|
|
NX3LoadPack loadpack;
|
|
loadpack.Init();
|
|
mTexture = mSceneMgr.textureMgr().GetTexture( mImageFile.c_str(), &loadpack, true, 0 );
|
|
assert( mTexture && "image scene's texture was not loaded!!" );
|
|
if( mTexture == 0 )
|
|
{
|
|
//mImageFile
|
|
std::string errmsg = "image scene's texture was not loaded!! - ";
|
|
errmsg += mImageFile;
|
|
MessageBox(NULL, errmsg.c_str(),"error", MB_OK);
|
|
return;
|
|
}
|
|
|
|
K3DMatrix worldMatrix;
|
|
K3DMatrixIdentity( worldMatrix );
|
|
worldMatrix.SetPosVector( mPosition );
|
|
|
|
mSprite = new KResSprite();
|
|
mSprite->SetTexture( mTexture, NULL );
|
|
mSprite->SetTransform( worldMatrix );
|
|
if(mSize.x > 0)
|
|
mSprite->SetSize( mSize.x, mSprite->GetSizeY() );
|
|
if(mSize.y > 0)
|
|
mSprite->SetSize( mSprite->GetSizeX(), mSize.y );
|
|
|
|
mSprite->SetSize( mScale.x * mSprite->GetSizeX(), mScale.y * mSprite->GetSizeY() );
|
|
|
|
mPrimitive.SetRes( mSprite );
|
|
}
|
|
|
|
void SGameImageScene::onLeave()
|
|
{
|
|
mTexture = 0;
|
|
mSprite = 0;
|
|
mPrimitive.SetRes( 0 );
|
|
}
|
|
|
|
void SGameImageScene::onActivate()
|
|
{
|
|
}
|
|
|
|
void SGameImageScene::onDeactivate()
|
|
{
|
|
}
|
|
|
|
void SGameImageScene::onTick()
|
|
{
|
|
SGameScene::onTick();
|
|
|
|
updateVisibility();
|
|
|
|
mPrimitive.SetVisibility( getWorldVisibility() );
|
|
}
|
|
|
|
void SGameImageScene::onRender( KViewportObject* viewport )
|
|
{
|
|
if( mRegisterSelf && mTexture )
|
|
{
|
|
if( mViewport )
|
|
mViewport->Register( &mPrimitive );
|
|
else
|
|
viewport->Register( &mPrimitive );
|
|
}
|
|
}
|
|
|
|
int SGameImageScene::getWidth() const
|
|
{
|
|
if( mTexture )
|
|
return mTexture->GetWidth();
|
|
return 0;
|
|
}
|
|
|
|
int SGameImageScene::getHeight() const
|
|
{
|
|
if( mTexture )
|
|
return mTexture->GetHeight();
|
|
return 0;
|
|
}
|
|
|
|
bool SGameImageScene::isImageReady() const
|
|
{
|
|
return mTexture;
|
|
}
|
|
|
|
void SGameImageScene::SetAdditiveRenderMode(bool useAdditive)
|
|
{
|
|
mPrimitive.SetAdditiveRenderMode(useAdditive);
|
|
} |