All rendering and drawing operations for 2D and 3D can be found in this namespace. More...
All rendering and drawing operations for 2D and 3D can be found in this namespace.
typedef boost::function<void (ShaderClass* Table, const scene::MaterialNode* Object) sp::video::ShaderObjectCallback) |
Construction of the shader object callback function. A shader callback can be used to update the shader constants (or rather variables) before the shader is set and the object rendered. When a ShaderClass is bounded to a Mesh or a Billboard both parameters are always none zero and you do not need to check if they are valid pointers.
Table,: | Pointer to a ShaderClass object which is currently used. | |
Object,: | Pointer to a MaterialNode object which is currently used. |
typedef boost::function<void (ShaderClass* Table, const std::vector<TextureLayer*> &TexLayers) sp::video::ShaderSurfaceCallback) |
Construction of the shader surface callback. This is similar to "PFNSHADEROBJECTCALLBACKPROC" but in this case the callback will be called for each surface. You can update your shader settings for the individual textures.
typedef std::vector<TextureLayer*> sp::video::TextureLayerListType |
Internally used texture layer list type.
typedef boost::function<void (scene::Mesh* Obj, bool isBegin) sp::video::UserMaterialCallback) |
User material callback for renderable objects.
[in] | Obj | Pointer to the mesh object which is to be renderd. |
[in] | isBegin | Specifies whether the material setup begins or not. Use this information to enable material settings when the setup begins and disable them when the setup ends. |
typedef boost::function<void (scene::Mesh* Obj, const std::vector<MeshBuffer*> &LODSurfaceList, u32 LODIndex) sp::video::UserRenderCallback) |
User render callback for renderable objects.
[in] | Obj | Pointer to the mesh object which is to be renderd. |
[in] | LODSurfaceList | Specifies the LOD (level-of-detail) list of mesh buffers. This is the list which is to be rendered. Which level of detail is used depends on the distance to the view camera. |
[in] | LODIndex | Specifies the level-of-detail index. |
Blending modes for source and destination (or target): Blending = Source * SourceFactor + Dest * DestFactor.
Build shader flags. This is used for the two static functions "ShaderClass::getShaderVersion" and "ShaderClass::build".
Shader constant data types.
Cubemap directions.
Default textures will always be created at program start-up.
Deferred rendering flags.
DEFERREDFLAG_USE_TEXTURE_MATRIX |
Makes use of the texture transformation matrix. This will be used for the diffuse-, specular-, normal- and height map. |
DEFERREDFLAG_HAS_SPECULAR_MAP |
Enables individual specular map usage. If this option is enabled every model must have an additional texture (layer 1) with specular information. |
DEFERREDFLAG_HAS_LIGHT_MAP |
Enables individual light map usage. If this option is enabled every model must have an addition texture (layer 1 if there is no specular map, otherwise 2) with illumination data. Those lightmaps can be generated with the "SoftPixel Sandbox" or rather the lightmap-generator from this engine. |
DEFERREDFLAG_ALLOW_OVERBLENDING |
Allows the lighting to over-blend. By default disabled. |
DEFERREDFLAG_NORMAL_MAPPING |
Enables normal-mapping. If this option is enabled every model must have an additional texture (layer 1 if there is no specular map and no light map, otherwise 2 or 3) with normal vector information. |
DEFERREDFLAG_PARALLAX_MAPPING |
Enables parallax-occlusion mapping. If this option is enabled every model must have an additional texture (layer 2 if there is no specular map and no light map, otherwise 3 or 4) with height map information. This can be a gray-scaled texture. If the DEFERREDFLAG_NORMALMAP_XYZ_H option is enabled, no height map is needed. In that case the height map information is get from the normal map's alpha channel. This requires normal-mapping (DEFERREDFLAG_NORMAL_MAPPING). |
DEFERREDFLAG_NORMALMAP_XYZ_H |
Enables the normal map to also contain the height map data in the alpha channel. This this option is enabled no height map texture is used. This requires parallax-mapping (DEFERREDFLAG_PARALLAX_MAPPING). |
DEFERREDFLAG_SHADOW_MAPPING |
Enables shadow mapping. For this technique "variance shadow mapping" (VSM) is used for performance reasons. |
DEFERREDFLAG_GLOBAL_ILLUMINATION |
Enables global illumination. For this technique "reflective shadow maps" are used. This requires shadow-mapping (DEFERREDFLAG_SHADOW_MAPPING).
|
DEFERREDFLAG_BLOOM |
Enables the bloom effect. All glossy surfaces glow intensely. |
DEFERREDFLAG_DEBUG_GBUFFER |
This option can be used for debugging purposes. It renders the final image as four viewports containing the color buffer output, normal buffer output, depth buffer output and the final image. |
DEFERREDFLAG_DEBUG_GBUFFER_WORLDPOS |
This option can be used for debugging purposes. It renders the world-position for each pixel instead of its distance to the view camera. This requires gbuffer debugging (DEFERREDFLAG_DEBUG_GBUFFER). |
DEFERREDFLAG_DEBUG_GBUFFER_TEXCOORDS |
This option can be used for debugging purposes. It renders the texture coordinates as colors for each pixel instead of the diffuse colors. This requires gbuffer debugging (DEFERREDFLAG_DEBUG_GBUFFER). |
DEFERREDFLAG_DEBUG_VIRTUALPOINTLIGHTS |
This option can be used for debugging purposes. It renders all virtual points lights as small colored cubes. These virtual points lights are generated from the reflective shadow maps. This requires global illumination (DEFERREDFLAG_GLOBAL_ILLUMINATION). |
enum sp::video::EFogModes |
enum sp::video::EFogTypes |
Font creation flags.
Usage types for hardware buffers (MeshBuffer, ConstantBuffer etc.).
Internal renderer image buffer format for textures.
Image file formats.
Texture mapping generation coordinates.
Texture coordinate generation types which tell the renderer how to manipulate the vertices' texture coordinates.
MAPGEN_DISABLE |
Texture coordinates will not be manipulated and the user set vertices' texture coordinates are used (by default). |
MAPGEN_OBJECT_LINEAR |
Texture coordinates are computed by the local space coordinates. |
MAPGEN_EYE_LINEAR |
Texture coordinates are computed by the global space coordinates. |
MAPGEN_SPHERE_MAP |
Texture coordinates are computed for sphere mapping. |
MAPGEN_NORMAL_MAP |
Texture coordinates are computed for normal mapping. |
MAPGEN_REFLECTION_MAP |
Texture coordinates are computed for reflection-/ cube mapping. |
Image buffer pixel formats.
Data types for the renderer (vertex- and index buffer).
Render modes enumeration. This is used for internal usage to determine when several render states need to change, before rendering primites. This was introduced with version 3.2 to finally remove the begin/endDrawing2D/3D functions.
Renderable primitives with their list order.
Render states to enabled, disable or set video driver configurations in more detail (used for advanced rendering!).
RENDER_ALPHATEST |
Alpha test: if enabled an incomming pixel will only be rendered if the alpha channel passes the alpha test. |
RENDER_BLEND |
Blending: if enabled alpha blending will be proceeded. |
RENDER_COLORMATERIAL |
Color material: if enabled the vertices are colored by their vertex color, otherwise the object material color will be used for each vertex. |
RENDER_CULLFACE |
Face culling: if enabled a triangle will only be rendered if the front face is visible. |
RENDER_DEPTH |
Depth test: if enabled an incomming pixel will only be rendered if the depth value passes the depth test. |
RENDER_DITHER |
Dithering: if enabled a color change over will be rendered with dither effect (only with a 8 or 16 bit color format). |
RENDER_FOG |
Fog effect: if enabled fog effect is rendered. |
RENDER_LIGHTING |
Lighting: if enabled lighting computations are proceeded. |
RENDER_LINESMOOTH |
Lines smooth: if enabled 2D and 3D lines are rendered with anti aliasing (or rather smooth). |
RENDER_MULTISAMPLE |
Multi sample: if enabled anti-aliasing (or rather multi-sampling) will be proceeded. |
RENDER_NORMALIZE |
Normalize: if enabled each vertex's normal will be normalized by the hardware (this is used when objects are scaled). |
RENDER_POINTSMOOTH |
Points smooth: if enabled 2D and 3D points are rendered with anti aliasing (or rather smooth). |
RENDER_RESCALENORMAL |
Rescale normals: similiar to normalize normals with other calculation equations. |
RENDER_SCISSOR |
Scissor: if enabled a scissor rectangle is masked over the screen whereby each primitive (triangles, lines and points) are clipped inside. |
RENDER_STENCIL |
Stencil: if enabled an incomming pixel will only be rendered if it passes the stencil test (amongst others used for real-time shadow). |
RENDER_TEXTURE |
Texturing: if enabled texturing is activated, otherwise no subsequent 3D object will have any mapped texture. |
RENDER_TEXTURECUBEMAP |
Texture cube map: if enabled cube mapping is activated. |
RENDER_TEXTURE_LOD_BIAS |
Texture MIP-map LOD bias. Use an unsigned integer for this value. By default 0. |
Supported render systems.
Shader loading flags. Used when a shader will be loaded from file.
Shader types.
Shader model versions.
DUMMYSHADER_VERSION | |
GLSL_VERSION_1_20 |
GLSL Shader v.1.20. |
GLSL_VERSION_1_30 |
GLSL Shader v.1.30. |
GLSL_VERSION_1_40 |
GLSL Shader v.1.40. |
GLSL_VERSION_1_50 |
GLSL Shader v.1.50. |
GLSL_VERSION_3_30_6 |
GLSL Shader v.3.30.6. |
GLSL_VERSION_4_00_8 |
GLSL Shader v.4.00.8. |
HLSL_VERTEX_1_0 |
HLSL Vertex Shader v.1.0. |
HLSL_VERTEX_2_0 |
HLSL Vertex Shader v.2.0. |
HLSL_VERTEX_2_a |
HLSL Vertex Shader v.2.a. |
HLSL_VERTEX_3_0 |
HLSL Vertex Shader v.3.0. |
HLSL_VERTEX_4_0 |
HLSL Vertex Shader v.4.0. |
HLSL_VERTEX_4_1 |
HLSL Vertex Shader v.4.1. |
HLSL_VERTEX_5_0 |
HLSL Vertex Shader v.5.0. |
HLSL_PIXEL_1_0 |
HLSL Pixel Shader v.1.0. |
HLSL_PIXEL_1_1 |
HLSL Pixel Shader v.1.1. |
HLSL_PIXEL_1_2 |
HLSL Pixel Shader v.1.2. |
HLSL_PIXEL_1_3 |
HLSL Pixel Shader v.1.3. |
HLSL_PIXEL_1_4 |
HLSL Pixel Shader v.1.4. |
HLSL_PIXEL_2_0 |
HLSL Pixel Shader v.2.0. |
HLSL_PIXEL_2_a |
HLSL Pixel Shader v.2.a. |
HLSL_PIXEL_2_b |
HLSL Pixel Shader v.2.b. |
HLSL_PIXEL_3_0 |
HLSL Pixel Shader v.3.0. |
HLSL_PIXEL_4_0 |
HLSL Pixel Shader v.4.0. |
HLSL_PIXEL_4_1 |
HLSL Pixel Shader v.4.1. |
HLSL_PIXEL_5_0 |
HLSL Pixel Shader v.5.0. |
HLSL_GEOMETRY_4_0 |
HLSL Geometry Shader v.4.0. |
HLSL_GEOMETRY_4_1 |
HLSL Geometry Shader v.4.1. |
HLSL_GEOMETRY_5_0 |
HLSL Geometry Shader v.5.0. |
HLSL_COMPUTE_4_0 |
HLSL DirectCompute Shader v.4.0. |
HLSL_COMPUTE_4_1 |
HLSL DirectCompute Shader v.4.1. |
HLSL_COMPUTE_5_0 |
HLSL DirectCompute Shader v.5.0. |
HLSL_HULL_5_0 |
HSLL Tessellation Hull Shader v.5.0. |
HLSL_DOMAIN_5_0 |
HSLL Tessellation Domain Shader v.5.0. |
CG_VERSION_2_0 |
Cg Shader v.2.0. |
Shading types for 3D models. Decide about how the normals are computed.
Size comparisions types for depth- or alpha tests.
This enumeration contains all default texture-layer visiblity masks. You can also use your own bit masks, but it is recommended to use this default masks, so that your texture-layer lists work quite well with default sub render systems (such as the deferred-renderer).
Text drawing falgs.
Texture dimensions.
Texture environment types which tell the renderer how to produce incoming texels (texture pixels) for multi-texturing.
Texture minification- and magnification filters.
Texture generation falgs.
Standard texture layer types.
TEXLAYER_BASE |
Base texture layer. This has only the very basics information for texture mapping. It refers to the "TextureLayer" base class. |
TEXLAYER_STANDARD |
Standard texture layer. This is the default texture layer for mesh objects. It refers to the "TextureLayerStandard" class. |
TEXLAYER_RELIEF |
Texture layer for relief- (or rather parllax-occlusion-) mapping. It refers to the "TextureLayerRelief" class. |
TEXLAYER_CUSTOM |
Custom texture layer. If you write your own texture layer, use this type. |
TEXLAYER_DEFAULT |
Default texture layer.
|
Texture mip-map filters.
Vertex attribute types.
Vertex format flags.
Video feature support queries.
u32 sp::video::getAlpha | ( | u32 | Color | ) | [inline] |
u32 sp::video::getBlue | ( | u32 | Color | ) | [inline] |
u32 sp::video::getColor | ( | u32 | Red, | |
u32 | Green, | |||
u32 | Blue, | |||
u32 | Alpha | |||
) | [inline] |
u32 sp::video::getGreen | ( | u32 | Color | ) | [inline] |
u32 sp::video::getRed | ( | u32 | Color | ) | [inline] |
const c8* sp::video::DEB_ERR_LAYER_INCMP = "Texture layer type incompatible" |
const c8* sp::video::DEB_ERR_LAYER_RANGE = "Texture layer index out of range" |