Irrlicht 3D Engine
irr::video Namespace Reference

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

Classes

Enumerations

Functions

Variables


Detailed Description

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


Enumeration Type Documentation

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Enumerator:
EIT_16BIT 
EIT_32BIT 

Definition at line 15 of file SVertexIndex.h.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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

u16 irr::video::A1R5G5B5toR5G6B5 ( u16  color) [inline]

Returns R5G6B5 Color from A1R5G5B5 color.

Definition at line 145 of file SColor.h.

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

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

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.

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

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

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

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

u32 irr::video::getVertexPitchFromType ( E_VERTEX_TYPE  vertexType) [inline]

Definition at line 256 of file S3DVertex.h.

References EVT_2TCOORDS, and EVT_TANGENTS.

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 irr::core::FR().

u16 irr::video::R5G6B5toA1R5G5B5 ( u16  color) [inline]

Returns A1R5G5B5 Color from R5G6B5 color.

Definition at line 138 of file SColor.h.

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

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

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.

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

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.

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 irr::core::IR().

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

const c8* const irr::video::FogTypeNames[]
Initial value:
    {
        "FogExp",
        "FogLinear",
        "FogExp2",
        0
    }

Definition at line 140 of file IVideoDriver.h.

Initial value:
 {
    "gs_4_0",
    0 }

String names for supported geometry shader types.

Definition at line 81 of file EShaderTypes.h.

global const identity Material

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

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

Names for light types.

Definition at line 30 of file SLight.h.

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.

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

Names for polygon offset direction.

Definition at line 214 of file SMaterial.h.

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.

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

Array holding the built in vertex type names.

Definition at line 33 of file S3DVertex.h.

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.