Colobot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Public Member Functions | List of all members
Gfx::CGLDevice Class Reference

Implementation of CDevice interface in OpenGL. More...

#include <gldevice.h>

Inheritance diagram for Gfx::CGLDevice:
Inheritance graph
[legend]

Public Member Functions

 CGLDevice (const GLDeviceConfig &config)
 
virtual void DebugHook ()
 Provides a hook to debug graphics code (implementation-specific)
 
virtual void DebugLights ()
 Displays light positions to aid in debuggings.
 
virtual bool Create ()
 Initializes the device, setting the initial state.
 
virtual void Destroy ()
 Destroys the device, releasing every acquired resource.
 
void ConfigChanged (const GLDeviceConfig &newConfig)
 
void SetUseVbo (bool useVbo)
 
bool GetUseVbo ()
 
virtual void BeginScene ()
 Begins drawing the 3D scene.
 
virtual void EndScene ()
 Ends drawing the 3D scene.
 
virtual void Clear ()
 Clears the screen to blank.
 
virtual void SetTransform (TransformType type, const Math::Matrix &matrix)
 Sets the transform matrix of given type.
 
virtual const Math::MatrixGetTransform (TransformType type)
 Returns the current transform matrix of given type.
 
virtual void MultiplyTransform (TransformType type, const Math::Matrix &matrix)
 Multiplies the current transform matrix of given type by given matrix.
 
virtual void SetMaterial (const Material &material)
 Sets the current material.
 
virtual const MaterialGetMaterial ()
 Returns the current material.
 
virtual int GetMaxLightCount ()
 Returns the maximum number of lights available.
 
virtual void SetLight (int index, const Light &light)
 Sets the light at given index.
 
virtual const LightGetLight (int index)
 Returns the current light at given index.
 
virtual void SetLightEnabled (int index, bool enabled)
 Enables/disables the light at given index.
 
virtual bool GetLightEnabled (int index)
 Returns the current enable state of light at given index.
 
virtual Texture CreateTexture (CImage *image, const TextureCreateParams &params)
 
virtual Texture CreateTexture (ImageData *data, const TextureCreateParams &params)
 Creates a texture from raw image data; image data can be freed after that.
 
virtual void DestroyTexture (const Texture &texture)
 Deletes a given texture, freeing it from video memory.
 
virtual void DestroyAllTextures ()
 Deletes all textures created so far.
 
virtual int GetMaxTextureStageCount ()
 Returns the maximum number of multitexture stages.
 
virtual void SetTexture (int index, const Texture &texture)
 
virtual void SetTexture (int index, unsigned int textureId)
 Sets the texture image by ID at given texture stage.
 
virtual Texture GetTexture (int index)
 
virtual void SetTextureEnabled (int index, bool enabled)
 Enables/disables the given texture stage.
 
virtual bool GetTextureEnabled (int index)
 Returns the current enable state of given texture stage.
 
virtual void SetTextureStageParams (int index, const TextureStageParams &params)
 
virtual TextureStageParams GetTextureStageParams (int index)
 Returns the current params of texture stage with given index.
 
virtual void SetTextureStageWrap (int index, Gfx::TexWrapMode wrapS, Gfx::TexWrapMode wrapT)
 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))
 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))
 Renders primitive composed of vertices with multitexturing (2 textures)
 
virtual void DrawPrimitive (PrimitiveType type, const VertexCol *vertices, int vertexCount)
 Renders primitive composed of vertices with solid color.
 
virtual unsigned int CreateStaticBuffer (PrimitiveType primitiveType, const Vertex *vertices, int vertexCount)
 Creates a static buffer composed of given primitives with single texture vertices.
 
virtual unsigned int CreateStaticBuffer (PrimitiveType primitiveType, const VertexTex2 *vertices, int vertexCount)
 Creates a static buffer composed of given primitives with multitexturing.
 
virtual unsigned int CreateStaticBuffer (PrimitiveType primitiveType, const VertexCol *vertices, int vertexCount)
 Creates a static buffer composed of given primitives with solid color.
 
virtual void UpdateStaticBuffer (unsigned int bufferId, PrimitiveType primitiveType, const Vertex *vertices, int vertexCount)
 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)
 Updates the static buffer composed of given primitives with multitexturing.
 
virtual void UpdateStaticBuffer (unsigned int bufferId, PrimitiveType primitiveType, const VertexCol *vertices, int vertexCount)
 Updates the static buffer composed of given primitives with solid color.
 
virtual void DrawStaticBuffer (unsigned int bufferId)
 Draws a static buffer.
 
virtual void DestroyStaticBuffer (unsigned int bufferId)
 Deletes a static buffer.
 
virtual int ComputeSphereVisibility (const Math::Vector &center, float radius)
 
virtual void SetRenderState (RenderState state, bool enabled)
 Enables/disables the given render state.
 
virtual bool GetRenderState (RenderState state)
 Returns the current setting of given render state.
 
virtual void SetDepthTestFunc (CompFunc func)
 Sets the function of depth test.
 
virtual CompFunc GetDepthTestFunc ()
 Returns the current function of depth test.
 
virtual void SetDepthBias (float factor)
 Sets the depth bias (constant value added to Z-coords)
 
virtual float GetDepthBias ()
 Returns the current depth bias.
 
virtual void SetAlphaTestFunc (CompFunc func, float refValue)
 Sets the alpha test function and reference value.
 
virtual void GetAlphaTestFunc (CompFunc &func, float &refValue)
 Returns the current alpha test function and reference value.
 
virtual void SetBlendFunc (BlendFunc srcBlend, BlendFunc dstBlend)
 Sets the blending functions for source and destination operations.
 
virtual void GetBlendFunc (BlendFunc &srcBlend, BlendFunc &dstBlend)
 Returns the current blending functions for source and destination operations.
 
virtual void SetClearColor (const Color &color)
 Sets the clear color.
 
virtual Color GetClearColor ()
 Returns the current clear color.
 
virtual void SetGlobalAmbient (const Color &color)
 Sets the global ambient color.
 
virtual Color GetGlobalAmbient ()
 Returns the global ambient color.
 
virtual void SetFogParams (FogMode mode, const Color &color, float start, float end, float density)
 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)
 Returns the current fog parameters: mode, color, start distance, end distance and density (for exp models)
 
virtual void SetCullMode (CullMode mode)
 Sets the current cull mode.
 
virtual CullMode GetCullMode ()
 Returns the current cull mode.
 
virtual void SetShadeModel (ShadeModel model)
 Sets the shade model.
 
virtual ShadeModel GetShadeModel ()
 Returns the current shade model.
 
virtual void SetFillMode (FillMode mode)
 Sets the current fill mode.
 
virtual FillMode GetFillMode ()
 Returns the current fill mode.
 
virtual void * GetFrameBufferPixels () const
 Returns the pixels of the entire screen.
 

Detailed Description

Implementation of CDevice interface in OpenGL.

Provides the concrete implementation of 3D device in OpenGL.

This class should be initialized (by calling Initialize() ) only after setting the video mode by CApplication, once the OpenGL context is defined. Because of that, CGLDeviceConfig is outside the CDevice class and must be set in CApplication.

Member Function Documentation

int Gfx::CGLDevice::ComputeSphereVisibility ( const Math::Vector center,
float  radius 
)
virtual

Tests whether a sphere is (partially) within the frustum volume Returns a mask of frustum planes for which the test is positive

Implements Gfx::CDevice.

Texture Gfx::CGLDevice::CreateTexture ( CImage image,
const TextureCreateParams params 
)
virtual

If image is invalid, returns invalid texture. Otherwise, returns pointer to new Texture struct. This struct must not be deleted in other way than through DeleteTexture()

Implements Gfx::CDevice.

Texture Gfx::CGLDevice::GetTexture ( int  index)
virtual

Returns the previously assigned texture or invalid texture if the given stage is not enabled.

Implements Gfx::CDevice.

void Gfx::CGLDevice::SetTexture ( int  index,
const Texture texture 
)
virtual

If texture is invalid, unbinds the given texture. If valid, binds the texture and enables the given texture stage. The setting is remembered, even if texturing is disabled at the moment.

Implements Gfx::CDevice.

void Gfx::CGLDevice::SetTextureStageParams ( int  index,
const TextureStageParams params 
)
virtual

Sets the texture parameters for the given texture stage. If the given texture was not set (bound) yet, nothing happens. The settings are remembered, even if texturing is disabled at the moment.

Implements Gfx::CDevice.


The documentation for this class was generated from the following files: