CrystalSpace

Public API Reference

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

3D
[Graphics]


Compounds

struct  csAlphaMode
 Describes how to deal with alpha values in textures. More...

struct  csCoreRenderMesh
 Data required by the renderer to draw a mesh. More...

struct  iFireTexture
 Interface to the 'fire' procedural texture. More...

struct  csFog
 Fog structure. More...

class  G3DCam2TextureTransform
 Information about a texture plane. More...

class  G3DFogInfo
 Extra information for vertex fogging. More...

struct  G3DPolygonDFP
 Structure containing all info needed by DrawFogPolygon (DFP). More...

struct  G3DPolygonDP
 Structure containing all info needed by DrawPolygon (DP). More...

struct  G3DPolygonDPFX
 Structure containing all info needed by DrawPolygonFX (DPFX). More...

struct  G3DPolygonMesh
 Structure containing all info needed by DrawPolygonMesh. More...

struct  G3DTriangleMesh
 Structure containing all info needed by DrawTriangeMesh. More...

struct  iGraphics3D
 This is the standard 3D graphics interface. More...

struct  csGraphics3DCaps
 Information about 3d renderer capabilities. More...

struct  iHalo
 iHalo: used to render halos (aka "light globes"). 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  iParticlesColorCallback
 Particles state can be set up to retrieve color via a callback. More...

struct  csParticlesData
 Representational information of a particle. More...

struct  iParticlesFactoryState
 Particles factory state. More...

struct  iParticlesObjectState
 Particles state object. More...

struct  iParticlesPhysics
 Particles physics interface. More...

struct  iParticlesStateBase
 Particles shared state interface. More...

struct  iPolygonBuffer
 @@OR@@ This interface represents a black-box polygon buffer. More...

struct  csPolygonRenderData
 This structure is used for communicating polygon information to the polygon renderer. More...

struct  csPolyTextureMapping
 This structure holds mapping information to map the texture and lightmap on a polygon. More...

struct  iProcTexture
 Interface to a texture factory. More...

struct  iRenderBuffer
 This is a general buffer to be used by the renderer. More...

struct  iRendererLightmap
 A lightmap registered with a renderer. More...

struct  csRenderMesh
 Mesh data as returned by mesh plugins. More...

struct  csRenderMeshModes
 Mesh render mode information. More...

struct  iRenderStepFactory
 Interface to a render step factory. More...

struct  iRenderStepType
 Render step type. More...

struct  csSimpleRenderMesh
 A simple render mesh. More...

struct  iSuperLightmap
 A super light map. More...

struct  iTextureFactory
 Interface to a texture factory. More...

struct  iTextureHandle
 A texture handle as returned by iTextureManager. More...

struct  csTextureLayer
 This structure represents an extra texture layer which is applied on top of the previous one. More...

struct  iTextureManager
 This is the standard texture manager interface. More...

struct  iTextureType
 Texture type. More...

struct  iVertexBuffer
 @@OR@@ This interface represents a black-box vertex buffer. More...

struct  iVertexBufferManager
 @@OR@@ This interface represents the vertex buffer manager. More...

struct  iVertexBufferManagerClient
 Objects using services provided by the vertexbuffermanager can register with the manager to receive information about it current state, e.g. 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_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.


[NOHEADER]


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.


Typedefs

typedef G3DPolygonDP G3DPolygonDPF
 Structure containing all info needed by DrawPolygonFlat (DPF).


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_0 = 0, CS_VATTRIB_1 = 1, CS_VATTRIB_2 = 2, CS_VATTRIB_3 = 3,
  CS_VATTRIB_4 = 4, CS_VATTRIB_5 = 5, CS_VATTRIB_6 = 6, CS_VATTRIB_7 = 7,
  CS_VATTRIB_8 = 8, CS_VATTRIB_9 = 9, CS_VATTRIB_10 = 10, CS_VATTRIB_11 = 11,
  CS_VATTRIB_12 = 12, CS_VATTRIB_13 = 13, CS_VATTRIB_14 = 14, CS_VATTRIB_15 = 15,
  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
}
 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
 Where the buffer is placed CS_BUF_INDEX is special and only to be used by indexbuffers. More...

enum  csRenderBufferComponentType
 Type of components. More...

enum  csRenderBufferLockType
 Type of lock CS_BUF_LOCK_NORMAL: Just get a point to the buffer, nothing special CS_BUF_LOCK_RENDER: Special lock only to be used by renderer. More...


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 118 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 112 of file graph3d.h.

#define CS_CLIPPER_NONE   -1
 

There is no clipper.

Definition at line 91 of file graph3d.h.

#define CS_CLIPPER_OPTIONAL   0
 

Clipper is optional.

Definition at line 95 of file graph3d.h.

#define CS_CLIPPER_REQUIRED   2
 

Clipper is required.

Definition at line 103 of file graph3d.h.

#define CS_CLIPPER_TOPLEVEL   1
 

Clipper is top-level.

Definition at line 99 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 262 of file graph3d.h.

#define CS_FX_ALPHA   0x40000000
 

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

Definition at line 264 of file graph3d.h.

#define CS_FX_COPY   0x00000000
 

=SRC

Definition at line 256 of file graph3d.h.

#define CS_FX_DESTALPHAADD   0x60000000
 

=(dstalpha)*SRC + DST

Definition at line 268 of file graph3d.h.

#define CS_FX_FLAT   0x04000000
 

Flat shading.

Definition at line 279 of file graph3d.h.

#define CS_FX_KEYCOLOR   0x08000000
 

color 0 is transparent

Definition at line 277 of file graph3d.h.

#define CS_FX_MASK_ALPHA   0x000000FF
 

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

Definition at line 283 of file graph3d.h.

#define CS_FX_MASK_MIXMODE   0xF0000000
 

SRC/DST mixing mode mask.

Definition at line 254 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 275 of file graph3d.h.

#define CS_FX_MULTIPLY   0x10000000
 

=SRC*DST

Definition at line 258 of file graph3d.h.

#define CS_FX_MULTIPLY2   0x20000000
 

=2*SRC*DST

Definition at line 260 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 286 of file graph3d.h.

#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 289 of file graph3d.h.

#define CS_FX_SRCALPHAADD   0x70000000
 

=(srcalpha)*SRC + DST

Definition at line 270 of file graph3d.h.

#define CS_FX_TILING   0x02000000
 

Tiling.

Definition at line 281 of file graph3d.h.

#define CS_FX_TRANSPARENT   0x50000000
 

=DST

Definition at line 266 of file graph3d.h.

#define CS_LIGHTPARAM_ATTENUATION   3
 

Attenuation of the light.

Definition at line 328 of file graph3d.h.

#define CS_LIGHTPARAM_DIFFUSE   1
 

Diffuse color of the light.

Definition at line 324 of file graph3d.h.

#define CS_LIGHTPARAM_POSITION   0
 

Position of the light.

Definition at line 322 of file graph3d.h.

#define CS_LIGHTPARAM_SPECULAR   2
 

Specular color of the light.

Definition at line 326 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 334 of file graph3d.h.

#define CS_SHADOW_VOLUME_FAIL1   4
 

Setup for carmack's reverse pass 1.

Definition at line 340 of file graph3d.h.

#define CS_SHADOW_VOLUME_FAIL2   5
 

Setup for carmack's reverse pass 2.

Definition at line 342 of file graph3d.h.

#define CS_SHADOW_VOLUME_FINISH   7
 

Restore states.

Definition at line 346 of file graph3d.h.

#define CS_SHADOW_VOLUME_PASS1   2
 

Setup for pass 1.

Definition at line 336 of file graph3d.h.

#define CS_SHADOW_VOLUME_PASS2   3
 

Setup for pass 2.

Definition at line 338 of file graph3d.h.

#define CS_SHADOW_VOLUME_USE   6
 

Setup for shadow masking.

Definition at line 344 of file graph3d.h.

#define CS_TEXTURE_2D   0x00000001
 

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

Definition at line 53 of file txtmgr.h.

#define CS_TEXTURE_3D   0x00000002
 

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

Definition at line 55 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 79 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 64 of file txtmgr.h.

#define CS_TEXTURE_NOFILTER   0x00000020
 

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

Definition at line 83 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 74 of file txtmgr.h.

#define CSDRAW_2DGRAPHICS   0x00000001
 

We're going to draw 2D graphics.

Definition at line 77 of file graph3d.h.

#define CSDRAW_3DGRAPHICS   0x00000002
 

We're going to draw 3D graphics.

Definition at line 79 of file graph3d.h.

#define CSDRAW_CLEARSCREEN   0x00000020
 

Clear frame buffer ?

Definition at line 83 of file graph3d.h.

#define CSDRAW_CLEARZBUFFER   0x00000010
 

Clear Z-buffer ?

Definition at line 81 of file graph3d.h.


Typedef Documentation

typedef G3DPolygonDP G3DPolygonDPF
 

Structure containing all info needed by DrawPolygonFlat (DPF).

Definition at line 530 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 53 of file rndbuf.h.

enum csRenderBufferLockType
 

Type of lock CS_BUF_LOCK_NORMAL: Just get a point to the buffer, nothing special CS_BUF_LOCK_RENDER: Special lock only to be used by renderer.

Definition at line 70 of file rndbuf.h.

Referenced by csRenderBufferLock< T >::csRenderBufferLock().

enum csRenderBufferType
 

Where the buffer is placed CS_BUF_INDEX is special and only to be used by indexbuffers.

Definition at line 45 of file rndbuf.h.

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 653 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.

Definition at line 706 of file graph3d.h.

enum csVertexAttrib
 

For NR: Vertex attributes.

Enumeration values:
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.
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.

Definition at line 185 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 139 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 350 of file graph3d.h.


Generated for Crystal Space by doxygen 1.2.18