18 #ifndef __H__OCULAR_GRAPHICS_DRIVER__H__
19 #define __H__OCULAR_GRAPHICS_DRIVER__H__
21 #include "Graphics/Texture/RenderTexture.hpp"
22 #include "Graphics/Texture/DepthTexture.hpp"
24 #include "Graphics/Shader/VertexShader.hpp"
25 #include "Graphics/Shader/GeometryShader.hpp"
26 #include "Graphics/Shader/FragmentShader.hpp"
27 #include "Graphics/Shader/PreTessellationShader.hpp"
28 #include "Graphics/Shader/PostTessellationShader.hpp"
29 #include "Graphics/Shader/Buffer/GPUBuffer.hpp"
31 #include "Graphics/RenderState/RenderState.hpp"
33 #include "Graphics/Material/Material.hpp"
34 #include "Graphics/Mesh/Mesh.hpp"
35 #include "Graphics/Viewport.hpp"
37 #include "Graphics/FrameStats.hpp"
38 #include "Graphics/DebugGraphics/DebugGraphics.hpp"
40 #include "Scene/SceneObject.hpp"
136 virtual Viewport* createViewport(
float x,
float y,
float width,
float height,
float minDepth = 0.0f,
float maxDepth = 1.0f)
const;
virtual Material * createMaterial() const
Definition: GraphicsDriver.cpp:89
virtual FragmentShader * createFragmentShader() const
Definition: GraphicsDriver.cpp:163
Definition: VertexBuffer.hpp:78
virtual VertexBuffer * createVertexBuffer() const
Definition: GraphicsDriver.cpp:192
virtual void clearBuffers(Core::Color const &clearColor=Core::Color::DefaultClearGray())
Definition: GraphicsDriver.cpp:54
Definition: Texture2D.hpp:45
Definition: FragmentShader.hpp:40
Definition: VertexShader.hpp:40
virtual void drawDebugCircle(Math::Vector3f const ¢er, float radius, Math::Vector3f const &normal, Core::Color const &color, uint32_t segments=64, uint64_t lifetime=30000)
Definition: GraphicsDriver.cpp:211
A special texture that stores high precision depth information for each pixel.
Definition: DepthTexture.hpp:41
virtual bool initialize()
Definition: GraphicsDriver.cpp:49
A special texture that can be rendered directly to.
Definition: RenderTexture.hpp:41
virtual void setDepthTexture(DepthTexture *texture)
Definition: GraphicsDriver.cpp:84
virtual VertexShader * createVertexShader() const
Definition: GraphicsDriver.cpp:153
FrameStats getLastFrameStats() const
Definition: GraphicsDriver.cpp:247
virtual GeometryShader * createGeometryShader() const
Definition: GraphicsDriver.cpp:158
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
Definition: PreTessellationShader.hpp:40
virtual DepthTexture * createDepthTexture(TextureDescriptor const &descriptor) const
Definition: GraphicsDriver.cpp:139
virtual void swapBuffers()
Definition: GraphicsDriver.cpp:69
virtual bool renderBounds(Core::SceneObject *object, Math::BoundsType type)
Definition: GraphicsDriver.cpp:230
Combination of a VertexBuffer and IndexBuffer.
Definition: Mesh.hpp:49
Definition: RenderState.hpp:42
Definition: TextureDescriptor.hpp:45
Draws debug graphics such as lines, points, bounding volumes, axis, etc.
Definition: DebugGraphics.hpp:61
virtual void drawDebugLine(Math::Vector3f const &start, Math::Vector3f const &stop, Core::Color const &color, uint64_t lifetime=30000)
Definition: GraphicsDriver.cpp:206
void addDrawCall(uint32_t numIndices)
Definition: GraphicsDriver.cpp:256
static Color const & DefaultClearGray()
Definition: Color.cpp:173
virtual PostTessellationShader * createPostTessellationShader() const
Definition: GraphicsDriver.cpp:173
virtual void clearDepthBuffer(float value=1.0f)
Definition: GraphicsDriver.cpp:59
virtual GPUBuffer * createGPUBuffer(GPUBufferDescriptor const &descriptor) const
Definition: GraphicsDriver.cpp:197
A generic buffer that can be uploaded to the GPU.
Definition: GPUBuffer.hpp:81
Definition: SceneObject.hpp:93
virtual RenderTexture * createRenderTexture(TextureDescriptor const &descriptor) const
Definition: GraphicsDriver.cpp:134
Definition: GPUBuffer.hpp:62
virtual IndexBuffer * createIndexBuffer() const
Definition: GraphicsDriver.cpp:187
virtual uint32_t getMaxBoundTextures() const
Definition: GraphicsDriver.cpp:144
Definition: IndexBuffer.hpp:77
Definition: PostTessellationShader.hpp:40
void clearFrameStats()
Definition: GraphicsDriver.cpp:239
virtual void clearStencilBuffer(uint32_t value=0)
Definition: GraphicsDriver.cpp:64
Definition: FrameStats.hpp:37
Definition: Viewport.hpp:40
virtual void setRenderTexture(RenderTexture *texture)
Definition: GraphicsDriver.cpp:79
virtual Texture * createTexture(TextureDescriptor const &descriptor) const
Definition: GraphicsDriver.cpp:103
virtual bool renderMesh(Mesh *mesh, uint32_t submesh=0)
Definition: GraphicsDriver.cpp:225
virtual PreTessellationShader * createPreTessellationShader() const
Definition: GraphicsDriver.cpp:168
virtual Texture2D * createTexture2D(TextureDescriptor const &descriptor) const
Definition: GraphicsDriver.cpp:129
virtual RenderState * getRenderState()
Definition: GraphicsDriver.cpp:74
Definition: GeometryShader.hpp:40
virtual void renderDebug()
Definition: GraphicsDriver.cpp:216
Definition: Material.hpp:62
Base class for all texture objects.
Definition: Texture.hpp:45
virtual UniformBuffer * createUniformBuffer(UniformBufferType type) const
Definition: GraphicsDriver.cpp:178
Definition: GraphicsDriver.hpp:59