77 lines
2.6 KiB
C
77 lines
2.6 KiB
C
|
|
/// 2011.01.18 - prodongi
|
|
#ifndef _KPrimitiveSpriteScroll_h_
|
|
#define _KPrimitiveSpriteScroll_h_
|
|
|
|
struct sSpritePrimitiveScrollType;
|
|
|
|
struct sSpritePrimitiveScroll
|
|
{
|
|
struct sUv { float u, v; };
|
|
|
|
sSpritePrimitiveScroll() : m_type(0), m_is(false) {}
|
|
~sSpritePrimitiveScroll();
|
|
void initialize(bool is, unsigned int type, float v, float margin, void const* vertList);
|
|
void setOriVert(void const* vertList);
|
|
void update(void* vertList);
|
|
void setTextureAddressMode(class K3DRenderDevice *dev);
|
|
void restoreTextureAddressMode(class K3DRenderDevice *dev);
|
|
void createType(unsigned int type);
|
|
void setImgUv(float u, float v);
|
|
|
|
bool m_is;
|
|
sUv m_uvOri[4];
|
|
sUv m_offset;
|
|
sUv m_imgUv; /// 실제 이미지의 uv (넓이 값이다)
|
|
float m_v;
|
|
float m_margin;
|
|
unsigned int m_oldTime;
|
|
unsigned long m_oldAddressModeU;
|
|
unsigned long m_oldAddressModeV;
|
|
unsigned long m_oldBorderColor;
|
|
sSpritePrimitiveScrollType* m_type;
|
|
};
|
|
|
|
|
|
struct sSpritePrimitiveScrollType
|
|
{
|
|
enum { LEFT, RIGHT, UP, DOWN };
|
|
|
|
sSpritePrimitiveScrollType() : m_initOffset(true), m_bEnd(false) {} // 2011.03.23 - servantes / m_bEnd 추가
|
|
virtual void update(sSpritePrimitiveScroll* /*scroll*/, void* /*vertList*/, float /*s*/) = 0;
|
|
virtual void checkEnd(sSpritePrimitiveScroll* /*scroll*/, void* /*vertList*/) = 0;
|
|
virtual void initOffset(sSpritePrimitiveScroll* /*scroll*/) = 0;
|
|
void updateVertList(sSpritePrimitiveScroll* scroll, void* vertList);
|
|
void checkInitOffset(sSpritePrimitiveScroll* scroll);
|
|
|
|
bool m_initOffset;
|
|
bool m_bEnd; // 2011.03.23 - servantes
|
|
};
|
|
struct sSpritePrimitiveScrollLeft : public sSpritePrimitiveScrollType
|
|
{
|
|
virtual void update(sSpritePrimitiveScroll* scroll, void* vertList, float s);
|
|
virtual void checkEnd(sSpritePrimitiveScroll* scroll, void* vertList);
|
|
virtual void initOffset(sSpritePrimitiveScroll* scroll);
|
|
};
|
|
struct sSpritePrimitiveScrollRight : public sSpritePrimitiveScrollType
|
|
{
|
|
virtual void update(sSpritePrimitiveScroll* scroll, void* vertList, float s);
|
|
virtual void checkEnd(sSpritePrimitiveScroll* scroll, void* vertList);
|
|
virtual void initOffset(sSpritePrimitiveScroll* scroll);
|
|
};
|
|
struct sSpritePrimitiveScrollUp : public sSpritePrimitiveScrollType
|
|
{
|
|
virtual void update(sSpritePrimitiveScroll* scroll, void* vertList, float s);
|
|
virtual void checkEnd(sSpritePrimitiveScroll* scroll, void* vertList);
|
|
virtual void initOffset(sSpritePrimitiveScroll* scroll);
|
|
};
|
|
struct sSpritePrimitiveScrollDown : public sSpritePrimitiveScrollType
|
|
{
|
|
virtual void update(sSpritePrimitiveScroll* scroll, void* vertList, float s);
|
|
virtual void checkEnd(sSpritePrimitiveScroll* scroll, void* vertList);
|
|
virtual void initOffset(sSpritePrimitiveScroll* scroll);
|
|
};
|
|
|
|
|
|
#endif
|