Colobot
|
Abstract interface of graphics device. More...
#include <device.h>
Public Member Functions | |
virtual void | DebugHook ()=0 |
Provides a hook to debug graphics code (implementation-specific) | |
virtual void | DebugLights ()=0 |
Displays light positions to aid in debuggings. | |
virtual bool | Create ()=0 |
Initializes the device, setting the initial state. | |
virtual void | Destroy ()=0 |
Destroys the device, releasing every acquired resource. | |
virtual void | BeginScene ()=0 |
Begins drawing the 3D scene. | |
virtual void | EndScene ()=0 |
Ends drawing the 3D scene. | |
virtual void | Clear ()=0 |
Clears the screen to blank. | |
virtual void | SetTransform (TransformType type, const Math::Matrix &matrix)=0 |
Sets the transform matrix of given type. | |
virtual const Math::Matrix & | GetTransform (TransformType type)=0 |
Returns the current transform matrix of given type. | |
virtual void | MultiplyTransform (TransformType type, const Math::Matrix &matrix)=0 |
Multiplies the current transform matrix of given type by given matrix. | |
virtual void | SetMaterial (const Material &material)=0 |
Sets the current material. | |
virtual const Material & | GetMaterial ()=0 |
Returns the current material. | |
virtual int | GetMaxLightCount ()=0 |
Returns the maximum number of lights available. | |
virtual void | SetLight (int index, const Light &light)=0 |
Sets the light at given index. | |
virtual const Light & | GetLight (int index)=0 |
Returns the current light at given index. | |
virtual void | SetLightEnabled (int index, bool enabled)=0 |
Enables/disables the light at given index. | |
virtual bool | GetLightEnabled (int index)=0 |
Returns the current enable state of light at given index. | |
virtual Texture | CreateTexture (CImage *image, const TextureCreateParams ¶ms)=0 |
Creates a texture from image; the image can be safely removed after that. | |
virtual Texture | CreateTexture (ImageData *data, const TextureCreateParams ¶ms)=0 |
Creates a texture from raw image data; image data can be freed after that. | |
virtual void | DestroyTexture (const Texture &texture)=0 |
Deletes a given texture, freeing it from video memory. | |
virtual void | DestroyAllTextures ()=0 |
Deletes all textures created so far. | |
virtual int | GetMaxTextureStageCount ()=0 |
Returns the maximum number of multitexture stages. | |
virtual void | SetTexture (int index, const Texture &texture)=0 |
Sets the texture at given texture stage. | |
virtual void | SetTexture (int index, unsigned int textureId)=0 |
Sets the texture image by ID at given texture stage. | |
virtual Texture | GetTexture (int index)=0 |
Returns the (multi)texture at given index. | |
virtual void | SetTextureEnabled (int index, bool enabled)=0 |
Enables/disables the given texture stage. | |
virtual bool | GetTextureEnabled (int index)=0 |
Returns the current enable state of given texture stage. | |
virtual void | SetTextureStageParams (int index, const TextureStageParams ¶ms)=0 |
Sets the params for texture stage with given index. | |
virtual TextureStageParams | GetTextureStageParams (int index)=0 |
Returns the current params of texture stage with given index. | |
virtual void | SetTextureStageWrap (int index, TexWrapMode wrapS, TexWrapMode wrapT)=0 |
Sets only the texture wrap modes (for faster than thru stage params) | |
virtual void | DrawPrimitive (PrimitiveType type, const Vertex *vertices, int vertexCount, Color color=Color(1.0f, 1.0f, 1.0f, 1.0f))=0 |
Renders primitive composed of vertices with single texture. | |
virtual void | DrawPrimitive (PrimitiveType type, const VertexTex2 *vertices, int vertexCount, Color color=Color(1.0f, 1.0f, 1.0f, 1.0f))=0 |
Renders primitive composed of vertices with multitexturing (2 textures) | |
virtual void | DrawPrimitive (PrimitiveType type, const VertexCol *vertices, int vertexCount)=0 |
Renders primitive composed of vertices with solid color. | |
virtual unsigned int | CreateStaticBuffer (PrimitiveType primitiveType, const Vertex *vertices, int vertexCount)=0 |
Creates a static buffer composed of given primitives with single texture vertices. | |
virtual unsigned int | CreateStaticBuffer (PrimitiveType primitiveType, const VertexTex2 *vertices, int vertexCount)=0 |
Creates a static buffer composed of given primitives with multitexturing. | |
virtual unsigned int | CreateStaticBuffer (PrimitiveType primitiveType, const VertexCol *vertices, int vertexCount)=0 |
Creates a static buffer composed of given primitives with solid color. | |
virtual void | UpdateStaticBuffer (unsigned int bufferId, PrimitiveType primitiveType, const Vertex *vertices, int vertexCount)=0 |
Updates the static buffer composed of given primitives with single texture vertices. | |
virtual void | UpdateStaticBuffer (unsigned int bufferId, PrimitiveType primitiveType, const VertexTex2 *vertices, int vertexCount)=0 |
Updates the static buffer composed of given primitives with multitexturing. | |
virtual void | UpdateStaticBuffer (unsigned int bufferId, PrimitiveType primitiveType, const VertexCol *vertices, int vertexCount)=0 |
Updates the static buffer composed of given primitives with solid color. | |
virtual void | DrawStaticBuffer (unsigned int bufferId)=0 |
Draws a static buffer. | |
virtual void | DestroyStaticBuffer (unsigned int bufferId)=0 |
Deletes a static buffer. | |
virtual int | ComputeSphereVisibility (const Math::Vector ¢er, float radius)=0 |
virtual void | SetRenderState (RenderState state, bool enabled)=0 |
Enables/disables the given render state. | |
virtual bool | GetRenderState (RenderState state)=0 |
Returns the current setting of given render state. | |
virtual void | SetDepthTestFunc (CompFunc func)=0 |
Sets the function of depth test. | |
virtual CompFunc | GetDepthTestFunc ()=0 |
Returns the current function of depth test. | |
virtual void | SetDepthBias (float factor)=0 |
Sets the depth bias (constant value added to Z-coords) | |
virtual float | GetDepthBias ()=0 |
Returns the current depth bias. | |
virtual void | SetAlphaTestFunc (CompFunc func, float refValue)=0 |
Sets the alpha test function and reference value. | |
virtual void | GetAlphaTestFunc (CompFunc &func, float &refValue)=0 |
Returns the current alpha test function and reference value. | |
virtual void | SetBlendFunc (BlendFunc srcBlend, BlendFunc dstBlend)=0 |
Sets the blending functions for source and destination operations. | |
virtual void | GetBlendFunc (BlendFunc &srcBlend, BlendFunc &dstBlend)=0 |
Returns the current blending functions for source and destination operations. | |
virtual void | SetClearColor (const Color &color)=0 |
Sets the clear color. | |
virtual Color | GetClearColor ()=0 |
Returns the current clear color. | |
virtual void | SetGlobalAmbient (const Color &color)=0 |
Sets the global ambient color. | |
virtual Color | GetGlobalAmbient ()=0 |
Returns the global ambient color. | |
virtual void | SetFogParams (FogMode mode, const Color &color, float start, float end, float density)=0 |
Sets the fog parameters: mode, color, start distance, end distance and density (for exp models) | |
virtual void | GetFogParams (FogMode &mode, Color &color, float &start, float &end, float &density)=0 |
Returns the current fog parameters: mode, color, start distance, end distance and density (for exp models) | |
virtual void | SetCullMode (CullMode mode)=0 |
Sets the current cull mode. | |
virtual CullMode | GetCullMode ()=0 |
Returns the current cull mode. | |
virtual void | SetShadeModel (ShadeModel model)=0 |
Sets the shade model. | |
virtual ShadeModel | GetShadeModel ()=0 |
Returns the current shade model. | |
virtual void | SetFillMode (FillMode mode)=0 |
Sets the current fill mode. | |
virtual FillMode | GetFillMode ()=0 |
Returns the current fill mode. | |
virtual void * | GetFrameBufferPixels () const =0 |
Returns the pixels of the entire screen. |
Abstract interface of graphics device.
It is based on DIRECT3DDEVICE class from DirectX to make it easier to port existing code. It encapsulates the general graphics device state and provides a common interface to graphics-specific functions which will be used throughout the program, both in CEngine class and in UI classes. Note that it doesn't contain all functions from DirectX, only those that were used in old code.
|
pure virtual |
Tests whether a sphere is (partially) within the frustum volume Returns a mask of frustum planes for which the test is positive
Implemented in Gfx::CGLDevice.