CrystalSpace

Public API Reference

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

graph3d.h File Reference

3D graphics interface More...

#include "csutil/refarr.h"
#include "csutil/scf.h"
#include "csgeom/plane3.h"
#include "csgeom/vector2.h"
#include "csgeom/transfrm.h"
#include "csgeom/tri.h"
#include "csutil/cscolor.h"
#include "ivideo/rndbuf.h"
#include "ivideo/polyrender.h"

Go to the source code of this file.

Classes

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

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.

Enumerations

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


Detailed Description

3D graphics interface

Definition in file graph3d.h.


Generated for Crystal Space by doxygen 1.3.9.1