CrystalSpace

Public API Reference

Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

3D
[Graphics]


Classes

struct  iRenderStepFactory
 Interface to a render step factory. More...
struct  iRenderStepType
 Render step type. More...
struct  csParticlesData
 Representational information of a particle. More...
struct  iParticlesColorCallback
 Particles state can be set up to retrieve color via a callback. More...
struct  iParticlesStateBase
 Particles shared state interface. More...
struct  iParticlesObjectState
 Particles state object. More...
struct  iParticlesFactoryState
 Particles factory state. More...
struct  iParticlesPhysics
 Particles physics interface. More...
struct  iFireTexture
 Interface to the 'fire' procedural texture. More...
struct  iProcTexture
 Interface to a texture factory. More...
struct  iTextureFactory
 Interface to a texture factory. More...
struct  iTextureType
 Texture type. More...
struct  csFog
 Fog structure. More...
struct  csAlphaMode
 Describes how to deal with alpha values in textures. More...
struct  csGraphics3DCaps
 Information about 3d renderer capabilities. More...
struct  csSimpleRenderMesh
 A simple render mesh. More...
struct  iGraphics3D
 This is the standard 3D graphics interface. More...
struct  iHalo
 iHalo: used to render halos (aka "light globes"). More...
struct  csTextureLayer
 This structure represents an extra texture layer which is applied on top of the previous one. More...
struct  iMaterial
 This class represents a material as seen from the engine view. More...
struct  iMaterialHandle
 This class represents a material handle (compiled material) for the 3D rasterizer. More...
struct  csPolyTextureMapping
 This structure holds mapping information to map the texture and lightmap on a polygon. More...
struct  csPolygonRenderData
 This structure is used for communicating polygon information to the polygon renderer. More...
struct  csRenderMeshModes
 Mesh render mode information. More...
struct  csCoreRenderMesh
 Data required by the renderer to draw a mesh. More...
struct  csRenderMesh
 Mesh data as returned by mesh plugins. More...
struct  iRenderBuffer
 This is a general buffer. More...
struct  iRenderBufferAccessor
 Interface for renderbuffer accessor. More...
class  csRenderBufferHolder
 Holder of standard renderbuffers. More...
struct  iTextureHandle
 A texture handle as returned by iTextureManager. More...
struct  iRendererLightmap
 A lightmap registered with a renderer. More...
struct  iSuperLightmap
 A super light map. More...
struct  iTextureManager
 This is the standard texture manager interface. More...

iGraphics3D::BeginDraw() flags

#define CSDRAW_2DGRAPHICS   0x00000001
 We're going to draw 2D graphics.
#define CSDRAW_3DGRAPHICS   0x00000002
 We're going to draw 3D graphics.
#define CSDRAW_CLEARZBUFFER   0x00000010
 Clear Z-buffer ?
#define CSDRAW_CLEARSCREEN   0x00000020
 Clear frame buffer ?

Type of clipper (for iGraphics3D::SetClipper())

#define CS_CLIPPER_NONE   -1
 There is no clipper.
#define CS_CLIPPER_OPTIONAL   0
 Clipper is optional.
#define CS_CLIPPER_TOPLEVEL   1
 Clipper is top-level.
#define CS_CLIPPER_REQUIRED   2
 Clipper is required.

Clipping requirement for DrawTriangleMesh

#define CS_CLIP_NOT   0
 No clipping required.
#define CS_CLIP_NEEDED   1
 Clipping may be needed.

Mix modes for DrawPolygonFX ()

The constants can be ORed together if they belong to different masks.

#define CS_FX_MASK_MIXMODE   0xF0000000
 SRC/DST mixing mode mask.
#define CS_FX_COPY   0x00000000
 =SRC
#define CS_FX_MULTIPLY   0x10000000
 =SRC*DST
#define CS_FX_MULTIPLY2   0x20000000
 =2*SRC*DST
#define CS_FX_ADD   0x30000000
 =SRC+DST
#define CS_FX_ALPHA   0x40000000
 =(1-alpha)*SRC + alpha*DST
#define CS_FX_TRANSPARENT   0x50000000
 =DST
#define CS_FX_DESTALPHAADD   0x60000000
 =(dstalpha)*SRC + DST
#define CS_FX_SRCALPHAADD   0x70000000
 =(srcalpha)*SRC + DST
#define CS_FX_PREMULTALPHA   0x80000000
 =SRC + DST*(1-srcalpha)
#define CS_FX_MESH   0xf0000000
 Use the mix mode of the mesh zmode.
#define CS_FX_KEYCOLOR   0x08000000
 color 0 is transparent
#define CS_FX_FLAT   0x04000000
 Flat shading.
#define CS_FX_TILING   0x02000000
 Tiling.
#define CS_FX_MASK_ALPHA   0x000000FF
 alpha = 0..FF (opaque..transparent)
#define CS_FX_SETALPHA(alpha)   (CS_FX_ALPHA | uint (alpha * CS_FX_MASK_ALPHA))
 Macro for setting of alpha bits into mixmode (alpha between 0 and 1).
#define CS_FX_SETALPHA_INT(alpha)   (CS_FX_ALPHA | uint (alpha & CS_FX_MASK_ALPHA))
 Macro for setting of alpha bits into mixmode (alpha between 0 and 255).

Light parameters

#define CS_LIGHTPARAM_POSITION   0
 Position of the light.
#define CS_LIGHTPARAM_DIFFUSE   1
 Diffuse color of the light.
#define CS_LIGHTPARAM_SPECULAR   2
 Specular color of the light.
#define CS_LIGHTPARAM_ATTENUATION   3
 Attenuation of the light.

Shadow states

#define CS_SHADOW_VOLUME_BEGIN   1
 Clear stencil.
#define CS_SHADOW_VOLUME_PASS1   2
 Setup for pass 1.
#define CS_SHADOW_VOLUME_PASS2   3
 Setup for pass 2.
#define CS_SHADOW_VOLUME_FAIL1   4
 Setup for carmack's reverse pass 1.
#define CS_SHADOW_VOLUME_FAIL2   5
 Setup for carmack's reverse pass 2.
#define CS_SHADOW_VOLUME_USE   6
 Setup for shadow masking.
#define CS_SHADOW_VOLUME_FINISH   7
 Restore states.

Texture registration flags.

During texture registration you should tell the manager which way you're going to use the texture: whenever you're going to use it for 2D (DrawPixmap ()), for 3D (DrawPolygon ()), whenever the texture will be dynamically modified.

#define CS_TEXTURE_2D   0x00000001
 You're going to use the texture for 2D drawing.
#define CS_TEXTURE_3D   0x00000002
 You're going to use the texture for 3D drawing.
#define CS_TEXTURE_DITHER   0x00000004
 Dither texture or not.
#define CS_TEXTURE_NOMIPMAPS   0x00000008
 Create mipmaps for this texture? Sometimes we know in advance that some texture will need just one mipmap (or we just don't care about the mipmapping artifacts because of, say, how texture is looking (smoothed etc)).
#define CS_TEXTURE_CLAMP   0x00000010
 This texture will not be tiled, and color lookups outside the 0..1 range will be clamped to the edge of the texture.
#define CS_TEXTURE_NOFILTER   0x00000020
 This texture will not be filtered, even if texture filtering is available.

Defines

#define CS_DEFMAT_DIFFUSE   0.7f
 Default material `diffuse' parameter.
#define CS_DEFMAT_AMBIENT   0.0f
 Default material `ambient' parameter.
#define CS_DEFMAT_REFLECTION   0.0f
 Default material `reflection' parameter.
#define CS_MATERIAL_VARNAME_DIFFUSE   "mat diffuse"
 Name string for the material "diffuse" shader var.
#define CS_MATERIAL_VARNAME_AMBIENT   "mat ambient"
 Name string for the material "ambient" shader var.
#define CS_MATERIAL_VARNAME_REFLECTION   "mat reflection"
 Name string for the material "reflection" shader var.
#define CS_MATERIAL_VARNAME_FLATCOLOR   "mat flatcolor"
 Name string for the material "flat color" shader var.
#define CS_MATERIAL_TEXTURE_DIFFUSE   "tex diffuse"
 Name string for the material "diffuse" texture.
#define CS_MATERIAL_TEXTURE_LAYER1   "tex layer1"
 Name string for old renderer: layer 1.
#define CS_MATERIAL_TEXTURE_LAYER2   "tex layer2"
 Name string for old renderer: layer 2.
#define CS_MATERIAL_TEXTURE_LAYER3   "tex layer3"
 Name string for old renderer: layer 3.
#define CS_MATERIAL_TEXTURE_LAYER4   "tex layer4"
 Name string for old renderer: layer 4.

Enumerations

enum  csParticleFalloffType
 Particle force falloff type. More...
enum  csParticleColorMethod
 Particle heat function. More...
enum  csParticleEmitType
 Particle emit type. More...
enum  csParticleForceType
 Particle force type. More...
enum  csZBufMode {
  CS_ZBUF_NONE = 0x00000000, CS_ZBUF_FILL = 0x00000001, CS_ZBUF_TEST = 0x00000002, CS_ZBUF_USE = 0x00000003,
  CS_ZBUF_FILLONLY = 0x00000004, CS_ZBUF_EQUAL = 0x00000005, CS_ZBUF_INVERT = 0x00000006, CS_ZBUF_MESH = 0x00000007,
  CS_ZBUF_MESH2 = 0x00000008
}
 Z-buffer modes. More...
enum  csVertexAttrib {
  CS_VATTRIB_POSITION = CS_VATTRIB_SPECIFIC_FIRST + 0, CS_VATTRIB_WEIGHT = CS_VATTRIB_SPECIFIC_FIRST + 1, CS_VATTRIB_NORMAL = CS_VATTRIB_SPECIFIC_FIRST + 2, CS_VATTRIB_COLOR = CS_VATTRIB_SPECIFIC_FIRST + 3,
  CS_VATTRIB_PRIMARY_COLOR = CS_VATTRIB_SPECIFIC_FIRST + 3, CS_VATTRIB_SECONDARY_COLOR = CS_VATTRIB_SPECIFIC_FIRST + 4, CS_VATTRIB_FOGCOORD = CS_VATTRIB_SPECIFIC_FIRST + 5, CS_VATTRIB_TEXCOORD = CS_VATTRIB_SPECIFIC_FIRST + 8,
  CS_VATTRIB_TEXCOORD0 = CS_VATTRIB_SPECIFIC_FIRST + 8, CS_VATTRIB_TEXCOORD1 = CS_VATTRIB_SPECIFIC_FIRST + 9, CS_VATTRIB_TEXCOORD2 = CS_VATTRIB_SPECIFIC_FIRST + 10, CS_VATTRIB_TEXCOORD3 = CS_VATTRIB_SPECIFIC_FIRST + 11,
  CS_VATTRIB_TEXCOORD4 = CS_VATTRIB_SPECIFIC_FIRST + 12, CS_VATTRIB_TEXCOORD5 = CS_VATTRIB_SPECIFIC_FIRST + 13, CS_VATTRIB_TEXCOORD6 = CS_VATTRIB_SPECIFIC_FIRST + 14, CS_VATTRIB_TEXCOORD7 = CS_VATTRIB_SPECIFIC_FIRST + 15,
  CS_VATTRIB_0 = CS_VATTRIB_GENERIC_FIRST + 0, CS_VATTRIB_1 = CS_VATTRIB_GENERIC_FIRST + 1, CS_VATTRIB_2 = CS_VATTRIB_GENERIC_FIRST + 2, CS_VATTRIB_3 = CS_VATTRIB_GENERIC_FIRST + 3,
  CS_VATTRIB_4 = CS_VATTRIB_GENERIC_FIRST + 4, CS_VATTRIB_5 = CS_VATTRIB_GENERIC_FIRST + 5, CS_VATTRIB_6 = CS_VATTRIB_GENERIC_FIRST + 6, CS_VATTRIB_7 = CS_VATTRIB_GENERIC_FIRST + 7,
  CS_VATTRIB_8 = CS_VATTRIB_GENERIC_FIRST + 8, CS_VATTRIB_9 = CS_VATTRIB_GENERIC_FIRST + 9, CS_VATTRIB_10 = CS_VATTRIB_GENERIC_FIRST + 10, CS_VATTRIB_11 = CS_VATTRIB_GENERIC_FIRST + 11,
  CS_VATTRIB_12 = CS_VATTRIB_GENERIC_FIRST + 12, CS_VATTRIB_13 = CS_VATTRIB_GENERIC_FIRST + 13, CS_VATTRIB_14 = CS_VATTRIB_GENERIC_FIRST + 14, CS_VATTRIB_15 = CS_VATTRIB_GENERIC_FIRST + 15
}
 For NR: Vertex attributes. More...
enum  G3D_RENDERSTATEOPTION {
  G3DRENDERSTATE_ZBUFFERMODE, G3DRENDERSTATE_DITHERENABLE, G3DRENDERSTATE_BILINEARMAPPINGENABLE, G3DRENDERSTATE_TRILINEARMAPPINGENABLE,
  G3DRENDERSTATE_TRANSPARENCYENABLE, G3DRENDERSTATE_MIPMAPENABLE, G3DRENDERSTATE_TEXTUREMAPPINGENABLE, G3DRENDERSTATE_LIGHTINGENABLE,
  G3DRENDERSTATE_INTERLACINGENABLE, G3DRENDERSTATE_MMXENABLE, G3DRENDERSTATE_INTERPOLATIONSTEP, G3DRENDERSTATE_MAXPOLYGONSTODRAW,
  G3DRENDERSTATE_GOURAUDENABLE, G3DRENDERSTATE_EDGES
}
 Graphics3D render state options. More...
enum  csRenderMeshType {
  CS_MESHTYPE_TRIANGLES, CS_MESHTYPE_QUADS, CS_MESHTYPE_TRIANGLESTRIP, CS_MESHTYPE_TRIANGLEFAN,
  CS_MESHTYPE_POINTS, CS_MESHTYPE_POINT_SPRITES, CS_MESHTYPE_LINES, CS_MESHTYPE_LINESTRIP,
  CS_MESHTYPE_POLYGON
}
 Primitive type of a mesh. More...
enum  csSimpleMeshFlags { csSimpleMeshScreenspace = 0x01 }
 Flags to influence the behaviour of DrawSimpleMesh(). More...
enum  csRenderBufferType { CS_BUF_DYNAMIC, CS_BUF_STATIC, CS_BUF_STREAM }
 Buffer usage type. More...
enum  csRenderBufferComponentType
 Type of components. More...
enum  csRenderBufferLockType { , CS_BUF_LOCK_READ, CS_BUF_LOCK_NORMAL }
 Type of lock of a render buffer. More...
enum  csRenderBufferName { ,
  CS_BUFFER_INDEX, CS_BUFFER_POSITION, CS_BUFFER_NORMAL, CS_BUFFER_COLOR,
  CS_BUFFER_COLOR_LIGHTING, CS_BUFFER_TEXCOORD0, CS_BUFFER_TEXCOORD1, CS_BUFFER_TEXCOORD2,
  CS_BUFFER_TEXCOORD3, CS_BUFFER_TEXCOORD_LIGHTMAP, CS_BUFFER_GENERIC0, CS_BUFFER_GENERIC1,
  CS_BUFFER_GENERIC2, CS_BUFFER_GENERIC3, CS_BUFFER_TANGENT, CS_BUFFER_BINORMAL,
  CS_BUFFER_COUNT
}
 Defines the names of the renderbuffers as provided by the meshes. More...
enum  csRenderBufferNameMask {
  CS_BUFFER_INDEX_MASK = 1 << CS_BUFFER_INDEX, CS_BUFFER_POSITION_MASK = 1 << CS_BUFFER_POSITION, CS_BUFFER_NORMAL_MASK = 1 << CS_BUFFER_NORMAL, CS_BUFFER_COLOR_MASK = 1 << CS_BUFFER_COLOR,
  CS_BUFFER_COLOR_LIGHTING_MASK = 1 << CS_BUFFER_COLOR_LIGHTING, CS_BUFFER_TEXCOORD0_MASK = 1 << CS_BUFFER_TEXCOORD0, CS_BUFFER_TEXCOORD1_MASK = 1 << CS_BUFFER_TEXCOORD1, CS_BUFFER_TEXCOORD2_MASK = 1 << CS_BUFFER_TEXCOORD2,
  CS_BUFFER_TEXCOORD3_MASK = 1 << CS_BUFFER_TEXCOORD3, CS_BUFFER_TEXCOORD_LIGHTMAP_MASK = 1 << CS_BUFFER_TEXCOORD_LIGHTMAP, CS_BUFFER_GENERIC0_MASK = 1 << CS_BUFFER_GENERIC0, CS_BUFFER_GENERIC1_MASK = 1 << CS_BUFFER_GENERIC1,
  CS_BUFFER_GENERIC2_MASK = 1 << CS_BUFFER_GENERIC2, CS_BUFFER_GENERIC3_MASK = 1 << CS_BUFFER_GENERIC3, CS_BUFFER_TANGENT_MASK = 1 << CS_BUFFER_TANGENT, CS_BUFFER_BINORMAL_MASK = 1 << CS_BUFFER_BINORMAL,
  CS_BUFFER_ALL_MASK = ~0
}
 Masks for renderbuffer accessors. More...

Variables

const size_t csRenderBufferComponentSizes [CS_BUFCOMP_TYPECOUNT]
 Sizes of individual buffer components in bytes.

Define Documentation

#define CS_CLIP_NEEDED   1
 

Clipping may be needed.

Depending on the type of the clipper (one of the CS_CLIPPER_??? flags) the renderer has to clip or not. (setting for clip_portal, clip_plane, or clip_z_plane).

Definition at line 117 of file graph3d.h.

#define CS_CLIP_NOT   0
 

No clipping required.

(setting for clip_portal, clip_plane, or clip_z_plane).

Definition at line 111 of file graph3d.h.

#define CS_CLIPPER_NONE   -1
 

There is no clipper.

Definition at line 90 of file graph3d.h.

#define CS_CLIPPER_OPTIONAL   0
 

Clipper is optional.

Definition at line 94 of file graph3d.h.

#define CS_CLIPPER_REQUIRED   2
 

Clipper is required.

Definition at line 102 of file graph3d.h.

#define CS_CLIPPER_TOPLEVEL   1
 

Clipper is top-level.

Definition at line 98 of file graph3d.h.

#define CS_DEFMAT_AMBIENT   0.0f
 

Default material `ambient' parameter.

Definition at line 40 of file material.h.

#define CS_DEFMAT_DIFFUSE   0.7f
 

Default material `diffuse' parameter.

Definition at line 38 of file material.h.

#define CS_DEFMAT_REFLECTION   0.0f
 

Default material `reflection' parameter.

Definition at line 42 of file material.h.

#define CS_FX_ADD   0x30000000
 

=SRC+DST

Definition at line 261 of file graph3d.h.

#define CS_FX_ALPHA   0x40000000
 

=(1-alpha)*SRC + alpha*DST

Definition at line 263 of file graph3d.h.

#define CS_FX_COPY   0x00000000
 

=SRC

Definition at line 255 of file graph3d.h.

#define CS_FX_DESTALPHAADD   0x60000000
 

=(dstalpha)*SRC + DST

Definition at line 267 of file graph3d.h.

#define CS_FX_FLAT   0x04000000
 

Flat shading.

Definition at line 280 of file graph3d.h.

#define CS_FX_KEYCOLOR   0x08000000
 

color 0 is transparent

Definition at line 278 of file graph3d.h.

#define CS_FX_MASK_ALPHA   0x000000FF
 

alpha = 0..FF (opaque..transparent)

Definition at line 284 of file graph3d.h.

#define CS_FX_MASK_MIXMODE   0xF0000000
 

SRC/DST mixing mode mask.

Definition at line 253 of file graph3d.h.

#define CS_FX_MESH   0xf0000000
 

Use the mix mode of the mesh zmode.

(NOTE: NOT VALID AS MESH ZMODE - only for shader pass mixmodes)

Definition at line 276 of file graph3d.h.

#define CS_FX_MULTIPLY   0x10000000
 

=SRC*DST

Definition at line 257 of file graph3d.h.

#define CS_FX_MULTIPLY2   0x20000000
 

=2*SRC*DST

Definition at line 259 of file graph3d.h.

#define CS_FX_PREMULTALPHA   0x80000000
 

=SRC + DST*(1-srcalpha)

Definition at line 271 of file graph3d.h.

#define CS_FX_SETALPHA alpha   )     (CS_FX_ALPHA | uint (alpha * CS_FX_MASK_ALPHA))
 

Macro for setting of alpha bits into mixmode (alpha between 0 and 1).

Definition at line 287 of file graph3d.h.

Referenced by csNewParticleSystem::SetAlpha(), and csParticleSystem::SetAlpha().

#define CS_FX_SETALPHA_INT alpha   )     (CS_FX_ALPHA | uint (alpha & CS_FX_MASK_ALPHA))
 

Macro for setting of alpha bits into mixmode (alpha between 0 and 255).

Definition at line 290 of file graph3d.h.

#define CS_FX_SRCALPHAADD   0x70000000
 

=(srcalpha)*SRC + DST

Definition at line 269 of file graph3d.h.

#define CS_FX_TILING   0x02000000
 

Tiling.

Definition at line 282 of file graph3d.h.

#define CS_FX_TRANSPARENT   0x50000000
 

=DST

Definition at line 265 of file graph3d.h.

#define CS_LIGHTPARAM_ATTENUATION   3
 

Attenuation of the light.

Definition at line 329 of file graph3d.h.

#define CS_LIGHTPARAM_DIFFUSE   1
 

Diffuse color of the light.

Definition at line 325 of file graph3d.h.

#define CS_LIGHTPARAM_POSITION   0
 

Position of the light.

Definition at line 323 of file graph3d.h.

#define CS_LIGHTPARAM_SPECULAR   2
 

Specular color of the light.

Definition at line 327 of file graph3d.h.

#define CS_MATERIAL_TEXTURE_DIFFUSE   "tex diffuse"
 

Name string for the material "diffuse" texture.

Definition at line 53 of file material.h.

#define CS_MATERIAL_TEXTURE_LAYER1   "tex layer1"
 

Name string for old renderer: layer 1.

Definition at line 56 of file material.h.

#define CS_MATERIAL_TEXTURE_LAYER2   "tex layer2"
 

Name string for old renderer: layer 2.

Definition at line 58 of file material.h.

#define CS_MATERIAL_TEXTURE_LAYER3   "tex layer3"
 

Name string for old renderer: layer 3.

Definition at line 60 of file material.h.

#define CS_MATERIAL_TEXTURE_LAYER4   "tex layer4"
 

Name string for old renderer: layer 4.

Definition at line 62 of file material.h.

#define CS_MATERIAL_VARNAME_AMBIENT   "mat ambient"
 

Name string for the material "ambient" shader var.

Definition at line 47 of file material.h.

#define CS_MATERIAL_VARNAME_DIFFUSE   "mat diffuse"
 

Name string for the material "diffuse" shader var.

Definition at line 45 of file material.h.

#define CS_MATERIAL_VARNAME_FLATCOLOR   "mat flatcolor"
 

Name string for the material "flat color" shader var.

Definition at line 51 of file material.h.

#define CS_MATERIAL_VARNAME_REFLECTION   "mat reflection"
 

Name string for the material "reflection" shader var.

Definition at line 49 of file material.h.

#define CS_SHADOW_VOLUME_BEGIN   1
 

Clear stencil.

Definition at line 335 of file graph3d.h.

#define CS_SHADOW_VOLUME_FAIL1   4
 

Setup for carmack's reverse pass 1.

Definition at line 341 of file graph3d.h.

#define CS_SHADOW_VOLUME_FAIL2   5
 

Setup for carmack's reverse pass 2.

Definition at line 343 of file graph3d.h.

#define CS_SHADOW_VOLUME_FINISH   7
 

Restore states.

Definition at line 347 of file graph3d.h.

#define CS_SHADOW_VOLUME_PASS1   2
 

Setup for pass 1.

Definition at line 337 of file graph3d.h.

#define CS_SHADOW_VOLUME_PASS2   3
 

Setup for pass 2.

Definition at line 339 of file graph3d.h.

#define CS_SHADOW_VOLUME_USE   6
 

Setup for shadow masking.

Definition at line 345 of file graph3d.h.

#define CS_TEXTURE_2D   0x00000001
 

You're going to use the texture for 2D drawing.

Definition at line 52 of file txtmgr.h.

#define CS_TEXTURE_3D   0x00000002
 

You're going to use the texture for 3D drawing.

Definition at line 54 of file txtmgr.h.

#define CS_TEXTURE_CLAMP   0x00000010
 

This texture will not be tiled, and color lookups outside the 0..1 range will be clamped to the edge of the texture.

Definition at line 78 of file txtmgr.h.

#define CS_TEXTURE_DITHER   0x00000004
 

Dither texture or not.

Some renderers may use dithering while converting textures to internal format (say from truecolor to 8-bit paletted). For most textures dithering won't give any visual effect, but very seldom there are textures that looks relatively bad after being converted. In this case you can enable this per-texture flag.

Definition at line 63 of file txtmgr.h.

#define CS_TEXTURE_NOFILTER   0x00000020
 

This texture will not be filtered, even if texture filtering is available.

Definition at line 82 of file txtmgr.h.

#define CS_TEXTURE_NOMIPMAPS   0x00000008
 

Create mipmaps for this texture? Sometimes we know in advance that some texture will need just one mipmap (or we just don't care about the mipmapping artifacts because of, say, how texture is looking (smoothed etc)).

This flag is a hint for texture manager so that it will know this.

Note that if texture is not registered for 3D usage (i.e. if CS_TEXTURE_3D is not set) this flag does not matter - 2D textures do not use mipmaps.

Definition at line 73 of file txtmgr.h.

#define CSDRAW_2DGRAPHICS   0x00000001
 

We're going to draw 2D graphics.

Definition at line 76 of file graph3d.h.

#define CSDRAW_3DGRAPHICS   0x00000002
 

We're going to draw 3D graphics.

Definition at line 78 of file graph3d.h.

#define CSDRAW_CLEARSCREEN   0x00000020
 

Clear frame buffer ?

Definition at line 82 of file graph3d.h.

#define CSDRAW_CLEARZBUFFER   0x00000010
 

Clear Z-buffer ?

Definition at line 80 of file graph3d.h.


Enumeration Type Documentation

enum csParticleColorMethod
 

Particle heat function.

Definition at line 52 of file particles.h.

enum csParticleEmitType
 

Particle emit type.

Definition at line 62 of file particles.h.

enum csParticleFalloffType
 

Particle force falloff type.

Definition at line 44 of file particles.h.

enum csParticleForceType
 

Particle force type.

Definition at line 71 of file particles.h.

enum csRenderBufferComponentType
 

Type of components.

Definition at line 59 of file rndbuf.h.

Referenced by csRenderBuffer::GetComponentType().

enum csRenderBufferLockType
 

Type of lock of a render buffer.

Enumeration values:
CS_BUF_LOCK_READ  Lock used for reading only from the buffer.
CS_BUF_LOCK_NORMAL  Just get a point to the buffer, nothing special.

Definition at line 76 of file rndbuf.h.

enum csRenderBufferName
 

Defines the names of the renderbuffers as provided by the meshes.

Remarks:
These constants are used to generate a mask (see csRenderBufferNameMask), hence their number should be kept below 32.
Enumeration values:
CS_BUFFER_INDEX  Index buffer.
CS_BUFFER_POSITION  Vertex positions.
CS_BUFFER_NORMAL  Normals.
CS_BUFFER_COLOR  Primary color.
CS_BUFFER_COLOR_LIGHTING  Primary color multiplied with lighting.
CS_BUFFER_TEXCOORD0  Texture coordinate 0.
CS_BUFFER_TEXCOORD1  Texture coordinate 1.
CS_BUFFER_TEXCOORD2  Texture coordinate 2.
CS_BUFFER_TEXCOORD3  Texture coordinate 3.
CS_BUFFER_TEXCOORD_LIGHTMAP  Texture coordinates for lightmap.
CS_BUFFER_GENERIC0  Generic buffer 0, can be used for example for matrix-palette skinning etc.
CS_BUFFER_GENERIC1  Generic buffer 1, can be used for example for matrix-palette skinning etc.
CS_BUFFER_GENERIC2  Generic buffer 2, can be used for example for matrix-palette skinning etc.
CS_BUFFER_GENERIC3  Generic buffer 3, can be used for example for matrix-palette skinning etc.
CS_BUFFER_TANGENT  Tangents.
CS_BUFFER_BINORMAL  Binormals.
CS_BUFFER_COUNT  Not really a renderbuffer.

Use to determine the number of available default buffer names.

Definition at line 180 of file rndbuf.h.

enum csRenderBufferNameMask
 

Masks for renderbuffer accessors.

Enumeration values:
CS_BUFFER_INDEX_MASK  Index buffer.
CS_BUFFER_POSITION_MASK  Vertex positions.
CS_BUFFER_NORMAL_MASK  Normals.
CS_BUFFER_COLOR_MASK  Primary color.
CS_BUFFER_COLOR_LIGHTING_MASK  Primary color multiplied with lighting.
CS_BUFFER_TEXCOORD0_MASK  Texture coordinate 0.
CS_BUFFER_TEXCOORD1_MASK  Texture coordinate 1.
CS_BUFFER_TEXCOORD2_MASK  Texture coordinate 2.
CS_BUFFER_TEXCOORD3_MASK  Texture coordinate 3.
CS_BUFFER_TEXCOORD_LIGHTMAP_MASK  Texture coordinates for lightmap.
CS_BUFFER_GENERIC0_MASK  Generic buffer 0, can be used for example for matrix-palette skinning etc.
CS_BUFFER_GENERIC1_MASK  Generic buffer 1, can be used for example for matrix-palette skinning etc.
CS_BUFFER_GENERIC2_MASK  Generic buffer 2, can be used for example for matrix-palette skinning etc.
CS_BUFFER_GENERIC3_MASK  Generic buffer 3, can be used for example for matrix-palette skinning etc.
CS_BUFFER_TANGENT_MASK  Tangents.
CS_BUFFER_BINORMAL_MASK  Binormals.
CS_BUFFER_ALL_MASK  All buffers.

Definition at line 226 of file rndbuf.h.

enum csRenderBufferType
 

Buffer usage type.

Drivers may do some optimizations based on this value. Use a type that most closely matches the intended use.

Enumeration values:
CS_BUF_DYNAMIC  Data that changes every couple of frames and is drawn repeatedly.
CS_BUF_STATIC  Data that is seldom modified and often drawn.
CS_BUF_STREAM  Data that changes every time it is drawn.

Definition at line 48 of file rndbuf.h.

Referenced by csRenderBuffer::GetBufferType().

enum csRenderMeshType
 

Primitive type of a mesh.

Enumeration values:
CS_MESHTYPE_TRIANGLES  Triangles.
CS_MESHTYPE_QUADS  Quads.
CS_MESHTYPE_TRIANGLESTRIP  Triangle strip.

The OpenGL spec describes it pretty well: "A triangle strip is a series of triangles connected along shared edges. A triangle strip is specified by giving a series of defining vertices [...]. In this case, the first three vertices define the first triangle [...]. Each subsequent vertex defines a new triangle using that point along with two vertices from the previous triangle."

CS_MESHTYPE_TRIANGLEFAN  Triangle fan.

Similar to a triangle strip, however, a triangle is always defined with the first, previously added and the recently added vertex.

CS_MESHTYPE_POINTS  Points.
CS_MESHTYPE_POINT_SPRITES  Point sprites.

Note: only supported if the SupportsPointSprites member of the csGraphics3DCaps structure for this renderer is true.

CS_MESHTYPE_LINES  Lines.
CS_MESHTYPE_LINESTRIP  Line strip.

A line is defined from the prebviously and recently added vertex.

CS_MESHTYPE_POLYGON  Render polygons.

Note that you *must* supply geometry with the help of an iPolygonRenderer. In the common case, if you want to draw a polygon, you probably want to use CS_MESHTYPE_TRIANGLES or CS_MESHTYPE_TRIANGLEFAN and triangulate the poly yourself.

Definition at line 411 of file graph3d.h.

enum csSimpleMeshFlags
 

Flags to influence the behaviour of DrawSimpleMesh().

Enumeration values:
csSimpleMeshScreenspace  Ignore the object2camera transform in the csSimpleRenderMesh struct and replace it with a transformation that effectively lets you specify the vertices in screen space.

The Z components of the mesh vertices should be set to 0 when this flag is specified.

Definition at line 464 of file graph3d.h.

enum csVertexAttrib
 

For NR: Vertex attributes.

Enumeration values:
CS_VATTRIB_POSITION  Position vertex attribute.
CS_VATTRIB_WEIGHT  Vertex weight attribute.
CS_VATTRIB_NORMAL  Normal attribute.
CS_VATTRIB_COLOR  Primary color attribute.
CS_VATTRIB_PRIMARY_COLOR  Primary color attribute.
CS_VATTRIB_SECONDARY_COLOR  Secondary color attribute.
CS_VATTRIB_FOGCOORD  Fog coordinate attribute.
CS_VATTRIB_TEXCOORD  TU 0 texture coordinates.
CS_VATTRIB_TEXCOORD0  TU 0 texture coordinates.
CS_VATTRIB_TEXCOORD1  TU 1 texture coordinates.
CS_VATTRIB_TEXCOORD2  TU 2 texture coordinates.
CS_VATTRIB_TEXCOORD3  TU 3 texture coordinates.
CS_VATTRIB_TEXCOORD4  TU 4 texture coordinates.
CS_VATTRIB_TEXCOORD5  TU 5 texture coordinates.
CS_VATTRIB_TEXCOORD6  TU 6 texture coordinates.
CS_VATTRIB_TEXCOORD7  TU 7 texture coordinates.
CS_VATTRIB_0  General vertex attribute.
CS_VATTRIB_1  General vertex attribute.
CS_VATTRIB_2  General vertex attribute.
CS_VATTRIB_3  General vertex attribute.
CS_VATTRIB_4  General vertex attribute.
CS_VATTRIB_5  General vertex attribute.
CS_VATTRIB_6  General vertex attribute.
CS_VATTRIB_7  General vertex attribute.
CS_VATTRIB_8  General vertex attribute.
CS_VATTRIB_9  General vertex attribute.
CS_VATTRIB_10  General vertex attribute.
CS_VATTRIB_11  General vertex attribute.
CS_VATTRIB_12  General vertex attribute.
CS_VATTRIB_13  General vertex attribute.
CS_VATTRIB_14  General vertex attribute.
CS_VATTRIB_15  General vertex attribute.

Definition at line 184 of file graph3d.h.

enum csZBufMode
 

Z-buffer modes.

Enumeration values:
CS_ZBUF_NONE  Don't test/write.
CS_ZBUF_FILL  write
CS_ZBUF_TEST  test
CS_ZBUF_USE  write/test
CS_ZBUF_FILLONLY  only write
CS_ZBUF_EQUAL  test if equal
CS_ZBUF_INVERT  inverted test
CS_ZBUF_MESH  use the z mode of the mesh (NOTE: NOT VALID AS MESH ZMODE)
CS_ZBUF_MESH2  Use a z mode depending on the mesh zmode.

The mesh zmode is used a to choose a zmode that makes sure only pixels that are changed by the mesh zmode can be touched, e.g. if the mesh has a zmode of "zuse", zmesh2 will resolve to "ztest". This is useful for multi- pass stuff. (NOTE: NOT VALID AS MESH ZMODE)

Definition at line 138 of file graph3d.h.

enum G3D_RENDERSTATEOPTION
 

Graphics3D render state options.

Enumeration values:
G3DRENDERSTATE_ZBUFFERMODE  Set Z-buffer fill/test/use mode (parameter is a csZBufMode).
G3DRENDERSTATE_DITHERENABLE  Enable/disable dithering (parameter is a bool).
G3DRENDERSTATE_BILINEARMAPPINGENABLE  Enable/disable bi-linear mapping (parameter is a bool).
G3DRENDERSTATE_TRILINEARMAPPINGENABLE  Enable/disable tri-linear mapping (parameter is a bool).
G3DRENDERSTATE_TRANSPARENCYENABLE  Enable/disable transparent textures (parameter is a bool).
G3DRENDERSTATE_MIPMAPENABLE  Enable/disable mip-mapping (parameter is a bool).
G3DRENDERSTATE_TEXTUREMAPPINGENABLE  Enable/disable textures (parameter is a bool).
G3DRENDERSTATE_LIGHTINGENABLE  Enable/disable lighting (parameter is a bool).
G3DRENDERSTATE_INTERLACINGENABLE  Enable/disable interlacing (parameter is a bool).
G3DRENDERSTATE_MMXENABLE  Enable/disable MMX instructions usage (parameter is a bool).
G3DRENDERSTATE_INTERPOLATIONSTEP  Set perspective-correction interpolation step (parameter is a int).
G3DRENDERSTATE_MAXPOLYGONSTODRAW  Set maximal number of polygons per frame to draw (parameter is a int).
G3DRENDERSTATE_GOURAUDENABLE  Enable/disable Gouraud shading (parameter is a bool).
G3DRENDERSTATE_EDGES  Enable/disable edge drawing (debugging) (parameter is a bool).

Definition at line 351 of file graph3d.h.


Variable Documentation

const size_t csRenderBufferComponentSizes[CS_BUFCOMP_TYPECOUNT] [static]
 

Initial value:

 
{
  sizeof (char), sizeof (unsigned char), 
  sizeof (short), sizeof (unsigned short),
  sizeof (int), sizeof (unsigned int),
  sizeof (float),
  sizeof (double)
}
Sizes of individual buffer components in bytes.

Definition at line 88 of file rndbuf.h.


Generated for Crystal Space by doxygen 1.3.9.1