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
|
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). |
|
No clipping required. (setting for clip_portal, clip_plane, or clip_z_plane). |
|
There is no clipper.
|
|
Clipper is optional.
|
|
Clipper is required.
|
|
Clipper is top-level.
|
|
Default material `ambient' parameter.
Definition at line 40 of file material.h. |
|
Default material `diffuse' parameter.
Definition at line 38 of file material.h. |
|
Default material `reflection' parameter.
Definition at line 42 of file material.h. |
|
=SRC+DST
|
|
=(1-alpha)*SRC + alpha*DST
|
|
=SRC
|
|
=(dstalpha)*SRC + DST
|
|
Flat shading.
|
|
color 0 is transparent
|
|
alpha = 0..FF (opaque..transparent)
|
|
SRC/DST mixing mode mask.
|
|
Use the mix mode of the mesh zmode. (NOTE: NOT VALID AS MESH ZMODE - only for shader pass mixmodes) |
|
=SRC*DST
|
|
=2*SRC*DST
|
|
=SRC + DST*(1-srcalpha)
|
|
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(). |
|
Macro for setting of alpha bits into mixmode (alpha between 0 and 255).
|
|
=(srcalpha)*SRC + DST
|
|
Tiling.
|
|
=DST
|
|
Attenuation of the light.
|
|
Diffuse color of the light.
|
|
Position of the light.
|
|
Specular color of the light.
|
|
Name string for the material "diffuse" texture.
Definition at line 53 of file material.h. |
|
Name string for old renderer: layer 1.
Definition at line 56 of file material.h. |
|
Name string for old renderer: layer 2.
Definition at line 58 of file material.h. |
|
Name string for old renderer: layer 3.
Definition at line 60 of file material.h. |
|
Name string for old renderer: layer 4.
Definition at line 62 of file material.h. |
|
Name string for the material "ambient" shader var.
Definition at line 47 of file material.h. |
|
Name string for the material "diffuse" shader var.
Definition at line 45 of file material.h. |
|
Name string for the material "flat color" shader var.
Definition at line 51 of file material.h. |
|
Name string for the material "reflection" shader var.
Definition at line 49 of file material.h. |
|
Clear stencil.
|
|
Setup for carmack's reverse pass 1.
|
|
Setup for carmack's reverse pass 2.
|
|
Restore states.
|
|
Setup for pass 1.
|
|
Setup for pass 2.
|
|
Setup for shadow masking.
|
|
You're going to use the texture for 2D drawing.
|
|
You're going to use the texture for 3D drawing.
|
|
This texture will not be tiled, and color lookups outside the 0..1 range will be clamped to the edge of the texture.
|
|
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. |
|
This texture will not be filtered, even if texture filtering is available.
|
|
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. |
|
We're going to draw 2D graphics.
|
|
We're going to draw 3D graphics.
|
|
Clear frame buffer ?
|
|
Clear Z-buffer ?
|
Enumeration Type Documentation
|
Particle heat function.
Definition at line 52 of file particles.h. |
|
Particle emit type.
Definition at line 62 of file particles.h. |
|
Particle force falloff type.
Definition at line 44 of file particles.h. |
|
Particle force type.
Definition at line 71 of file particles.h. |
|
Type of components.
Definition at line 59 of file rndbuf.h. Referenced by csRenderBuffer::GetComponentType(). |
|
Type of lock of a render buffer.
|
|
|
Masks for renderbuffer accessors.
|
|
Buffer usage type. Drivers may do some optimizations based on this value. Use a type that most closely matches the intended use.
Definition at line 48 of file rndbuf.h. Referenced by csRenderBuffer::GetBufferType(). |
|
Primitive type of a mesh.
|
|
Flags to influence the behaviour of DrawSimpleMesh().
|
|
For NR: Vertex attributes.
|
|
Z-buffer modes.
|
|
Graphics3D render state options.
|
Variable Documentation
|
Initial value: { sizeof (char), sizeof (unsigned char), sizeof (short), sizeof (unsigned short), sizeof (int), sizeof (unsigned int), sizeof (float), sizeof (double) }
|
Generated for Crystal Space by doxygen 1.3.9.1