## 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 | CrystalSpace
namespace | CrystalSpace
namespace | CrystalSpace
namespace | CrystalSpace
namespace | CrystalSpace

## 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 | 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 | csNewParticleSystem
| This is an abstract implementation of a particle system mesh object. 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 | csSndFunc
| Helper functions for the sound loaders. 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
#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])
| Make an OpenGL matrix from a CS matrix.
static void | makeGLMatrix (const csReversibleTransform &t, float matrix[16])
| 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 int | CS_PARTICLE_ALIGN_Y = 512
| use the y axis for alignment instead of x
const int | CS_PARTICLE_AUTODELETE = 1
| flag value to indicate that the system should be deleted when all particles are gone.
const int | CS_PARTICLE_AXIS = 8
| enable axis alignment (screen alignment otherwise)
const int | CS_PARTICLE_ROTATE = 4
| enable particle rotation
const int | CS_PARTICLE_SCALE = 2
| enable particle scaling
unsigned short | ScanCodeToChar [128]
| This array can be used to translate scancodes into Crystal Space codes.

## Define Documentation

#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 417 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 410 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]
| ) | `[inline, static]`

| Make an OpenGL matrix from a CS matrix. Definition at line 63 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]
| ) | `[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. Referenced by csSoftFontCacheImpl< Tpixel, Tpixmixer >::WriteString().

## Variable Documentation

const int CS_PARTICLE_ALIGN_Y = 512

| use the y axis for alignment instead of x Definition at line 59 of file particle.h.

const int CS_PARTICLE_AUTODELETE = 1

| flag value to indicate that the system should be deleted when all particles are gone. Definition at line 47 of file particle.h.

const int CS_PARTICLE_AXIS = 8

| enable axis alignment (screen alignment otherwise) Definition at line 56 of file particle.h.

const int CS_PARTICLE_ROTATE = 4

| enable particle rotation Definition at line 53 of file particle.h. Referenced by csNewParticleSystem::SetChangeRotation().

const int CS_PARTICLE_SCALE = 2

| enable particle scaling Definition at line 50 of file particle.h.

unsigned short ScanCodeToChar[128]

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