Loading...
Searching...
No Matches
irr::video Namespace Reference

The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done here. More...

## Classes

class | IGPUProgrammingServices
| Interface making it possible to create and use programs running on the GPU. More...
class | IImage
| Interface for software image data. More...
class | IImageLoader
| Class which is able to create a image from a file. More...
class | IImageWriter
| Interface for writing software image data. More...
class | IMaterialRenderer
| Interface for material rendering. More...
class | IMaterialRendererServices
| Interface providing some methods for changing advanced, internal states of a IVideoDriver. More...
struct | IRenderTarget
class | IShaderConstantSetCallBack
| Interface making it possible to set constants for gpu programs every frame. More...
class | ITexture
| Interface of a Video Driver dependent Texture. More...
class | IVideoDriver
| Interface to driver which is able to perform 2d and 3d graphics functions. More...
class | IVideoModeList
| A list of all available video modes. More...
struct | S3DVertex
| standard vertex used by the Irrlicht engine. More...
struct | S3DVertex2TCoords
| Vertex with two texture coordinates. More...
struct | S3DVertexTangents
| Vertex with a tangent and binormal vector. More...
class | SColor
| Class representing a 32 bit ARGB color. More...
class | SColorf
| Class representing a color with four floats. More...
class | SColorHSL
| Class representing a color in HSL format. More...
struct | SExposedVideoData
| structure for holding data describing a driver and operating system specific data. More...
struct | SLight
| structure for holding data describing a dynamic point light. More...
class | SMaterial
| Struct for holding parameters for a material renderer. More...
class | SMaterialLayer
| Struct for holding material parameters which exist per texture layer. More...
struct | SOverrideMaterial

## Enumerations

enum | E_ALPHA_SOURCE { EAS_NONE =0 , EAS_VERTEX_COLOR , EAS_TEXTURE }
| Source of the alpha value to take. More...
enum | E_ANTI_ALIASING_MODE { EAAM_OFF =0 , EAAM_SIMPLE =1 , EAAM_QUALITY =3 , EAAM_LINE_SMOOTH =4 , EAAM_POINT_SMOOTH =8 , EAAM_FULL_BASIC =15 , EAAM_ALPHA_TO_COVERAGE =16 }
| These flags are used to specify the anti-aliasing and smoothing modes. More...
enum | E_BLEND_FACTOR { EBF_ZERO = 0 , EBF_ONE , EBF_DST_COLOR , EBF_ONE_MINUS_DST_COLOR , EBF_SRC_COLOR , EBF_ONE_MINUS_SRC_COLOR , EBF_SRC_ALPHA , EBF_ONE_MINUS_SRC_ALPHA , EBF_DST_ALPHA , EBF_ONE_MINUS_DST_ALPHA , EBF_SRC_ALPHA_SATURATE }
| Flag for EMT_ONETEXTURE_BLEND, ( BlendFactor ) BlendFunc = source * sourceFactor + dest * destFactor. More...
enum | E_BLEND_OPERATION { EBO_NONE = 0 , EBO_ADD , EBO_SUBTRACT , EBO_REVSUBTRACT , EBO_MIN , EBO_MAX , EBO_MIN_FACTOR , EBO_MAX_FACTOR , EBO_MIN_ALPHA , EBO_MAX_ALPHA }
| Values defining the blend operation used when blend is enabled. More...
enum | E_COLOR_MATERIAL { ECM_NONE =0 , ECM_DIFFUSE , ECM_AMBIENT , ECM_EMISSIVE , ECM_SPECULAR , ECM_DIFFUSE_AND_AMBIENT }
| These flags allow to define the interpretation of vertex color when lighting is enabled. More...
enum | E_COLOR_PLANE { ECP_NONE =0 , ECP_ALPHA =1 , ECP_RED =2 , ECP_GREEN =4 , ECP_BLUE =8 , ECP_RGB =14 , ECP_ALL =15 }
| Enum values for enabling/disabling color planes for rendering. More...
enum | E_COMPARISON_FUNC { ECFN_NEVER =0 , ECFN_LESSEQUAL =1 , ECFN_EQUAL =2 , ECFN_LESS , ECFN_NOTEQUAL , ECFN_GREATEREQUAL , ECFN_GREATER , ECFN_ALWAYS }
| Comparison function, e.g. for depth buffer test. More...
enum | E_DRIVER_TYPE { EDT_NULL , EDT_SOFTWARE , EDT_BURNINGSVIDEO , EDT_DIRECT3D8 , EDT_DIRECT3D9 , EDT_OPENGL , EDT_COUNT }
| An enum for all types of drivers the Irrlicht Engine supports. More...
enum | E_FOG_TYPE { EFT_FOG_EXP =0 , EFT_FOG_LINEAR , EFT_FOG_EXP2 }
| Enum for the types of fog distributions to choose from. More...
enum | E_GEOMETRY_SHADER_TYPE { EGST_GS_4_0 = 0 , EGST_COUNT }
| Enum for supported geometry shader types. More...
enum | E_GPU_SHADING_LANGUAGE { EGSL_DEFAULT = 0 , EGSL_CG }
| Enumeration for different types of shading languages. More...
enum | E_INDEX_TYPE { EIT_16BIT = 0 , EIT_32BIT }
enum | E_LIGHT_TYPE { ELT_POINT , ELT_SPOT , ELT_DIRECTIONAL , ELT_COUNT }
| Enumeration for different types of lights. More...
enum | E_LOST_RESOURCE { ELR_DEVICE = 1 , ELR_TEXTURES = 2 , ELR_RTTS = 4 , ELR_HW_BUFFERS = 8 }
| enumeration for signaling resources which were lost after the last render cycle More...

enum

E_MATERIAL_FLAG {
EMF_WIREFRAME = 0x1 , EMF_POINTCLOUD = 0x2 , EMF_GOURAUD_SHADING = 0x4 , EMF_LIGHTING = 0x8 ,
EMF_ZBUFFER = 0x10 , EMF_ZWRITE_ENABLE = 0x20 , EMF_BACK_FACE_CULLING = 0x40 , EMF_FRONT_FACE_CULLING = 0x80 ,
EMF_BILINEAR_FILTER = 0x100 , EMF_TRILINEAR_FILTER = 0x200 , EMF_ANISOTROPIC_FILTER = 0x400 , EMF_FOG_ENABLE = 0x800 ,
EMF_NORMALIZE_NORMALS = 0x1000 , EMF_TEXTURE_WRAP = 0x2000 , EMF_ANTI_ALIASING = 0x4000 , EMF_COLOR_MASK = 0x8000 ,
EMF_COLOR_MATERIAL = 0x10000 , EMF_USE_MIP_MAPS = 0x20000 , EMF_BLEND_OPERATION = 0x40000 , EMF_POLYGON_OFFSET = 0x80000
}

| Material flags. More...

enum

E_MATERIAL_TYPE {
EMT_SOLID = 0 , EMT_SOLID_2_LAYER , EMT_LIGHTMAP , EMT_LIGHTMAP_ADD ,
EMT_LIGHTMAP_M2 , EMT_LIGHTMAP_M4 , EMT_LIGHTMAP_LIGHTING , EMT_LIGHTMAP_LIGHTING_M2 ,
EMT_LIGHTMAP_LIGHTING_M4 , EMT_DETAIL_MAP , EMT_SPHERE_MAP , EMT_REFLECTION_2_LAYER ,
EMT_TRANSPARENT_ADD_COLOR , EMT_TRANSPARENT_ALPHA_CHANNEL , EMT_TRANSPARENT_ALPHA_CHANNEL_REF , EMT_TRANSPARENT_VERTEX_ALPHA ,
EMT_TRANSPARENT_REFLECTION_2_LAYER , EMT_NORMAL_MAP_SOLID , EMT_NORMAL_MAP_TRANSPARENT_ADD_COLOR , EMT_NORMAL_MAP_TRANSPARENT_VERTEX_ALPHA ,
EMT_PARALLAX_MAP_SOLID , EMT_PARALLAX_MAP_TRANSPARENT_ADD_COLOR , EMT_PARALLAX_MAP_TRANSPARENT_VERTEX_ALPHA , EMT_ONETEXTURE_BLEND ,
EMT_FORCE_32BIT = 0x7fffffff
}

| Abstracted and easy to use fixed function/programmable pipeline material modes. More...
enum | E_MODULATE_FUNC { EMFN_MODULATE_1X = 1 , EMFN_MODULATE_2X = 2 , EMFN_MODULATE_4X = 4 }
| MaterialTypeParam: e.g. DirectX: D3DTOP_MODULATE, D3DTOP_MODULATE2X, D3DTOP_MODULATE4X. More...
enum | E_PIXEL_SHADER_TYPE { EPST_PS_1_1 = 0 , EPST_PS_1_2 , EPST_PS_1_3 , EPST_PS_1_4 , EPST_PS_2_0 , EPST_PS_2_a , EPST_PS_2_b , EPST_PS_3_0 , EPST_PS_4_0 , EPST_PS_4_1 , EPST_PS_5_0 , EPST_COUNT }
| Compile target enumeration for the addHighLevelShaderMaterial() method. More...
enum | E_POLYGON_OFFSET { EPO_BACK =0 , EPO_FRONT =1 }
| Flags for the definition of the polygon offset feature. More...
enum | E_RENDER_TARGET { ERT_FRAME_BUFFER =0 , ERT_RENDER_TEXTURE , ERT_MULTI_RENDER_TEXTURES , ERT_STEREO_LEFT_BUFFER , ERT_STEREO_RIGHT_BUFFER , ERT_STEREO_BOTH_BUFFERS , ERT_AUX_BUFFER0 , ERT_AUX_BUFFER1 , ERT_AUX_BUFFER2 , ERT_AUX_BUFFER3 , ERT_AUX_BUFFER4 }
| Special render targets, which usually map to dedicated hardware. More...
enum | E_TEXTURE_CLAMP { ETC_REPEAT = 0 , ETC_CLAMP , ETC_CLAMP_TO_EDGE , ETC_CLAMP_TO_BORDER , ETC_MIRROR , ETC_MIRROR_CLAMP , ETC_MIRROR_CLAMP_TO_EDGE , ETC_MIRROR_CLAMP_TO_BORDER }
| Texture coord clamp mode outside [0.0, 1.0]. More...
enum | E_TEXTURE_CREATION_FLAG { ETCF_ALWAYS_16_BIT = 0x00000001 , ETCF_ALWAYS_32_BIT = 0x00000002 , ETCF_OPTIMIZED_FOR_QUALITY = 0x00000004 , ETCF_OPTIMIZED_FOR_SPEED = 0x00000008 , ETCF_CREATE_MIP_MAPS = 0x00000010 , ETCF_NO_ALPHA_CHANNEL = 0x00000020 , ETCF_ALLOW_NON_POWER_2 = 0x00000040 , ETCF_FORCE_32_BIT_DO_NOT_USE = 0x7fffffff }
| Enumeration flags telling the video driver in which format textures should be created. More...
enum | E_TEXTURE_LOCK_MODE { ETLM_READ_WRITE = 0 , ETLM_READ_ONLY , ETLM_WRITE_ONLY }
| Enum for the mode for texture locking. Read-Only, write-only or read/write. More...
enum | E_TRANSFORMATION_STATE { ETS_VIEW = 0 , ETS_WORLD , ETS_PROJECTION , ETS_TEXTURE_0 , ETS_TEXTURE_1 , ETS_TEXTURE_2 , ETS_TEXTURE_3 , ETS_COUNT }
| enumeration for geometry transformation states More...
enum | E_VERTEX_SHADER_TYPE { EVST_VS_1_1 = 0 , EVST_VS_2_0 , EVST_VS_2_a , EVST_VS_3_0 , EVST_VS_4_0 , EVST_VS_4_1 , EVST_VS_5_0 , EVST_COUNT }
| Compile target enumeration for the addHighLevelShaderMaterial() method. More...
enum | E_VERTEX_TYPE { EVT_STANDARD = 0 , EVT_2TCOORDS , EVT_TANGENTS }
| Enumeration for all vertex types there are. More...

enum

E_VIDEO_DRIVER_FEATURE {
EVDF_RENDER_TO_TARGET = 0 , EVDF_HARDWARE_TL , EVDF_MULTITEXTURE , EVDF_BILINEAR_FILTER ,
EVDF_MIP_MAP , EVDF_MIP_MAP_AUTO_UPDATE , EVDF_STENCIL_BUFFER , EVDF_VERTEX_SHADER_1_1 ,
EVDF_VERTEX_SHADER_2_0 , EVDF_VERTEX_SHADER_3_0 , EVDF_PIXEL_SHADER_1_1 , EVDF_PIXEL_SHADER_1_2 ,
EVDF_PIXEL_SHADER_1_3 , EVDF_PIXEL_SHADER_1_4 , EVDF_PIXEL_SHADER_2_0 , EVDF_PIXEL_SHADER_3_0 ,
EVDF_ARB_VERTEX_PROGRAM_1 , EVDF_ARB_FRAGMENT_PROGRAM_1 , EVDF_ARB_GLSL , EVDF_HLSL ,
EVDF_TEXTURE_NSQUARE , EVDF_TEXTURE_NPOT , EVDF_FRAMEBUFFER_OBJECT , EVDF_VERTEX_BUFFER_OBJECT ,
EVDF_ALPHA_TO_COVERAGE , EVDF_COLOR_MASK , EVDF_MULTIPLE_RENDER_TARGETS , EVDF_MRT_BLEND ,
EVDF_MRT_COLOR_MASK , EVDF_MRT_BLEND_FUNC , EVDF_GEOMETRY_SHADER , EVDF_OCCLUSION_QUERY ,
EVDF_POLYGON_OFFSET , EVDF_BLEND_OPERATIONS , EVDF_TEXTURE_MATRIX , EVDF_CG ,
EVDF_COUNT
}

| enumeration for querying features of the video driver. More...
enum | ECOLOR_FORMAT { ECF_A1R5G5B5 = 0 , ECF_R5G6B5 , ECF_R8G8B8 , ECF_A8R8G8B8 , ECF_R16F , ECF_G16R16F , ECF_A16B16G16R16F , ECF_R32F , ECF_G32R32F , ECF_A32B32G32R32F , ECF_UNKNOWN }
| An enum for the color format of textures used by the Irrlicht Engine. More...

## Functions

u32 | A1R5G5B5toA8R8G8B8 (u16 color)
| Convert A8R8G8B8 Color from A1R5G5B5 color.
u16 | A1R5G5B5toR5G6B5 (u16 color)
| Returns R5G6B5 Color from A1R5G5B5 color.
u16 | A8R8G8B8toA1R5G5B5 (u32 color)
| Converts a 32bit (A8R8G8B8) color to a 16bit A1R5G5B5 color.
u16 | A8R8G8B8toR5G6B5 (u32 color)
| Converts a 32bit (A8R8G8B8) color to a 16bit R5G6B5 color.
u32 | getAlpha (u16 color)
| Returns the alpha component from A1R5G5B5 color.
s32 | getAverage (s16 color)
| Returns the average from a 16 bit A1R5G5B5 color.
u32 | getBlue (u16 color)
| Returns the blue component from A1R5G5B5 color.
u32 | getGreen (u16 color)
| Returns the green component from A1R5G5B5 color.
u32 | getRed (u16 color)
| Returns the red component from A1R5G5B5 color.
u32 | getVertexPitchFromType (E_VERTEX_TYPE vertexType)
f32 | pack_textureBlendFunc (const E_BLEND_FACTOR srcFact, const E_BLEND_FACTOR dstFact, const E_MODULATE_FUNC modulate=EMFN_MODULATE_1X, const u32 alphaSource=EAS_TEXTURE)
| EMT_ONETEXTURE_BLEND: pack srcFact, dstFact, Modulate and alpha source to MaterialTypeParam.
u16 | R5G6B5toA1R5G5B5 (u16 color)
| Returns A1R5G5B5 Color from R5G6B5 color.
u32 | R5G6B5toA8R8G8B8 (u16 color)
| Returns A8R8G8B8 Color from R5G6B5 color.
u16 | RGB16 (u32 r, u32 g, u32 b)
| Creates a 16 bit A1R5G5B5 color.
u16 | RGB16from16 (u16 r, u16 g, u16 b)
| Creates a 16bit A1R5G5B5 color, based on 16bit input values.
u16 | RGBA16 (u32 r, u32 g, u32 b, u32 a=0xFF)
| Creates a 16 bit A1R5G5B5 color.
bool | textureBlendFunc_hasAlpha (const E_BLEND_FACTOR factor)
| EMT_ONETEXTURE_BLEND: has BlendFactor Alphablending.
void | unpack_textureBlendFunc (E_BLEND_FACTOR &srcFact, E_BLEND_FACTOR &dstFact, E_MODULATE_FUNC &modulo, u32 &alphaSource, const f32 param)
| EMT_ONETEXTURE_BLEND: unpack srcFact & dstFact and Modulo to MaterialTypeParam.
u16 | X8R8G8B8toA1R5G5B5 (u32 color)
| Converts a 32bit (X8R8G8B8) color to a 16bit A1R5G5B5 color.

## Variables

const c8 *const | FogTypeNames []
const c8 *const | GEOMETRY_SHADER_TYPE_NAMES []
| String names for supported geometry shader types.
IRRLICHT_API SMaterial | IdentityMaterial
| global const identity Material
const c8 *const | LightTypeNames []
| Names for light types.
const u32 | MATERIAL_MAX_TEXTURES = _IRR_MATERIAL_MAX_TEXTURES_
| Maximum number of texture an SMaterial can have.
const c8 *const | PIXEL_SHADER_TYPE_NAMES []
| Names for all pixel shader types, each entry corresponds to a E_PIXEL_SHADER_TYPE entry.
const c8 *const | PolygonOffsetDirectionNames []
| Names for polygon offset direction.
const char *const | sBuiltInMaterialTypeNames []
| Array holding the built in material type names.
const char *const | sBuiltInVertexTypeNames []
| Array holding the built in vertex type names.
const c8 *const | VERTEX_SHADER_TYPE_NAMES []
| Names for all vertex shader types, each entry corresponds to a E_VERTEX_SHADER_TYPE entry.

## Detailed Description

The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done here.

## Enumeration Type Documentation

## E_ALPHA_SOURCE

enum irr::video::E_ALPHA_SOURCE

Source of the alpha value to take.

This is currently only supported in EMT_ONETEXTURE_BLEND. You can use an or'ed combination of values. Alpha values are modulated (multiplicated).

Enumerator
EAS_NONE | Use no alpha, somewhat redundant with other settings.
EAS_VERTEX_COLOR | Use vertex color alpha.
EAS_TEXTURE | Use texture alpha channel.

Definition at line 104 of file SMaterial.h.

## E_ANTI_ALIASING_MODE

enum irr::video::E_ANTI_ALIASING_MODE

These flags are used to specify the anti-aliasing and smoothing modes.

Techniques supported are multisampling, geometry smoothing, and alpha to coverage. Some drivers don't support a per-material setting of the anti-aliasing modes. In those cases, FSAA/multisampling is defined by the device mode chosen upon creation via irr::SIrrCreationParameters.

Enumerator
EAAM_OFF | Use to turn off anti-aliasing for this material.
EAAM_SIMPLE | Default anti-aliasing mode.
EAAM_QUALITY | High-quality anti-aliasing, not always supported, automatically enables SIMPLE mode.
EAAM_LINE_SMOOTH | Line smoothing.
EAAM_POINT_SMOOTH | point smoothing, often in software and slow, only with OpenGL
EAAM_FULL_BASIC | All typical anti-alias and smooth modes.
EAAM_ALPHA_TO_COVERAGE | Enhanced anti-aliasing for transparent materials. Usually used with EMT_TRANSPARENT_ALPHA_REF and multisampling.

Definition at line 158 of file SMaterial.h.

## E_BLEND_FACTOR

enum irr::video::E_BLEND_FACTOR

Flag for EMT_ONETEXTURE_BLEND, ( BlendFactor ) BlendFunc = source * sourceFactor + dest * destFactor.

Enumerator
EBF_ZERO | src & dest (0, 0, 0, 0)
EBF_ONE | src & dest (1, 1, 1, 1)
EBF_DST_COLOR | src (destR, destG, destB, destA)
EBF_ONE_MINUS_DST_COLOR | src (1-destR, 1-destG, 1-destB, 1-destA)
EBF_SRC_COLOR | dest (srcR, srcG, srcB, srcA)
EBF_ONE_MINUS_SRC_COLOR | dest (1-srcR, 1-srcG, 1-srcB, 1-srcA)
EBF_SRC_ALPHA | src & dest (srcA, srcA, srcA, srcA)
EBF_ONE_MINUS_SRC_ALPHA | src & dest (1-srcA, 1-srcA, 1-srcA, 1-srcA)
EBF_DST_ALPHA | src & dest (destA, destA, destA, destA)
EBF_ONE_MINUS_DST_ALPHA | src & dest (1-destA, 1-destA, 1-destA, 1-destA)
EBF_SRC_ALPHA_SATURATE | src (min(srcA, 1-destA), idem, ...)

Definition at line 23 of file SMaterial.h.

## E_BLEND_OPERATION

enum irr::video::E_BLEND_OPERATION

Values defining the blend operation used when blend is enabled.

Enumerator
EBO_NONE | No blending happens.
EBO_ADD | Default blending adds the color values.
EBO_SUBTRACT | This mode subtracts the color values.
EBO_REVSUBTRACT | This modes subtracts destination from source.
EBO_MIN | Choose minimum value of each color channel.
EBO_MAX | Choose maximum value of each color channel.
EBO_MIN_FACTOR | Choose minimum value of each color channel after applying blend factors, not widely supported.
EBO_MAX_FACTOR | Choose maximum value of each color channel after applying blend factors, not widely supported.
EBO_MIN_ALPHA | Choose minimum value of each color channel based on alpha value, not widely supported.
EBO_MAX_ALPHA | Choose maximum value of each color channel based on alpha value, not widely supported.

Definition at line 39 of file SMaterial.h.

## E_COLOR_MATERIAL

enum irr::video::E_COLOR_MATERIAL

These flags allow to define the interpretation of vertex color when lighting is enabled.

Without lighting being enabled the vertex color is the only value defining the fragment color. Once lighting is enabled, the four values for diffuse, ambient, emissive, and specular take over. With these flags it is possible to define which lighting factor shall be defined by the vertex color instead of the lighting factor which is the same for all faces of that material. The default is to use vertex color for the diffuse value, another pretty common value is to use vertex color for both diffuse and ambient factor.

Enumerator
ECM_NONE | Don't use vertex color for lighting.
ECM_DIFFUSE | Use vertex color for diffuse light, this is default.
ECM_AMBIENT | Use vertex color for ambient light.
ECM_EMISSIVE | Use vertex color for emissive light.
ECM_SPECULAR | Use vertex color for specular light.
ECM_DIFFUSE_AND_AMBIENT | Use vertex color for both diffuse and ambient light.

Definition at line 184 of file SMaterial.h.

## E_COLOR_PLANE

enum irr::video::E_COLOR_PLANE

Enum values for enabling/disabling color planes for rendering.

Enumerator
ECP_NONE | No color enabled.
ECP_ALPHA | Alpha enabled.
ECP_RED | Red enabled.
ECP_GREEN | Green enabled.
ECP_BLUE | Blue enabled.
ECP_RGB | All colors, no alpha.
ECP_ALL | All planes enabled.

Definition at line 83 of file SMaterial.h.

## E_COMPARISON_FUNC

enum irr::video::E_COMPARISON_FUNC

Comparison function, e.g. for depth buffer test.

Enumerator
ECFN_NEVER | Test never succeeds, this equals disable.
ECFN_LESSEQUAL | <= test, default for e.g. depth test
ECFN_EQUAL | Exact equality.
ECFN_LESS | exclusive less comparison, i.e. <
ECFN_NOTEQUAL | Succeeds almost always, except for exact equality.
ECFN_GREATEREQUAL | >= test
ECFN_GREATER | inverse of <=
ECFN_ALWAYS | test succeeds always

Definition at line 62 of file SMaterial.h.

## E_DRIVER_TYPE

enum irr::video::E_DRIVER_TYPE

An enum for all types of drivers the Irrlicht Engine supports.

Enumerator
EDT_NULL | Null driver, useful for applications to run the engine without visualisation. The null device is able to load textures, but does not render and display any graphics.
EDT_SOFTWARE | The Irrlicht Engine Software renderer. Runs on all platforms, with every hardware. It should only be used for 2d graphics, but it can also perform some primitive 3d functions. These 3d drawing functions are quite fast, but very inaccurate, and don't even support clipping in 3D mode.

EDT_BURNINGSVIDEO

The Burning's Software Renderer, an alternative software renderer.

Basically it can be described as the Irrlicht Software renderer on steroids. It rasterizes 3D geometry perfectly: It is able to perform correct 3d clipping, perspective correct texture mapping, perspective correct color mapping, and renders sub pixel correct, sub texel correct primitives. In addition, it does bilinear texel filtering and supports more materials than the EDT_SOFTWARE driver. This renderer has been written entirely by Thomas Alten, thanks a lot for this huge contribution.

EDT_DIRECT3D8 | Direct3D8 device, only available on Win32 platforms. Performs hardware accelerated rendering of 3D and 2D primitives.
EDT_DIRECT3D9 | Direct3D 9 device, only available on Win32 platforms. Performs hardware accelerated rendering of 3D and 2D primitives.
EDT_OPENGL | OpenGL device, available on most platforms. Performs hardware accelerated rendering of 3D and 2D primitives.
EDT_COUNT | No driver, just for counting the elements.

Definition at line 14 of file EDriverTypes.h.

## E_FOG_TYPE

enum irr::video::E_FOG_TYPE

Enum for the types of fog distributions to choose from.

Enumerator
EFT_FOG_EXP |
EFT_FOG_LINEAR |
EFT_FOG_EXP2 |

Definition at line 133 of file IVideoDriver.h.

## E_GEOMETRY_SHADER_TYPE

enum irr::video::E_GEOMETRY_SHADER_TYPE

Enum for supported geometry shader types.

Enumerator
EGST_GS_4_0 |
EGST_COUNT | This is not a type, but a value indicating how much types there are.

Definition at line 72 of file EShaderTypes.h.

## E_GPU_SHADING_LANGUAGE

enum irr::video::E_GPU_SHADING_LANGUAGE

Enumeration for different types of shading languages.

Enumerator
EGSL_DEFAULT | The default language, so HLSL for Direct3D and GLSL for OpenGL.
EGSL_CG | Cg shading language.*‍/.

Definition at line 28 of file IGPUProgrammingServices.h.

## E_INDEX_TYPE

enum irr::video::E_INDEX_TYPE

Enumerator
EIT_16BIT |
EIT_32BIT |

Definition at line 15 of file SVertexIndex.h.

## E_LIGHT_TYPE

enum irr::video::E_LIGHT_TYPE

Enumeration for different types of lights.

Enumerator
ELT_POINT | point light, it has a position in space and radiates light in all directions
ELT_SPOT | spot light, it has a position in space, a direction, and a limited cone of influence
ELT_DIRECTIONAL | directional light, coming from a direction from an infinite distance
ELT_COUNT | Only used for counting the elements of this enum.

Definition at line 16 of file SLight.h.

## E_LOST_RESOURCE

enum irr::video::E_LOST_RESOURCE

enumeration for signaling resources which were lost after the last render cycle

These values can be signaled by the driver, telling the app that some resources were lost and need to be recreated. Irrlicht will sometimes recreate the actual objects, but the content needs to be recreated by the application.

Enumerator
ELR_DEVICE | The whole device/driver is lost.
ELR_TEXTURES | All texture are lost, rare problem.
ELR_RTTS | The Render Target Textures are lost, typical problem for D3D.
ELR_HW_BUFFERS | The HW buffers are lost, will be recreated automatically, but might require some more time this frame.

Definition at line 92 of file IVideoDriver.h.

## E_MATERIAL_FLAG

enum irr::video::E_MATERIAL_FLAG

Material flags.

Enumerator
EMF_WIREFRAME | Draw as wireframe or filled triangles? Default: false.
EMF_POINTCLOUD | Draw as point cloud or filled triangles? Default: false.
EMF_GOURAUD_SHADING | Flat or Gouraud shading? Default: true.
EMF_LIGHTING | Will this material be lighted? Default: true.
EMF_ZBUFFER | Is the ZBuffer enabled? Default: true.
EMF_ZWRITE_ENABLE | May be written to the zbuffer or is it readonly. Default: true. This flag is ignored, if the material type is a transparent type.
EMF_BACK_FACE_CULLING | Is backface culling enabled? Default: true.
EMF_FRONT_FACE_CULLING | Is frontface culling enabled? Default: false. Overrides EMF_BACK_FACE_CULLING if both are enabled.
EMF_BILINEAR_FILTER | Is bilinear filtering enabled? Default: true.
EMF_TRILINEAR_FILTER | Is trilinear filtering enabled? Default: false. If the trilinear filter flag is enabled, the bilinear filtering flag is ignored.
EMF_ANISOTROPIC_FILTER | Is anisotropic filtering? Default: false. In Irrlicht you can use anisotropic texture filtering in conjunction with bilinear or trilinear texture filtering to improve rendering results. Primitives will look less blurry with this flag switched on.
EMF_FOG_ENABLE | Is fog enabled? Default: false.
EMF_NORMALIZE_NORMALS | Normalizes normals. Default: false. You can enable this if you need to scale a dynamic lighted model. Usually, its normals will get scaled too then and it will get darker. If you enable the EMF_NORMALIZE_NORMALS flag, the normals will be normalized again, and the model will look as bright as it should.
EMF_TEXTURE_WRAP | Access to all layers texture wrap settings. Overwrites separate layer settings.
EMF_ANTI_ALIASING | AntiAliasing mode.
EMF_COLOR_MASK | ColorMask bits, for enabling the color planes.
EMF_COLOR_MATERIAL | ColorMaterial enum for vertex color interpretation.
EMF_USE_MIP_MAPS | Flag for enabling/disabling mipmap usage.
EMF_BLEND_OPERATION | Flag for blend operation.
EMF_POLYGON_OFFSET | Flag for polygon offset.

Definition at line 14 of file EMaterialFlags.h.

## E_MATERIAL_TYPE

enum irr::video::E_MATERIAL_TYPE

Abstracted and easy to use fixed function/programmable pipeline material modes.

Enumerator
EMT_SOLID | Standard solid material. Only first texture is used, which is supposed to be the diffuse material.
EMT_SOLID_2_LAYER | Solid material with 2 texture layers. The second is blended onto the first using the alpha value of the vertex colors. This material is currently not implemented in OpenGL.
EMT_LIGHTMAP | Material type with standard lightmap technique. There should be 2 textures: The first texture layer is a diffuse map, the second is a light map. Dynamic light is ignored.
EMT_LIGHTMAP_ADD | Material type with lightmap technique like EMT_LIGHTMAP. But lightmap and diffuse texture are added instead of modulated.
EMT_LIGHTMAP_M2 | Material type with standard lightmap technique. There should be 2 textures: The first texture layer is a diffuse map, the second is a light map. Dynamic light is ignored. The texture colors are effectively multiplied by 2 for brightening. Like known in DirectX as D3DTOP_MODULATE2X.
EMT_LIGHTMAP_M4 | Material type with standard lightmap technique. There should be 2 textures: The first texture layer is a diffuse map, the second is a light map. Dynamic light is ignored. The texture colors are effectively multiplyied by 4 for brightening. Like known in DirectX as D3DTOP_MODULATE4X.
EMT_LIGHTMAP_LIGHTING | Like EMT_LIGHTMAP, but also supports dynamic lighting.
EMT_LIGHTMAP_LIGHTING_M2 | Like EMT_LIGHTMAP_M2, but also supports dynamic lighting.
EMT_LIGHTMAP_LIGHTING_M4 | Like EMT_LIGHTMAP_4, but also supports dynamic lighting.

EMT_DETAIL_MAP

Detail mapped material.

The first texture is diffuse color map, the second is added to this and usually displayed with a bigger scale value so that it adds more detail. The detail map is added to the diffuse map using ADD_SIGNED, so that it is possible to add and subtract color from the diffuse map. For example a value of (127,127,127) will not change the appearance of the diffuse map at all. Often used for terrain rendering.

EMT_SPHERE_MAP | Look like a reflection of the environment around it. To make this possible, a texture called 'sphere map' is used, which must be set as the first texture.
EMT_REFLECTION_2_LAYER | A reflecting material with an optional non reflecting texture layer. The reflection map should be set as first texture.

EMT_TRANSPARENT_ADD_COLOR

A transparent material.

Only the first texture is used. The new color is calculated by simply adding the source color and the dest color. This means if for example a billboard using a texture with black background and a red circle on it is drawn with this material, the result is that only the red circle will be drawn a little bit transparent, and everything which was black is 100% transparent and not visible. This material type is useful for particle effects.

EMT_TRANSPARENT_ALPHA_CHANNEL

Makes the material transparent based on the texture alpha channel.

The final color is blended together from the destination color and the texture color, using the alpha channel value as blend factor. Only first texture is used. If you are using this material with small textures, it is a good idea to load the texture in 32 bit mode (video::IVideoDriver::setTextureCreationFlag()). Also, an alpha ref is used, which can be manipulated using SMaterial::MaterialTypeParam. This value controls how sharp the edges become when going from a transparent to a solid spot on the texture.

EMT_TRANSPARENT_ALPHA_CHANNEL_REF

Makes the material transparent based on the texture alpha channel.

If the alpha channel value is greater than 127, a pixel is written to the target, otherwise not. This material does not use alpha blending and is a lot faster than EMT_TRANSPARENT_ALPHA_CHANNEL. It is ideal for drawing stuff like leafes of plants, because the borders are not blurry but sharp. Only first texture is used. If you are using this material with small textures and 3d object, it is a good idea to load the texture in 32 bit mode (video::IVideoDriver::setTextureCreationFlag()).

EMT_TRANSPARENT_VERTEX_ALPHA | Makes the material transparent based on the vertex alpha value.
EMT_TRANSPARENT_REFLECTION_2_LAYER | A transparent reflecting material with an optional additional non reflecting texture layer. The reflection map should be set as first texture. The transparency depends on the alpha value in the vertex colors. A texture which will not reflect can be set as second texture. Please note that this material type is currently not 100% implemented in OpenGL.

EMT_NORMAL_MAP_SOLID

A solid normal map renderer.

First texture is the color map, the second should be the normal map. Note that you should use this material only when drawing geometry consisting of vertices of type S3DVertexTangents (EVT_TANGENTS). You can convert any mesh into this format using IMeshManipulator::createMeshWithTangents() (See SpecialFX2 Tutorial). This shader runs on vertex shader 1.1 and pixel shader 1.1 capable hardware and falls back to a fixed function lighted material if this hardware is not available. Only two lights are supported by this shader, if there are more, the nearest two are chosen.

EMT_NORMAL_MAP_TRANSPARENT_ADD_COLOR

A transparent normal map renderer.

First texture is the color map, the second should be the normal map. Note that you should use this material only when drawing geometry consisting of vertices of type S3DVertexTangents (EVT_TANGENTS). You can convert any mesh into this format using IMeshManipulator::createMeshWithTangents() (See SpecialFX2 Tutorial). This shader runs on vertex shader 1.1 and pixel shader 1.1 capable hardware and falls back to a fixed function lighted material if this hardware is not available. Only two lights are supported by this shader, if there are more, the nearest two are chosen.

EMT_NORMAL_MAP_TRANSPARENT_VERTEX_ALPHA

A transparent (based on the vertex alpha value) normal map renderer.

First texture is the color map, the second should be the normal map. Note that you should use this material only when drawing geometry consisting of vertices of type S3DVertexTangents (EVT_TANGENTS). You can convert any mesh into this format using IMeshManipulator::createMeshWithTangents() (See SpecialFX2 Tutorial). This shader runs on vertex shader 1.1 and pixel shader 1.1 capable hardware and falls back to a fixed function lighted material if this hardware is not available. Only two lights are supported by this shader, if there are more, the nearest two are chosen.

EMT_PARALLAX_MAP_SOLID

Just like EMT_NORMAL_MAP_SOLID, but uses parallax mapping.

Looks a lot more realistic. This only works when the hardware supports at least vertex shader 1.1 and pixel shader 1.4. First texture is the color map, the second should be the normal map. The normal map texture should contain the height value in the alpha component. The IVideoDriver::makeNormalMapTexture() method writes this value automatically when creating normal maps from a heightmap when using a 32 bit texture. The height scale of the material (affecting the bumpiness) is being controlled by the SMaterial::MaterialTypeParam member. If set to zero, the default value (0.02f) will be applied. Otherwise the value set in SMaterial::MaterialTypeParam is taken. This value depends on with which scale the texture is mapped on the material. Too high or low values of MaterialTypeParam can result in strange artifacts.

EMT_PARALLAX_MAP_TRANSPARENT_ADD_COLOR | A material like EMT_PARALLAX_MAP_SOLID, but transparent. Using EMT_TRANSPARENT_ADD_COLOR as base material.
EMT_PARALLAX_MAP_TRANSPARENT_VERTEX_ALPHA | A material like EMT_PARALLAX_MAP_SOLID, but transparent. Using EMT_TRANSPARENT_VERTEX_ALPHA as base material.
EMT_ONETEXTURE_BLEND | BlendFunc = source * sourceFactor + dest * destFactor ( E_BLEND_FUNC ). Using only first texture. Generic blending method.
EMT_FORCE_32BIT | This value is not used. It only forces this enumeration to compile to 32 bit.

Definition at line 14 of file EMaterialTypes.h.

## E_MODULATE_FUNC

enum irr::video::E_MODULATE_FUNC

MaterialTypeParam: e.g. DirectX: D3DTOP_MODULATE, D3DTOP_MODULATE2X, D3DTOP_MODULATE4X.

Enumerator
EMFN_MODULATE_1X |
EMFN_MODULATE_2X |
EMFN_MODULATE_4X |

Definition at line 54 of file SMaterial.h.

## E_PIXEL_SHADER_TYPE

enum irr::video::E_PIXEL_SHADER_TYPE

Compile target enumeration for the addHighLevelShaderMaterial() method.

Enumerator
EPST_PS_1_1 |
EPST_PS_1_2 |
EPST_PS_1_3 |
EPST_PS_1_4 |
EPST_PS_2_0 |
EPST_PS_2_a |
EPST_PS_2_b |
EPST_PS_3_0 |
EPST_PS_4_0 |
EPST_PS_4_1 |
EPST_PS_5_0 |
EPST_COUNT | This is not a type, but a value indicating how much types there are.

Definition at line 38 of file EShaderTypes.h.

## E_POLYGON_OFFSET

enum irr::video::E_POLYGON_OFFSET

Flags for the definition of the polygon offset feature.

These flags define whether the offset should be into the screen, or towards the eye.

Enumerator
EPO_BACK | Push pixel towards the far plane, away from the eye. This is typically used for rendering inner areas.
EPO_FRONT | Pull pixels towards the camera. This is typically used for polygons which should appear on top of other elements, such as decals.

Definition at line 202 of file SMaterial.h.

## E_RENDER_TARGET

enum irr::video::E_RENDER_TARGET

Special render targets, which usually map to dedicated hardware.

These render targets (besides 0 and 1) need not be supported by gfx cards

Enumerator
ERT_FRAME_BUFFER | Render target is the main color frame buffer.
ERT_RENDER_TEXTURE | Render target is a render texture.
ERT_MULTI_RENDER_TEXTURES | Multi-Render target textures.
ERT_STEREO_LEFT_BUFFER | Render target is the main color frame buffer.
ERT_STEREO_RIGHT_BUFFER | Render target is the right color buffer (left is the main buffer).
ERT_STEREO_BOTH_BUFFERS | Render to both stereo buffers at once.
ERT_AUX_BUFFER0 | Auxiliary buffer 0.
ERT_AUX_BUFFER1 | Auxiliary buffer 1.
ERT_AUX_BUFFER2 | Auxiliary buffer 2.
ERT_AUX_BUFFER3 | Auxiliary buffer 3.
ERT_AUX_BUFFER4 | Auxiliary buffer 4.

Definition at line 106 of file IVideoDriver.h.

## E_TEXTURE_CLAMP

enum irr::video::E_TEXTURE_CLAMP

Texture coord clamp mode outside [0.0, 1.0].

Enumerator
ETC_REPEAT | Texture repeats.
ETC_CLAMP | Texture is clamped to the last pixel.
ETC_CLAMP_TO_EDGE | Texture is clamped to the edge pixel.
ETC_CLAMP_TO_BORDER | Texture is clamped to the border pixel (if exists).
ETC_MIRROR | Texture is alternatingly mirrored (0..1..0..1..0..).
ETC_MIRROR_CLAMP | Texture is mirrored once and then clamped (0..1..0).
ETC_MIRROR_CLAMP_TO_EDGE | Texture is mirrored once and then clamped to edge.
ETC_MIRROR_CLAMP_TO_BORDER | Texture is mirrored once and then clamped to border.

Definition at line 18 of file SMaterialLayer.h.

## E_TEXTURE_CREATION_FLAG

enum irr::video::E_TEXTURE_CREATION_FLAG

Enumeration flags telling the video driver in which format textures should be created.

Enumerator

ETCF_ALWAYS_16_BIT

Forces the driver to create 16 bit textures always, independent of which format the file on disk has. When choosing this you may lose some color detail, but gain much speed and memory. 16 bit textures can be transferred twice as fast as 32 bit textures and only use half of the space in memory. When using this flag, it does not make sense to use the flags ETCF_ALWAYS_32_BIT, ETCF_OPTIMIZED_FOR_QUALITY, or ETCF_OPTIMIZED_FOR_SPEED at the same time.

ETCF_ALWAYS_32_BIT

Forces the driver to create 32 bit textures always, independent of which format the file on disk has. Please note that some drivers (like the software device) will ignore this, because they are only able to create and use 16 bit textures. When using this flag, it does not make sense to use the flags ETCF_ALWAYS_16_BIT, ETCF_OPTIMIZED_FOR_QUALITY, or ETCF_OPTIMIZED_FOR_SPEED at the same time.

ETCF_OPTIMIZED_FOR_QUALITY | Lets the driver decide in which format the textures are created and tries to make the textures look as good as possible. Usually it simply chooses the format in which the texture was stored on disk. When using this flag, it does not make sense to use the flags ETCF_ALWAYS_16_BIT, ETCF_ALWAYS_32_BIT, or ETCF_OPTIMIZED_FOR_SPEED at the same time.
ETCF_OPTIMIZED_FOR_SPEED | Lets the driver decide in which format the textures are created and tries to create them maximizing render speed. When using this flag, it does not make sense to use the flags ETCF_ALWAYS_16_BIT, ETCF_ALWAYS_32_BIT, or ETCF_OPTIMIZED_FOR_QUALITY, at the same time.
ETCF_CREATE_MIP_MAPS | Automatically creates mip map levels for the textures.
ETCF_NO_ALPHA_CHANNEL | Discard any alpha layer and use non-alpha color format.
ETCF_ALLOW_NON_POWER_2 | Allow the Driver to use Non-Power-2-Textures. BurningVideo can handle Non-Power-2 Textures in 2D (GUI), but not in 3D.
ETCF_FORCE_32_BIT_DO_NOT_USE | This flag is never used, it only forces the compiler to compile these enumeration values to 32 bit.

Definition at line 22 of file ITexture.h.

## E_TEXTURE_LOCK_MODE

enum irr::video::E_TEXTURE_LOCK_MODE

Enum for the mode for texture locking. Read-Only, write-only or read/write.

Enumerator
ETLM_READ_WRITE | The default mode. Texture can be read and written to.
ETLM_READ_ONLY | Read only. The texture is downloaded, but not uploaded again. Often used to read back shader generated textures.
ETLM_WRITE_ONLY | Write only. The texture is not downloaded and might be uninitialised. The updated texture is uploaded to the GPU. Used for initialising the shader from the CPU.

Definition at line 74 of file ITexture.h.

## E_TRANSFORMATION_STATE

enum irr::video::E_TRANSFORMATION_STATE

enumeration for geometry transformation states

Enumerator
ETS_VIEW | View transformation.
ETS_WORLD | World transformation.
ETS_PROJECTION | Projection transformation.
ETS_TEXTURE_0 | Texture transformation.
ETS_TEXTURE_1 | Texture transformation.
ETS_TEXTURE_2 | Texture transformation.
ETS_TEXTURE_3 | Texture transformation.
ETS_COUNT | Not used.

Definition at line 52 of file IVideoDriver.h.

## E_VERTEX_SHADER_TYPE

enum irr::video::E_VERTEX_SHADER_TYPE

Compile target enumeration for the addHighLevelShaderMaterial() method.

Enumerator
EVST_VS_1_1 |
EVST_VS_2_0 |
EVST_VS_2_a |
EVST_VS_3_0 |
EVST_VS_4_0 |
EVST_VS_4_1 |
EVST_VS_5_0 |
EVST_COUNT | This is not a type, but a value indicating how much types there are.

Definition at line 12 of file EShaderTypes.h.

## E_VERTEX_TYPE

enum irr::video::E_VERTEX_TYPE

Enumeration for all vertex types there are.

Enumerator
EVT_STANDARD | Standard vertex type used by the Irrlicht engine, video::S3DVertex.
EVT_2TCOORDS | Vertex with two texture coordinates, video::S3DVertex2TCoords. Usually used for geometry with lightmaps or other special materials.
EVT_TANGENTS | Vertex with a tangent and binormal vector, video::S3DVertexTangents. Usually used for tangent space normal mapping.

Definition at line 18 of file S3DVertex.h.

## E_VIDEO_DRIVER_FEATURE

enum irr::video::E_VIDEO_DRIVER_FEATURE

enumeration for querying features of the video driver.

Enumerator
EVDF_RENDER_TO_TARGET | Is driver able to render to a surface?
EVDF_HARDWARE_TL | Is hardeware transform and lighting supported?
EVDF_MULTITEXTURE | Are multiple textures per material possible?
EVDF_BILINEAR_FILTER | Is driver able to render with a bilinear filter applied?
EVDF_MIP_MAP | Can the driver handle mip maps?
EVDF_MIP_MAP_AUTO_UPDATE | Can the driver update mip maps automatically?
EVDF_STENCIL_BUFFER | Are stencilbuffers switched on and does the device support stencil buffers?
EVDF_VERTEX_SHADER_1_1 | Is Vertex Shader 1.1 supported?
EVDF_VERTEX_SHADER_2_0 | Is Vertex Shader 2.0 supported?
EVDF_VERTEX_SHADER_3_0 | Is Vertex Shader 3.0 supported?
EVDF_PIXEL_SHADER_1_1 | Is Pixel Shader 1.1 supported?
EVDF_PIXEL_SHADER_1_2 | Is Pixel Shader 1.2 supported?
EVDF_PIXEL_SHADER_1_3 | Is Pixel Shader 1.3 supported?
EVDF_PIXEL_SHADER_1_4 | Is Pixel Shader 1.4 supported?
EVDF_PIXEL_SHADER_2_0 | Is Pixel Shader 2.0 supported?
EVDF_PIXEL_SHADER_3_0 | Is Pixel Shader 3.0 supported?
EVDF_ARB_VERTEX_PROGRAM_1 | Are ARB vertex programs v1.0 supported?
EVDF_ARB_FRAGMENT_PROGRAM_1 | Are ARB fragment programs v1.0 supported?
EVDF_ARB_GLSL | Is GLSL supported?
EVDF_HLSL | Is HLSL supported?
EVDF_TEXTURE_NSQUARE | Are non-square textures supported?
EVDF_TEXTURE_NPOT | Are non-power-of-two textures supported?
EVDF_FRAMEBUFFER_OBJECT | Are framebuffer objects supported?
EVDF_VERTEX_BUFFER_OBJECT | Are vertex buffer objects supported?
EVDF_ALPHA_TO_COVERAGE | Supports Alpha To Coverage.
EVDF_COLOR_MASK | Supports Color masks (disabling color planes in output).
EVDF_MULTIPLE_RENDER_TARGETS | Supports multiple render targets at once.
EVDF_MRT_BLEND | Supports separate blend settings for multiple render targets.
EVDF_MRT_COLOR_MASK | Supports separate color masks for multiple render targets.
EVDF_MRT_BLEND_FUNC | Supports separate blend functions for multiple render targets.
EVDF_GEOMETRY_SHADER | Supports geometry shaders.
EVDF_OCCLUSION_QUERY | Supports occlusion queries.
EVDF_POLYGON_OFFSET | Supports polygon offset/depth bias for avoiding z-fighting.
EVDF_BLEND_OPERATIONS | Support for different blend functions. Without, only ADD is available.
EVDF_TEXTURE_MATRIX | Support for texture coord transformation via texture matrix.
EVDF_CG | Support for NVidia's CG shader language.
EVDF_COUNT | Only used for counting the elements of this enum.

Definition at line 14 of file EDriverFeatures.h.

## ECOLOR_FORMAT

enum irr::video::ECOLOR_FORMAT

An enum for the color format of textures used by the Irrlicht Engine.

A color format specifies how color information is stored.

Enumerator
ECF_A1R5G5B5 | 16 bit color format used by the software driver. It is thus preferred by all other irrlicht engine video drivers. There are 5 bits for every color component, and a single bit is left for alpha information.
ECF_R5G6B5 | Standard 16 bit color format.
ECF_R8G8B8 | 24 bit color, no alpha channel, but 8 bit for red, green and blue.
ECF_A8R8G8B8 | Default 32 bit color format. 8 bits are used for every component: red, green, blue and alpha.
ECF_R16F | 16 bit floating point format using 16 bits for the red channel. Floating Point formats. The following formats may only be used for render target textures.
ECF_G16R16F | 32 bit floating point format using 16 bits for the red channel and 16 bits for the green channel.
ECF_A16B16G16R16F | 64 bit floating point format 16 bits are used for the red, green, blue and alpha channels.
ECF_R32F | 32 bit floating point format using 32 bits for the red channel.
ECF_G32R32F | 64 bit floating point format using 32 bits for the red channel and 32 bits for the green channel.
ECF_A32B32G32R32F | 128 bit floating point format. 32 bits are used for the red, green, blue and alpha channels.
ECF_UNKNOWN | Unknown color format:

Definition at line 17 of file SColor.h.

## Function Documentation

## A1R5G5B5toA8R8G8B8()

u32 irr::video::A1R5G5B5toA8R8G8B8 | ( | u16 | color | ) |

inline

Convert A8R8G8B8 Color from A1R5G5B5 color.

build a nicer 32bit Color by extending dest lower bits with source high bits.

Definition at line 117 of file SColor.h.

Referenced by irr::video::SColor::setData().

## A1R5G5B5toR5G6B5()

u16 irr::video::A1R5G5B5toR5G6B5 | ( | u16 | color | ) |

inline

Returns R5G6B5 Color from A1R5G5B5 color.

Definition at line 145 of file SColor.h.

## A8R8G8B8toA1R5G5B5()

u16 irr::video::A8R8G8B8toA1R5G5B5 | ( | u32 | color | ) |

inline

Converts a 32bit (A8R8G8B8) color to a 16bit A1R5G5B5 color.

Definition at line 97 of file SColor.h.

Referenced by irr::video::SColor::getData(), and irr::video::SColor::toA1R5G5B5().

## A8R8G8B8toR5G6B5()

u16 irr::video::A8R8G8B8toR5G6B5 | ( | u32 | color | ) |

inline

Converts a 32bit (A8R8G8B8) color to a 16bit R5G6B5 color.

Definition at line 107 of file SColor.h.

Referenced by irr::video::SColor::getData().

## getAlpha()

u32 irr::video::getAlpha | ( | u16 | color | ) |

inline

Returns the alpha component from A1R5G5B5 color.

In Irrlicht, alpha refers to opacity.

Returns
  The alpha value of the color. 0 is transparent, 1 is opaque.

Definition at line 155 of file SColor.h.

## getAverage()

s32 irr::video::getAverage | ( | s16 | color | ) |

inline

Returns the average from a 16 bit A1R5G5B5 color.

Definition at line 186 of file SColor.h.

References getBlue(), getGreen(), and getRed().

## getBlue()

u32 irr::video::getBlue | ( | u16 | color | ) |

inline

Returns the blue component from A1R5G5B5 color.

Shift left by 3 to get 8 bit value.

Definition at line 179 of file SColor.h.

Referenced by getAverage().

## getGreen()

u32 irr::video::getGreen | ( | u16 | color | ) |

inline

Returns the green component from A1R5G5B5 color.

Shift left by 3 to get 8 bit value.

Definition at line 171 of file SColor.h.

Referenced by getAverage().

## getRed()

u32 irr::video::getRed | ( | u16 | color | ) |

inline

Returns the red component from A1R5G5B5 color.

Shift left by 3 to get 8 bit value.

Definition at line 163 of file SColor.h.

Referenced by getAverage().

## getVertexPitchFromType()

u32 irr::video::getVertexPitchFromType | ( | E_VERTEX_TYPE | vertexType | ) |

inline

Definition at line 258 of file S3DVertex.h.

References EVT_2TCOORDS, and EVT_TANGENTS.

## pack_textureBlendFunc()

f32 irr::video::pack_textureBlendFunc | ( | const E_BLEND_FACTOR | srcFact,
|  | const E_BLEND_FACTOR | dstFact,
|  | const E_MODULATE_FUNC | modulate = EMFN_MODULATE_1X,
|  | const u32 | alphaSource = EAS_TEXTURE )

inline

EMT_ONETEXTURE_BLEND: pack srcFact, dstFact, Modulate and alpha source to MaterialTypeParam.

alpha source can be an OR'ed combination of E_ALPHA_SOURCE values.

Definition at line 116 of file SMaterial.h.

References EAS_TEXTURE, EMFN_MODULATE_1X, and FR().

## R5G6B5toA1R5G5B5()

u16 irr::video::R5G6B5toA1R5G5B5 | ( | u16 | color | ) |

inline

Returns A1R5G5B5 Color from R5G6B5 color.

Definition at line 138 of file SColor.h.

## R5G6B5toA8R8G8B8()

u32 irr::video::R5G6B5toA8R8G8B8 | ( | u16 | color | ) |

inline

Returns A8R8G8B8 Color from R5G6B5 color.

Definition at line 128 of file SColor.h.

Referenced by irr::video::SColor::setData().

## RGB16()

u16 irr::video::RGB16 | ( | u32 | r,
|  | u32 | g,
|  | u32 | b )

inline

Creates a 16 bit A1R5G5B5 color.

Definition at line 70 of file SColor.h.

References RGBA16().

## RGB16from16()

u16 irr::video::RGB16from16 | ( | u16 | r,
|  | u16 | g,
|  | u16 | b )

inline

Creates a 16bit A1R5G5B5 color, based on 16bit input values.

Definition at line 77 of file SColor.h.

## RGBA16()

u16 irr::video::RGBA16 | ( | u32 | r,
|  | u32 | g,
|  | u32 | b,
|  | u32 | a = 0xFF )

inline

Creates a 16 bit A1R5G5B5 color.

Definition at line 60 of file SColor.h.

Referenced by RGB16().

## textureBlendFunc_hasAlpha()

bool irr::video::textureBlendFunc_hasAlpha | ( | const E_BLEND_FACTOR | factor | ) |

inline

EMT_ONETEXTURE_BLEND: has BlendFactor Alphablending.

Definition at line 135 of file SMaterial.h.

References EBF_DST_ALPHA, EBF_ONE_MINUS_DST_ALPHA, EBF_ONE_MINUS_SRC_ALPHA, EBF_SRC_ALPHA, and EBF_SRC_ALPHA_SATURATE.

## unpack_textureBlendFunc()

void irr::video::unpack_textureBlendFunc | ( | E_BLEND_FACTOR & | srcFact,
|  | E_BLEND_FACTOR & | dstFact,
|  | E_MODULATE_FUNC & | modulo,
|  | u32 & | alphaSource,
|  | const f32 | param )

inline

EMT_ONETEXTURE_BLEND: unpack srcFact & dstFact and Modulo to MaterialTypeParam.

The fields don't use the full byte range, so we could pack even more...

Definition at line 124 of file SMaterial.h.

References IR().

## X8R8G8B8toA1R5G5B5()

u16 irr::video::X8R8G8B8toA1R5G5B5 | ( | u32 | color | ) |

inline

Converts a 32bit (X8R8G8B8) color to a 16bit A1R5G5B5 color.

Definition at line 87 of file SColor.h.

## Variable Documentation

## FogTypeNames

const c8* const irr::video::FogTypeNames[]

Initial value:
=
{
"FogExp",
"FogLinear",
"FogExp2",
0
}

Definition at line 140 of file IVideoDriver.h.

## GEOMETRY_SHADER_TYPE_NAMES

const c8* const irr::video::GEOMETRY_SHADER_TYPE_NAMES[]

Initial value:
= {
"gs_4_0",
0 }

String names for supported geometry shader types.

Definition at line 81 of file EShaderTypes.h.

## IdentityMaterial

IRRLICHT_API SMaterial irr::video::IdentityMaterial

extern

global const identity Material

Referenced by irr::scene::ISceneNode::getMaterial().

## LightTypeNames

const c8* const irr::video::LightTypeNames[]

Initial value:
=
{
"Point",
"Spot",
"Directional",
0
}

Names for light types.

Definition at line 30 of file SLight.h.

## MATERIAL_MAX_TEXTURES

const u32 irr::video::MATERIAL_MAX_TEXTURES = _IRR_MATERIAL_MAX_TEXTURES_

Maximum number of texture an SMaterial can have.

Definition at line 223 of file SMaterial.h.

Referenced by irr::video::SMaterial::SMaterial(), irr::video::SMaterial::getTexture(), irr::video::SMaterial::getTextureMatrix(), irr::video::SMaterial::operator!=(), irr::video::SMaterial::operator=(), irr::video::SMaterial::setFlag(), irr::scene::ISceneNode::setMaterialTexture(), irr::video::SMaterial::setTexture(), and irr::video::SMaterial::setTextureMatrix().

## PIXEL_SHADER_TYPE_NAMES

const c8* const irr::video::PIXEL_SHADER_TYPE_NAMES[]

Initial value:
= {
"ps_1_1",
"ps_1_2",
"ps_1_3",
"ps_1_4",
"ps_2_0",
"ps_2_a",
"ps_2_b",
"ps_3_0",
"ps_4_0",
"ps_4_1",
"ps_5_0",
0 }

Names for all pixel shader types, each entry corresponds to a E_PIXEL_SHADER_TYPE entry.

Definition at line 57 of file EShaderTypes.h.

## PolygonOffsetDirectionNames

const c8* const irr::video::PolygonOffsetDirectionNames[]

Initial value:
=
{
"Back",
"Front",
0
}

Names for polygon offset direction.

Definition at line 214 of file SMaterial.h.

## sBuiltInMaterialTypeNames

const char* const irr::video::sBuiltInMaterialTypeNames[]

Initial value:
=
{
"solid",
"solid_2layer",
"lightmap",
"lightmap_add",
"lightmap_m2",
"lightmap_m4",
"lightmap_light",
"lightmap_light_m2",
"lightmap_light_m4",
"detail_map",
"sphere_map",
"reflection_2layer",
"trans_add",
"trans_alphach",
"trans_alphach_ref",
"trans_vertex_alpha",
"trans_reflection_2layer",
"normalmap_solid",
"normalmap_trans_add",
"normalmap_trans_vertexalpha",
"parallaxmap_solid",
"parallaxmap_trans_add",
"parallaxmap_trans_vertexalpha",
"onetexture_blend",
0
}

Array holding the built in material type names.

Definition at line 200 of file EMaterialTypes.h.

## sBuiltInVertexTypeNames

const char* const irr::video::sBuiltInVertexTypeNames[]

Initial value:
=
{
"standard",
"2tcoords",
"tangents",
0
}

Array holding the built in vertex type names.

Definition at line 33 of file S3DVertex.h.

## VERTEX_SHADER_TYPE_NAMES

const c8* const irr::video::VERTEX_SHADER_TYPE_NAMES[]

Initial value:
= {
"vs_1_1",
"vs_2_0",
"vs_2_a",
"vs_3_0",
"vs_4_0",
"vs_4_1",
"vs_5_0",
0 }

Names for all vertex shader types, each entry corresponds to a E_VERTEX_SHADER_TYPE entry.

Definition at line 27 of file EShaderTypes.h.

- Irrlicht Engine Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on for Irrlicht 3D Engine by Doxygen 1.15.0