106 lines
2.4 KiB
C++
106 lines
2.4 KiB
C++
#pragma once
|
|
|
|
#include "SGameScene.h"
|
|
#include "KResource.h"
|
|
#include "KPrimitiveSprite.h"
|
|
#include <kfile/TrfMetaData.h>
|
|
|
|
class QJTVObj;
|
|
|
|
namespace rp {
|
|
|
|
/// QJTV 씬
|
|
class SGameQjtvScene : public SGameScene
|
|
{
|
|
public:
|
|
|
|
/// QJTV 씬 옵션
|
|
enum OPTION {
|
|
FULL = 1 << 0, ///< 풀스크린
|
|
CENTER = 1 << 1, ///< 렌더 타겟 중앙에 위치
|
|
SCREENCENTER = 1 << 2, ///< 화면 중앙에 위치
|
|
ALPHA = 1 << 3, ///< 알파값 사용
|
|
REPEAT = 1 << 4, ///< 반복 재생
|
|
};
|
|
|
|
/// 생성자
|
|
SGameQjtvScene(
|
|
SGameSceneManager& sceneMgr
|
|
, SGameScene* parent
|
|
, const char* sceneName
|
|
, const char* jtvFile
|
|
, const char* soundFile
|
|
, const K3DVector& position = K3DVector( 0.f, 0.f, 0.1f )
|
|
, const KColor& bgColor = KColor( 0xff000000 )
|
|
, DWORD option = CENTER | ALPHA | REPEAT
|
|
, int fixedFps = 24
|
|
, bool registerSelf = true
|
|
, KViewportObject* viewport = 0
|
|
, const K3DVector2& size = K3DVector2(-1.f, -1.f) );
|
|
|
|
/// 소멸자
|
|
virtual ~SGameQjtvScene();
|
|
|
|
/// 씬 등록 콜백
|
|
virtual void onEnter();
|
|
|
|
/// 씬 해제 콜백
|
|
virtual void onLeave();
|
|
|
|
/// 씬 활성화 콜백
|
|
virtual void onActivate();
|
|
|
|
/// 씬 비활성화 콜백
|
|
virtual void onDeactivate();
|
|
|
|
/// 씬 틱 콜백
|
|
virtual void onTick();
|
|
|
|
/// 신 렌더 콜백
|
|
virtual void onRender( KViewportObject* viewport );
|
|
|
|
/// QJTV 렌더타겟 텍스쳐 획득
|
|
K3DTexture* getRenderTarget() { return mRenderTarget; }
|
|
|
|
/// 이미지 폭 획득
|
|
int getWidth() const { return mImageWidth; }
|
|
|
|
/// 이미지 높이 획득
|
|
int getHeight() const { return mImageHeight; }
|
|
|
|
/// 그려질 이미지 준비 여부 확인
|
|
bool isImageReady() const { return mIsImageReady; }
|
|
|
|
/// 플레이 여부 설정
|
|
void play( bool play = true );
|
|
|
|
protected:
|
|
|
|
std::string mQjtvFile;
|
|
std::string mSoundFile;
|
|
QJTVObj* mQjtv;
|
|
trf::MetaData mQjtvTml;
|
|
unsigned int mFrame;
|
|
int mImageWidth;
|
|
int mImageHeight;
|
|
DWORD mRefreshTime;
|
|
DWORD mBeginTime;
|
|
KColor mBgColor;
|
|
DWORD mOption;
|
|
int mFixedFps;
|
|
bool mIsImageReady;
|
|
bool mIsPlaying;
|
|
bool mRegisterSelf;
|
|
K3DVector mPosition;
|
|
K3DVector2 mSize;
|
|
K3DMatrix mWorld;
|
|
K3DTextureSPtr mRenderTarget;
|
|
KResSpriteSPtr mSprite;
|
|
KSpritePrimitive mPrimitive;
|
|
KViewportObject* mViewport;
|
|
|
|
bool _needToFillRenderTarget() const;
|
|
bool _fillRenderTarget( K3DTexture* texture, BYTE* image, int width, int height );
|
|
};
|
|
|
|
} |