| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

# Common Plugin Classes

## Files
file | cursorconvert.h
| Convert images into data formats suitable for native mouse cursor creation.

## Namespaces
namespace | CS
namespace | CS
namespace | CS
namespace | CS
namespace | CS
## Classes
class | csBaseRenderStepLoader
| Base class for render step loaders. More...
class | csBaseRenderStepType
| Base class for render step loaders. More...
class | csCommonImageFile
| A base class for image loader plugin iImage implementations. More...
class | csCommonImageFileLoader
| Base image loader implementation. More...
class | csCursorConverter
| Helper class to convert images into data formats suitable for mouse cursor creation on various platforms and toolkits. More...
class | csDirectXError
| Obtain symbols and descriptions for DirectX error codes. More...
class | csFontCache
| A cache for font glyphs. More...
class | csG2DDrawBox< Tpixel, Tpixmixer >
| Draw a box to a (software) canvas. More...
class | csG2DDrawLine< Tpixel, Tpixmixer >
| Class to draw a line. More...
class | csG2DDrawText< Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 >
| Class to write some text. More...
class | csGLDriverDatabase
| OpenGL driver database. More...
class | csGLFontCache
| OpenGL font cache. More...
class | csGLScreenShot
| OpenGL screen shot. More...
class | csGLStateCache
| OpenGL state cache. More...
class | csGLStateCacheContext
class | csGraphics2D
| This is the base class for 2D canvases. More...
class | csGraphics2DGLCommon
| Basic OpenGL version of the 2D driver class. More...
class | csImageLoaderOptionsParser
| Helper class to parse options strings passed to iImageIO::Save(). More...
class | csNewtonianParticleSystem
| This class has a set of particles that behave with phsyics. More...
class | csParticleSystem
| This class represents a particle system. More...
class | csPixMixerCopy< Tpixel >
| PixMixer that ignores alpha. More...
class | csPixMixerNoop< Tpixel >
| PixMixer that doesn't do anything. More...
class | csPixMixerRGBA< Tpixel >
| PixMixer that mixes the pixel into the background with alpha. More...
class | csRenderStepParser
| Parser for render steps and render step lists. More...
class | csScreenShot
| Simple iImage implementation for canvas screenshots. More...
class | csShaderProgram
| Base class for iShaderProgram plugins. More...
struct | csShaderVarMapping
| Mapping of a shader variable to some shader-specific destination. More...
class | csSoftFontCache
| Font cache base class for software canvases. More...
class | csSoftFontCacheImpl< Tpixel, Tpixmixer >
| An actual implementation of a font cache for software canvases. More...
class | csWin32CustomCursors
| Class to create native Win32 mouse cursors from images. More...
class | DirectDetection
| Master class of the device detection of direct3d and directdraw. More...
class | DirectDetectionDevice
| Description of DirectDraw device. More...
struct | iImageFileLoader
| An image file loader. More...
struct | iShaderDestinationResolver
| Interface to allow resolution of friendly destination names. More...
struct | iShaderProgram
| A helper for shaders that which to use the general plugins. More...
struct | iShaderProgramPlugin
| Plugins which provide iShaderProgram should implement this as a factory for iShaderProgram. More...
## Defines
#define | CS_GL_MAX_LAYER 16
| Maximum number of texture coord sets resp.
#define | CS_SOFT3D_BUFFERFLAG(x) (1 << CS_SOFT3D_VA_BUFINDEX(x))
| Helper macro to obtain a software renderer buffer mask flag for a vertex attribute.
#define | CS_SOFT3D_VA_BUFINDEX(x)
| Helper macro to obtain a software renderer buffer index for a vertex attribute.
#define | DECLARE_CACHED_BOOL(name) bool enabled_##name;
#define | DECLARE_CACHED_BOOL_CURRENTLAYER(name) bool enabled_##name[CS_GL_MAX_LAYER];
#define | DECLARE_CACHED_CLIENT_STATE(name) bool enabled_##name;
#define | DECLARE_CACHED_CLIENT_STATE_LAYER(name) bool enabled_##name[CS_GL_MAX_LAYER];
#define | DECLARE_CACHED_PARAMETER_1(func, name, type1, param1) type1 parameter_##param1;
#define | DECLARE_CACHED_PARAMETER_1_LAYER(func, name, type1, param1) type1 parameter_##param1[CS_GL_MAX_LAYER];
#define | DECLARE_CACHED_PARAMETER_2(func, name, type1, param1, type2, param2)
#define | DECLARE_CACHED_PARAMETER_2_LAYER(func, name, type1, param1, type2, param2)
#define | DECLARE_CACHED_PARAMETER_3(func, name, type1, param1, type2, param2, type3, param3)
#define | DECLARE_CACHED_PARAMETER_3_LAYER(func, name, type1, param1, type2, param2, type3, param3)
#define | DECLARE_CACHED_PARAMETER_4(func, name, type1, param1, type2, param2, type3, param3, type4, param4)
#define | DECLARE_CACHED_PARAMETER_4_LAYER(func, name, type1, param1,type2, param2, type3, param3, type4, param4)
#define | FORCE_STATE_CHANGE false
#define | GLYPH_INDEX_LOWER_COUNT 512
#define | GLYPH_INDEX_LOWER_MASK 0x1ff
#define | GLYPH_INDEX_UPPER_SHIFT 9
#define | IMPLEMENT_CACHED_BOOL(name)
#define | IMPLEMENT_CACHED_BOOL_CURRENTLAYER(name)
#define | IMPLEMENT_CACHED_CLIENT_STATE(name)
#define | IMPLEMENT_CACHED_CLIENT_STATE_LAYER(name)
#define | IMPLEMENT_CACHED_PARAMETER_1(func, name, type1, param1)
#define | IMPLEMENT_CACHED_PARAMETER_1_LAYER(func, name, type1, param1)
#define | IMPLEMENT_CACHED_PARAMETER_2(func, name, type1, param1, type2, param2)
#define | IMPLEMENT_CACHED_PARAMETER_2_LAYER(func, name, type1, param1, type2, param2)
#define | IMPLEMENT_CACHED_PARAMETER_3(func, name, type1, param1, type2, param2, type3, param3)
#define | IMPLEMENT_CACHED_PARAMETER_3_LAYER(func, name, type1, param1, type2, param2, type3, param3)
#define | IMPLEMENT_CACHED_PARAMETER_4(func, name, type1, param1, type2, param2, type3, param3, type4, param4)
#define | IMPLEMENT_CACHED_PARAMETER_4_LAYER(func, name, type1, param1,type2, param2, type3, param3, type4, param4)
#define | RELEVANT_WRITE_FLAGS CS_WRITE_NOANTIALIAS
#define | THREADED_LOADING
## Enumerations
enum | csLoaderDataType { rdtInvalid, rdtR8G8B8, rdtRGBpixel, rdtIndexed }
| The data type a loader provides. More...
## Functions
static void | makeGLMatrix (const csMatrix3 &m, float matrix[16], bool rowMajor=false)
| Make an OpenGL matrix from a CS matrix.
static void | makeGLMatrix (const csReversibleTransform &t, float matrix[16], bool rowMajor=false)
| Make an OpenGL matrix from a CS transform.
template<class Tpixel>
static void | SplitAlpha (const int color, Tpixel &colorPart, uint8 &alphaPart)
| Split a g2d color into the color and alpha part.
## Variables
const unsigned short | ScanCodeToChar [128]
| This array can be used to translate scancodes into Crystal Space codes.

## Define Documentation

#define CS_GL_MAX_LAYER 16

Maximum number of texture coord sets resp.

image units the state manager can keep track of.

Definition at line 70 of file glstates.h.

Referenced by csGLStateCacheContext::InitCache(), and csGLStateCache::SetBufferARB().

#define CS_SOFT3D_BUFFERFLAG | ( | x |  | ) | (1 << CS_SOFT3D_VA_BUFINDEX(x))

Helper macro to obtain a software renderer buffer mask flag for a vertex attribute.

Definition at line 425 of file types.h.

#define CS_SOFT3D_VA_BUFINDEX | ( | x |  | ) |

Value:

    (CS_VATTRIB_ ## x - (CS_VATTRIB_ ## x >=  CS_VATTRIB_GENERIC_FIRST ?  \
      CS_VATTRIB_GENERIC_FIRST : CS_VATTRIB_SPECIFIC_FIRST))

Helper macro to obtain a software renderer buffer index for a vertex attribute.

Definition at line 418 of file types.h.

## Enumeration Type Documentation

enum csLoaderDataType

The data type a loader provides.

The data is automatically converted to the needed image format.

Enumerator:

  rdtInvalid | Invalid data type - the loader didn't set one.
  rdtR8G8B8 | 24bpp pixel data
  rdtRGBpixel | Array of csRGBpixel.
  rdtIndexed | 8-bit paletted data

Definition at line 45 of file commonimagefile.h.

## Function Documentation

static void makeGLMatrix | ( | const csMatrix3 & | m,
|  | float | matrix[16],
|  | bool | rowMajor = `false` |
| ) |  |  | `[inline, static]`

Make an OpenGL matrix from a CS matrix.

Definition at line 73 of file glhelper.h.

References csMatrix3::m11, csMatrix3::m12, csMatrix3::m13, csMatrix3::m21, csMatrix3::m22, csMatrix3::m23, csMatrix3::m31, csMatrix3::m32, and csMatrix3::m33.

static void makeGLMatrix | ( | const csReversibleTransform & | t,
|  | float | matrix[16],
|  | bool | rowMajor = `false` |
| ) |  |  | `[inline, static]`

Make an OpenGL matrix from a CS transform.

Definition at line 35 of file glhelper.h.

References csTransform::GetO2T(), csTransform::GetO2TTranslation(), csMatrix3::m11, csMatrix3::m12, csMatrix3::m13, csMatrix3::m21, csMatrix3::m22, csMatrix3::m23, csMatrix3::m31, csMatrix3::m32, csMatrix3::m33, csVector3::x, csVector3::y, and csVector3::z.

template<class Tpixel>

static void SplitAlpha | ( | const int | color,
|  | Tpixel & | colorPart,
|  | uint8 & | alphaPart |
| ) |  |  | `[static]`

Split a g2d color into the color and alpha part.

Definition at line 35 of file draw_common.h.

## Variable Documentation

const unsigned short ScanCodeToChar[128]

This array can be used to translate scancodes into Crystal Space codes.