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