#include "stdafx.h" // sonador #2.1.2.10 중화권 로그인/로고 화면 갱신 #include "SGameImageScene.h" #include "SGameSceneManager.h" #include #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); }