00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "OgreOpenCL.h"
00024
00025 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
00026
00027 #include <OgreD3D10RenderSystem.h>
00028 #include <OgreD3D10Texture.h>
00029 #include <OgreD3D10HardwareVertexBuffer.h>
00030
00031 namespace Ogre
00032 {
00033 namespace OpenCL
00034 {
00035 class D3D10Root : public Root
00036 {
00037 public:
00038 D3D10Root(Ogre::RenderWindow* renderWindow, Ogre::RenderSystem* renderSystem);
00039 virtual bool init();
00040
00041 protected:
00042 ID3D10Device* mDevice;
00043 Ogre::GPUVendor mGPUVendor;
00044 };
00045
00046 class D3D10VertexBuffer : public VertexBuffer
00047 {
00048 public:
00049 D3D10VertexBuffer(Root* root, Ogre::HardwareVertexBufferSharedPtr vertexBuffer);
00050
00051 virtual bool registerForCL();
00052 void* getPointer();
00053
00054 virtual bool map();
00055 virtual bool unmap();
00056 };
00057
00058 class D3D10VertexBufferManager : public VertexBufferManager
00059 {
00060 public:
00061 D3D10VertexBufferManager(Root* root);
00062
00063 virtual VertexBuffer* createVertexBuffer(Ogre::HardwareVertexBufferSharedPtr vertexBuffer);
00064 virtual void destroyVertexBuffer(VertexBuffer* vertexBuffer);
00065 };
00066 }
00067 }
00068
00069 #endif //if OGRE_PLATFORM == OGRE_PLATFORM_WIN32