00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #pragma once
00024
00025 #include "OgreCuda.h"
00026
00027 #include <OgreGLRenderSystem.h>
00028 #include <OgreGLTexture.h>
00029 #include <OgreGLHardwareVertexBuffer.h>
00030
00031 namespace Ogre
00032 {
00033 namespace Cuda
00034 {
00035 class GLRoot : public Root
00036 {
00037 public:
00038 GLRoot(Ogre::RenderWindow* renderWindow);
00039 virtual void init();
00040
00041 protected:
00042 int mDevice;
00043 };
00044
00045 class GLTexture : public Texture
00046 {
00047 public:
00048 GLTexture(Ogre::TexturePtr& texture);
00049
00050 virtual void registerForCudaUse();
00051
00052 protected:
00053 GLuint mGLTextureId;
00054 };
00055
00056 class GLVertexBuffer : public VertexBuffer
00057 {
00058 public:
00059 GLVertexBuffer(Ogre::HardwareVertexBufferSharedPtr vertexBuffer);
00060 virtual void registerForCudaUse();
00061
00062 protected:
00063 GLuint mGLVertexBufferId;
00064 };
00065
00066 class GLTextureManager : public TextureManager
00067 {
00068 public:
00069 virtual Texture* createTexture(Ogre::TexturePtr texture);
00070 virtual void destroyTexture(Texture* texture);
00071 };
00072
00073 class GLVertexBufferManager : public VertexBufferManager
00074 {
00075 public:
00076 virtual VertexBuffer* createVertexBuffer(Ogre::HardwareVertexBufferSharedPtr vertexBuffer);
00077 virtual void destroyVertexBuffer(VertexBuffer* vertexBuffer);
00078 };
00079 }
00080 }