//------------------------------------------------------------------------------ //! created : 2010/04/19 //! author : by i4u4me //! remark : 2D ½ºÇÁ¶óÀÌÆ®¸¦ ÅØ½ºÃÄ ´ÜÀ§·Î ¸ô¾Æ¼­ ·£´õ¸µ //! »ç¿ë¹æ¹ý : 2d ·£µå¸µÀ» Çϱâ À§ÇÑ ±âº»¼ÂÆÃÀºµÇ¾î ÀÖ¾î¾ß ÇÔ //! Render()¿¡¼­ ·£´õ¸µÇÒ ½ºÇÁ¶óÀÌÆ®¸¦ ¹öÇÁ¿¡ ³Ö°í //! Flush() ÇÔ¼ö¿¡¼­ ½ÇÁ¦·Î ±×¸² //! ¿¹ : // CDrawBase::Set2DMode(TRUE); // CDrawBase::SetZBufferWrite( FALSE ); // CDrawBase::SetZBufferTest( FALSE ); // CDrawBase::SetAlphaBlendMode(AB_ALPHA); // CElementRender::Render() // CElementRender::Flush() // //!¹é¾÷µÇ¾úµç renderstate restore // CDrawBase::EndRender() //------------------------------------------------------------------------------ #pragma once #include "typedef.h" #include #include #include class CDrawBase; //------------------------------------------------------------------------------ class CElementRender { public: CElementRender(void); ~CElementRender(void); void Cleanup(); void Init(CDrawBase* renderer, int vertex_count); bool is_init() { return (vertices_count_ > 0); } virtual void Render(HANDLE texture_handle, const St_FRect& texture_rect, const St_FRect& target_rect, WzColor& color); virtual void Flush(); int vertices_count() const { return vertices_count_; } void set_vertices_count(int& val) { vertices_count_ = val; } int current_write_no() const { return current_write_no_; } void current_write_no_up() { ++current_write_no_; } void set_current_write_no(int val) { current_write_no_ = val; } HANDLE current_texture_handle() const { return current_texture_handle_; } void set_current_texture_handle(HANDLE val) { current_texture_handle_ = val; } private: CDrawBase* renderer_; HANDLE current_texture_handle_; int current_write_no_; int vertices_count_; BYTE* vertices_buffer_; //! (sizeof(WzVector) + sizeof(WzUVVert) + sizeof(WzColor)) * vertices_count_ };