/// 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