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 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
00028
00029 #include <OgreD3D10RenderSystem.h>
00030 #include <OgreD3D10Texture.h>
00031 #include <OgreD3D10HardwareVertexBuffer.h>
00032
00033 namespace Ogre
00034 {
00035 namespace Cuda
00036 {
00037 class D3D10Root : public Root
00038 {
00039 public:
00040 D3D10Root(Ogre::RenderWindow* renderWindow);
00041 virtual void init();
00042
00043 protected:
00044 ID3D10Device* mDevice;
00045 };
00046
00047 class D3D10Texture : public Texture
00048 {
00049 public:
00050 D3D10Texture(Ogre::TexturePtr& texture);
00051
00052 virtual void registerForCudaUse();
00053
00054 protected:
00055 ID3D10Resource* mD3D10Texture;
00056 };
00057
00058 class D3D10VertexBuffer : public VertexBuffer
00059 {
00060 public:
00061 D3D10VertexBuffer(Ogre::HardwareVertexBufferSharedPtr vertexBuffer);
00062 virtual void registerForCudaUse();
00063
00064 protected:
00065 ID3D10Buffer* mD3D10VertexBuffer;
00066 };
00067
00068 class D3D10TextureManager : public TextureManager
00069 {
00070 public:
00071 virtual Texture* createTexture(Ogre::TexturePtr texture);
00072 virtual void destroyTexture(Texture* texture);
00073 };
00074
00075 class D3D10VertexBufferManager : public VertexBufferManager
00076 {
00077 public:
00078 virtual VertexBuffer* createVertexBuffer(Ogre::HardwareVertexBufferSharedPtr vertexBuffer);
00079 virtual void destroyVertexBuffer(VertexBuffer* vertexBuffer);
00080 };
00081 }
00082 }
00083
00084 #endif //if OGRE_PLATFORM == OGRE_PLATFORM_WIN32