1 /*! 2 @file 3 @author Albert Semenov 4 @date 04/2009 5 */ 6 7 #ifndef MYGUI_OGRE_VERTEX_BUFFER_H_ 8 #define MYGUI_OGRE_VERTEX_BUFFER_H_ 9 10 #include "MyGUI_Prerequest.h" 11 #include "MyGUI_IVertexBuffer.h" 12 13 #include <OgreHardwareBufferManager.h> 14 #include <OgreHardwareVertexBuffer.h> 15 #include <OgrePrerequisites.h> 16 #include <OgreRenderOperation.h> 17 #include <OgreRenderSystem.h> 18 #include <OgreTextureManager.h> 19 #include <OgreTextureUnitState.h> 20 21 #include "MyGUI_LastHeader.h" 22 23 namespace MyGUI 24 { 25 26 class OgreVertexBuffer : 27 public IVertexBuffer 28 { 29 public: 30 OgreVertexBuffer(); 31 ~OgreVertexBuffer() override; 32 33 void setVertexCount(size_t _count) override; 34 size_t getVertexCount() override; 35 36 Vertex* lock() override; 37 void unlock() override; 38 getRenderOperation()39 Ogre::RenderOperation* getRenderOperation() 40 { 41 return &mRenderOperation; 42 } 43 44 private: 45 void create(); 46 void destroy(); 47 void resize(); 48 49 private: 50 size_t mVertexCount; 51 size_t mNeedVertexCount; 52 53 Ogre::RenderOperation mRenderOperation; 54 Ogre::HardwareVertexBufferSharedPtr mVertexBuffer; 55 }; 56 57 } // namespace MyGUI 58 59 #endif // MYGUI_OGRE_VERTEX_BUFFER_H_ 60