5#ifndef __IRR_I_VIDEO_DRIVER_H_INCLUDED__
6#define __IRR_I_VIDEO_DRIVER_H_INCLUDED__
28 struct SAttributeReadWriteOptions;
36 class IMeshManipulator;
43 struct S3DVertex2TCoords;
44 struct S3DVertexTangents;
48 class IMaterialRenderer;
49 class IGPUProgrammingServices;
68#if _IRR_MATERIAL_MAX_TEXTURES_>4
71#if _IRR_MATERIAL_MAX_TEXTURES_>5
74#if _IRR_MATERIAL_MAX_TEXTURES_>6
77#if _IRR_MATERIAL_MAX_TEXTURES_>7
171 for (
u32 i=0; i<32; ++i)
173 const u32 num=(1<<i);
278 virtual bool beginScene(
bool backBuffer=
true,
bool zBuffer=
true,
527 bool zeroTexels =
false)
const =0;
544 bool zeroTexels =
false)
const =0;
639 const void* indexList,
u32 primCount,
665 const void* indexList,
u32 primCount,
680 u32 vertexCount,
const u16* indexList,
u32 triangleCount)
695 u32 vertexCount,
const u16* indexList,
u32 triangleCount)
710 u32 vertexCount,
const u16* indexList,
u32 triangleCount)
725 u32 vertexCount,
const u16* indexList,
u32 triangleCount)
740 u32 vertexCount,
const u16* indexList,
u32 triangleCount)
755 u32 vertexCount,
const u16* indexList,
u32 triangleCount)
835 SColor color=
SColor(255,255,255,255),
bool useAlphaChannelOfTexture=
false) =0;
864 bool useAlphaChannelOfTexture=
false) =0;
887 bool useAlphaChannelOfTexture=
false) =0;
901 const video::SColor *
const colors=0,
bool useAlphaChannelOfTexture=
false) =0;
975 s32 vertexCount=10) =0;
1049 f32 start=50.0f,
f32 end=100.0f,
f32 density=0.01f,
1050 bool pixelFog=
false,
bool rangeFog=
false) =0;
1055 bool& pixelFog,
bool& rangeFog) = 0;
1220 bool ownForeignMemory=
false,
1221 bool deleteMemory =
true) =0;
Base class of most objects of the Irrlicht Engine.
4x4 matrix. Mostly used as transformation matrix for 3d calculations.
Axis aligned bounding box in 3d dimensional space.
Self reallocating template array (like stl vector) with additional features.
Provides a generic interface for attributes and their values and the possiblity to serialize them.
Interface providing read acess to a file.
Interface providing write access to a file.
Struct for holding a mesh with a single material.
Class which holds the geometry of an object.
An interface for easy manipulation of meshes.
Interface making it possible to create and use programs running on the GPU.
Interface for software image data.
Class which is able to create a image from a file.
Interface for writing software image data.
Interface for material rendering.
Interface of a Video Driver dependent Texture.
Interface to driver which is able to perform 2d and 3d graphics functions.
virtual bool beginScene(bool backBuffer=true, bool zBuffer=true, SColor color=SColor(255, 0, 0, 0), const SExposedVideoData &videoData=SExposedVideoData(), core::rect< s32 > *sourceRect=0)=0
Applications must call this method before performing any rendering.
void drawIndexedTriangleList(const S3DVertex2TCoords *vertices, u32 vertexCount, const u16 *indexList, u32 triangleCount)
Draws an indexed triangle list.
virtual IImageWriter * getImageWriter(u32 n)=0
Retrieve the given image writer.
virtual void addOcclusionQuery(scene::ISceneNode *node, const scene::IMesh *mesh=0)=0
Create occlusion query.
void drawIndexedTriangleList(const S3DVertexTangents *vertices, u32 vertexCount, const u16 *indexList, u32 triangleCount)
Draws an indexed triangle list.
virtual s32 addMaterialRenderer(IMaterialRenderer *renderer, const c8 *name=0)=0
Adds a new material renderer to the video device.
virtual void removeHardwareBuffer(const scene::IMeshBuffer *mb)=0
Remove hardware buffer.
virtual u32 getOcclusionQueryResult(scene::ISceneNode *node) const =0
Return query result.
virtual void draw2DImage(const video::ITexture *texture, const core::position2d< s32 > &destPos, const core::rect< s32 > &sourceRect, const core::rect< s32 > *clipRect=0, SColor color=SColor(255, 255, 255, 255), bool useAlphaChannelOfTexture=false)=0
Draws a 2d image using a color.
virtual ITexture * getTexture(const io::path &filename)=0
Get access to a named texture.
virtual u32 getImageWriterCount() const =0
Retrieve the number of image writers.
virtual void removeAllTextures()=0
Removes all textures from the texture cache and deletes them.
virtual void OnResize(const core::dimension2d< u32 > &size)=0
Event handler for resize events. Only used by the engine internally.
virtual void draw2DImageBatch(const video::ITexture *texture, const core::position2d< s32 > &pos, const core::array< core::rect< s32 > > &sourceRects, const core::array< s32 > &indices, s32 kerningWidth=0, const core::rect< s32 > *clipRect=0, SColor color=SColor(255, 255, 255, 255), bool useAlphaChannelOfTexture=false)=0
Draws a set of 2d images, using a color and the alpha channel of the texture.
virtual void drawMeshBufferNormals(const scene::IMeshBuffer *mb, f32 length=10.f, SColor color=0xffffffff)=0
Draws normals of a mesh buffer.
virtual bool setRenderTarget(const core::array< video::IRenderTarget > &texture, bool clearBackBuffer=true, bool clearZBuffer=true, SColor color=video::SColor(0, 0, 0, 0))=0
Sets new multiple render targets.
virtual void clearZBuffer()=0
Clears the ZBuffer.
virtual core::stringc getVendorInfo()=0
Get the graphics card vendor name.
virtual void removeAllHardwareBuffers()=0
Remove all hardware buffers.
virtual void getFog(SColor &color, E_FOG_TYPE &fogType, f32 &start, f32 &end, f32 &density, bool &pixelFog, bool &rangeFog)=0
Gets the fog mode.
virtual u32 getPrimitiveCountDrawn(u32 mode=0) const =0
Returns amount of primitives (mostly triangles) which were drawn in the last frame.
virtual void renameTexture(ITexture *texture, const io::path &newName)=0
Renames a texture.
virtual void draw2DVertexPrimitiveList(const void *vertices, u32 vertexCount, const void *indexList, u32 primCount, E_VERTEX_TYPE vType=EVT_STANDARD, scene::E_PRIMITIVE_TYPE pType=scene::EPT_TRIANGLES, E_INDEX_TYPE iType=EIT_16BIT)=0
Draws a vertex primitive list in 2d.
virtual _IRR_DEPRECATED_ IImage * createImage(ECOLOR_FORMAT format, IImage *imageToCopy)=0
Creates a software image by converting it to given format from another image.
virtual void turnLightOn(s32 lightIndex, bool turnOn)=0
virtual _IRR_DEPRECATED_ IImage * createImage(IImage *imageToCopy, const core::position2d< s32 > &pos, const core::dimension2d< u32 > &size)=0
Creates a software image from a part of another image.
virtual const SLight & getDynamicLight(u32 idx) const =0
Returns light data which was previously set by IVideoDriver::addDynamicLight().
virtual bool writeImageToFile(IImage *image, const io::path &filename, u32 param=0)=0
Writes the provided image to a file.
virtual SMaterial & getMaterial2D()=0
Get the 2d override material for altering its values.
virtual IImage * createImageFromData(ECOLOR_FORMAT format, const core::dimension2d< u32 > &size, void *data, bool ownForeignMemory=false, bool deleteMemory=true)=0
Creates a software image from a byte array.
virtual ITexture * addTexture(const io::path &name, IImage *image, void *mipmapData=0)=0
Creates a texture from an IImage.
virtual void draw2DImage(const video::ITexture *texture, const core::rect< s32 > &destRect, const core::rect< s32 > &sourceRect, const core::rect< s32 > *clipRect=0, const video::SColor *const colors=0, bool useAlphaChannelOfTexture=false)=0
Draws a part of the texture into the rectangle. Note that colors must be an array of 4 colors if used...
virtual bool checkDriverReset()=0
Check if the driver was recently reset.
virtual u32 getTextureCount() const =0
Returns amount of textures currently loaded.
virtual void setMaterialRendererName(s32 idx, const c8 *name)=0
Sets the name of a material renderer.
virtual const io::IAttributes & getDriverAttributes() const =0
Get attributes of the actual video driver.
virtual ITexture * addRenderTargetTexture(const core::dimension2d< u32 > &size, const io::path &name="rt", const ECOLOR_FORMAT format=ECF_UNKNOWN)=0
Adds a new render target texture to the texture cache.
void drawIndexedTriangleList(const S3DVertex *vertices, u32 vertexCount, const u16 *indexList, u32 triangleCount)
Draws an indexed triangle list.
virtual void addExternalImageWriter(IImageWriter *writer)=0
Adds an external image writer to the engine.
virtual s32 getFPS() const =0
Returns current frames per second value.
virtual void removeAllOcclusionQueries()=0
Remove all occlusion queries.
virtual void draw3DLine(const core::vector3df &start, const core::vector3df &end, SColor color=SColor(255, 255, 255, 255))=0
Draws a 3d line.
virtual void updateOcclusionQuery(scene::ISceneNode *node, bool block=true)=0
Update occlusion query. Retrieves results from GPU.
virtual void makeNormalMapTexture(video::ITexture *texture, f32 amplitude=1.0f) const =0
Creates a normal map from a height map texture.
virtual void draw2DImageBatch(const video::ITexture *texture, const core::array< core::position2d< s32 > > &positions, const core::array< core::rect< s32 > > &sourceRects, const core::rect< s32 > *clipRect=0, SColor color=SColor(255, 255, 255, 255), bool useAlphaChannelOfTexture=false)=0
Draws a set of 2d images, using a color and the alpha channel of the texture.
virtual SOverrideMaterial & getOverrideMaterial()=0
Get the global Material, which might override local materials.
virtual void drawPixel(u32 x, u32 y, const SColor &color)=0
Draws a pixel.
virtual void draw2DRectangleOutline(const core::recti &pos, SColor color=SColor(255, 255, 255, 255))=0
Draws the outline of a 2D rectangle.
virtual const wchar_t * getName() const =0
Gets name of this video driver.
virtual IImage * createImageFromFile(io::IReadFile *file)=0
Creates a software image from a file.
virtual void makeColorKeyTexture(video::ITexture *texture, video::SColor color, bool zeroTexels=false) const =0
Sets a boolean alpha channel on the texture based on a color key.
virtual bool endScene()=0
Presents the rendered image to the screen.
virtual void enableMaterial2D(bool enable=true)=0
Enable the 2d override material.
virtual void draw3DBox(const core::aabbox3d< f32 > &box, SColor color=SColor(255, 255, 255, 255))=0
Draws a 3d axis aligned box.
virtual IImage * createImage(ECOLOR_FORMAT format, const core::dimension2d< u32 > &size)=0
Creates an empty software image.
virtual void setMinHardwareBufferVertexCount(u32 count)=0
Set the minimum number of vertices for which a hw buffer will be created.
virtual void draw2DLine(const core::position2d< s32 > &start, const core::position2d< s32 > &end, SColor color=SColor(255, 255, 255, 255))=0
Draws a 2d line. Both start and end will be included in coloring.
void drawIndexedTriangleFan(const S3DVertexTangents *vertices, u32 vertexCount, const u16 *indexList, u32 triangleCount)
Draws an indexed triangle fan.
virtual const core::dimension2d< u32 > & getCurrentRenderTargetSize() const =0
Get the size of the current render target.
virtual IImage * createScreenShot(video::ECOLOR_FORMAT format=video::ECF_UNKNOWN, video::E_RENDER_TARGET target=video::ERT_FRAME_BUFFER)=0
Make a screenshot of the last rendered frame.
virtual s32 addDynamicLight(const SLight &light)=0
void drawIndexedTriangleFan(const S3DVertex *vertices, u32 vertexCount, const u16 *indexList, u32 triangleCount)
Draws an indexed triangle fan.
virtual void draw2DRectangle(const core::rect< s32 > &pos, SColor colorLeftUp, SColor colorRightUp, SColor colorLeftDown, SColor colorRightDown, const core::rect< s32 > *clip=0)=0
Draws a 2d rectangle with a gradient.
virtual void setTextureCreationFlag(E_TEXTURE_CREATION_FLAG flag, bool enabled=true)=0
Enables or disables a texture creation flag.
virtual const core::dimension2d< u32 > & getScreenSize() const =0
Get the size of the screen or render window.
virtual bool setRenderTarget(video::ITexture *texture, bool clearBackBuffer=true, bool clearZBuffer=true, SColor color=video::SColor(0, 0, 0, 0))=0
Sets a new render target.
virtual void setMaterial(const SMaterial &material)=0
Sets a material.
virtual u32 getImageLoaderCount() const =0
Retrieve the number of image loaders.
virtual scene::IMeshManipulator * getMeshManipulator()=0
Returns a pointer to the mesh manipulator.
virtual const core::rect< s32 > & getViewPort() const =0
Gets the area of the current viewport.
virtual ITexture * addTexture(const core::dimension2d< u32 > &size, const io::path &name, ECOLOR_FORMAT format=ECF_A8R8G8B8)=0
Creates an empty texture of specified size.
virtual void addExternalImageLoader(IImageLoader *loader)=0
Adds an external image loader to the engine.
virtual bool setClipPlane(u32 index, const core::plane3df &plane, bool enable=false)=0
Set or unset a clipping plane.
virtual void drawStencilShadow(bool clearStencilBuffer=false, video::SColor leftUpEdge=video::SColor(255, 0, 0, 0), video::SColor rightUpEdge=video::SColor(255, 0, 0, 0), video::SColor leftDownEdge=video::SColor(255, 0, 0, 0), video::SColor rightDownEdge=video::SColor(255, 0, 0, 0))=0
Fills the stencil shadow with color.
virtual u32 getDynamicLightCount() const =0
Returns amount of dynamic lights currently set.
virtual void fillMaterialStructureFromAttributes(video::SMaterial &outMaterial, io::IAttributes *attributes)=0
Fills an SMaterial structure from attributes.
virtual core::dimension2du getMaxTextureSize() const =0
Get the maximum texture size supported.
virtual void removeOcclusionQuery(scene::ISceneNode *node)=0
Remove occlusion query.
virtual const SExposedVideoData & getExposedVideoData()=0
Returns driver and operating system specific data about the IVideoDriver.
virtual void enableClipPlane(u32 index, bool enable)=0
Enable or disable a clipping plane.
virtual void setAmbientLight(const SColorf &color)=0
Only used by the engine internally.
virtual IImage * createImageFromFile(const io::path &filename)=0
Creates a software image from a file.
virtual void draw2DPolygon(core::position2d< s32 > center, f32 radius, video::SColor color=SColor(100, 255, 255, 255), s32 vertexCount=10)=0
Draws a non filled concyclic regular 2d polygon.
virtual void setTransform(E_TRANSFORMATION_STATE state, const core::matrix4 &mat)=0
Sets transformation matrices.
virtual void runOcclusionQuery(scene::ISceneNode *node, bool visible=false)=0
Run occlusion query. Draws mesh stored in query.
virtual void drawMeshBuffer(const scene::IMeshBuffer *mb)=0
Draws a mesh buffer.
virtual void drawVertexPrimitiveList(const void *vertices, u32 vertexCount, const void *indexList, u32 primCount, E_VERTEX_TYPE vType=EVT_STANDARD, scene::E_PRIMITIVE_TYPE pType=scene::EPT_TRIANGLES, E_INDEX_TYPE iType=EIT_16BIT)=0
Draws a vertex primitive list.
virtual void deleteAllDynamicLights()=0
Deletes all dynamic lights which were previously added with addDynamicLight().
virtual void updateAllOcclusionQueries(bool block=true)=0
Update all occlusion queries. Retrieves results from GPU.
virtual u32 getMaximalDynamicLightAmount() const =0
Returns the maximal amount of dynamic lights the device can handle.
virtual u32 getMaterialRendererCount() const =0
Get amount of currently available material renderers.
virtual void draw2DImage(const video::ITexture *texture, const core::position2d< s32 > &destPos)=0
Draws a 2d image without any special effects.
virtual const c8 * getMaterialRendererName(u32 idx) const =0
Get name of a material renderer.
virtual void draw3DTriangle(const core::triangle3df &triangle, SColor color=SColor(255, 255, 255, 255))=0
Draws a 3d triangle.
virtual void draw2DRectangle(SColor color, const core::rect< s32 > &pos, const core::rect< s32 > *clip=0)=0
Draws a 2d rectangle.
virtual void removeTexture(ITexture *texture)=0
Removes a texture from the texture cache and deletes it.
virtual IGPUProgrammingServices * getGPUProgrammingServices()=0
Gets the IGPUProgrammingServices interface.
virtual IImageLoader * getImageLoader(u32 n)=0
Retrieve the given image loader.
virtual bool setRenderTarget(E_RENDER_TARGET target, bool clearTarget=true, bool clearZBuffer=true, SColor color=video::SColor(0, 0, 0, 0))=0
set or reset special render targets
virtual io::IAttributes * createAttributesFromMaterial(const video::SMaterial &material, io::SAttributeReadWriteOptions *options=0)=0
Creates material attributes list from a material.
virtual bool queryFeature(E_VIDEO_DRIVER_FEATURE feature) const =0
Queries the features of the driver.
void drawIndexedTriangleFan(const S3DVertex2TCoords *vertices, u32 vertexCount, const u16 *indexList, u32 triangleCount)
Draws an indexed triangle fan.
virtual bool writeImageToFile(IImage *image, io::IWriteFile *file, u32 param=0)=0
Writes the provided image to a file.
virtual void runAllOcclusionQueries(bool visible=false)=0
Run all occlusion queries. Draws all meshes stored in queries.
virtual void drawStencilShadowVolume(const core::array< core::vector3df > &triangles, bool zfail=true, u32 debugDataVisible=0)=0
Draws a shadow volume into the stencil buffer.
virtual ITexture * getTexture(io::IReadFile *file)=0
Get access to a named texture.
virtual bool getTextureCreationFlag(E_TEXTURE_CREATION_FLAG flag) const =0
Returns if a texture creation flag is enabled or disabled.
virtual IMaterialRenderer * getMaterialRenderer(u32 idx)=0
Get access to a material renderer by index.
virtual void disableFeature(E_VIDEO_DRIVER_FEATURE feature, bool flag=true)=0
Disable a feature of the driver.
virtual void makeColorKeyTexture(video::ITexture *texture, core::position2d< s32 > colorKeyPixelPos, bool zeroTexels=false) const =0
Sets a boolean alpha channel on the texture based on the color at a position.
virtual void setViewPort(const core::rect< s32 > &area)=0
Sets a new viewport.
virtual ITexture * getTextureByIndex(u32 index)=0
Returns a texture by index.
virtual const core::matrix4 & getTransform(E_TRANSFORMATION_STATE state) const =0
Returns the transformation set by setTransform.
virtual void setAllowZWriteOnTransparent(bool flag)=0
Only used by the engine internally.
virtual video::ITexture * findTexture(const io::path &filename)=0
Check if the image is already loaded.
virtual E_DRIVER_TYPE getDriverType() const =0
Get type of video driver.
virtual void setFog(SColor color=SColor(0, 255, 255, 255), E_FOG_TYPE fogType=EFT_FOG_LINEAR, f32 start=50.0f, f32 end=100.0f, f32 density=0.01f, bool pixelFog=false, bool rangeFog=false)=0
Sets the fog mode.
virtual void convertColor(const void *sP, ECOLOR_FORMAT sF, s32 sN, void *dP, ECOLOR_FORMAT dF) const =0
Color conversion convenience function.
virtual ECOLOR_FORMAT getColorFormat() const =0
Get the current color format of the color buffer.
virtual u32 getMaximalPrimitiveCount() const =0
Returns the maximum amount of primitives.
virtual IImage * createImage(ITexture *texture, const core::position2d< s32 > &pos, const core::dimension2d< u32 > &size)=0
Creates a software image from a part of a texture.
Class representing a 32 bit ARGB color.
Class representing a color with four floats.
Struct for holding parameters for a material renderer.
bool ZWriteEnable
Is the zbuffer writeable or is it read-only. Default: true.
u8 ColorMaterial
Defines the interpretation of vertex color in the lighting equation.
SMaterialLayer TextureLayer[MATERIAL_MAX_TEXTURES]
Texture layer array.
bool PointCloud
Draw as point cloud or filled triangles? Default: false.
u8 ColorMask
Defines the enabled color planes.
bool Wireframe
Draw as wireframe or filled triangles? Default: false.
u8 ZBuffer
Is the ZBuffer enabled? Default: ECFN_LESSEQUAL.
u8 AntiAliasing
Sets the antialiasing mode.
bool UseMipMaps
Shall mipmaps be used if available.
bool FrontfaceCulling
Is frontface culling enabled? Default: false.
bool FogEnable
Is fog enabled? Default: false.
E_POLYGON_OFFSET PolygonOffsetDirection
Flag defining the direction the polygon offset is applied to.
bool GouraudShading
Flat or Gouraud shading? Default: true.
bool NormalizeNormals
Should normals be normalized?
bool BackfaceCulling
Is backface culling enabled? Default: true.
u8 PolygonOffsetFactor
Factor specifying how far the polygon offset should be made.
E_BLEND_OPERATION BlendOperation
Store the blend operation of choice.
bool Lighting
Will this material be lighted? Default: true.
bool BilinearFilter
Is bilinear filtering enabled? Default: true.
bool TrilinearFilter
Is trilinear filtering enabled? Default: false.
u8 AnisotropicFilter
Is anisotropic filtering enabled? Default: 0, disabled.
u8 TextureWrapU
Texture Clamp Mode.
#define _IRR_DEPRECATED_
Defines a deprecated macro which generates a warning at compile time.
E_PRIMITIVE_TYPE
Enumeration for all primitive types there are.
@ EPT_TRIANGLES
Explicitly set all vertices for each triangle.
E_VERTEX_TYPE
Enumeration for all vertex types there are.
@ EVT_2TCOORDS
Vertex with two texture coordinates, video::S3DVertex2TCoords.
@ EVT_TANGENTS
Vertex with a tangent and binormal vector, video::S3DVertexTangents.
@ EVT_STANDARD
Standard vertex type used by the Irrlicht engine, video::S3DVertex.
E_TRANSFORMATION_STATE
enumeration for geometry transformation states
@ ETS_VIEW
View transformation.
@ ETS_TEXTURE_1
Texture transformation.
@ ETS_TEXTURE_2
Texture transformation.
@ ETS_TEXTURE_0
Texture transformation.
@ ETS_WORLD
World transformation.
@ ETS_TEXTURE_3
Texture transformation.
@ ETS_PROJECTION
Projection transformation.
ECOLOR_FORMAT
An enum for the color format of textures used by the Irrlicht Engine.
@ ECF_UNKNOWN
Unknown color format:
@ ECF_A8R8G8B8
Default 32 bit color format. 8 bits are used for every component: red, green, blue and alpha.
E_VIDEO_DRIVER_FEATURE
enumeration for querying features of the video driver.
const c8 *const FogTypeNames[]
E_LOST_RESOURCE
enumeration for signaling resources which were lost after the last render cycle
@ ELR_TEXTURES
All texture are lost, rare problem.
@ ELR_HW_BUFFERS
The HW buffers are lost, will be recreated automatically, but might require some more time this frame...
@ ELR_DEVICE
The whole device/driver is lost.
@ ELR_RTTS
The Render Target Textures are lost, typical problem for D3D.
E_RENDER_TARGET
Special render targets, which usually map to dedicated hardware.
@ ERT_AUX_BUFFER4
Auxiliary buffer 4.
@ ERT_AUX_BUFFER1
Auxiliary buffer 1.
@ ERT_RENDER_TEXTURE
Render target is a render texture.
@ ERT_AUX_BUFFER0
Auxiliary buffer 0.
@ ERT_FRAME_BUFFER
Render target is the main color frame buffer.
@ ERT_STEREO_LEFT_BUFFER
Render target is the main color frame buffer.
@ ERT_STEREO_BOTH_BUFFERS
Render to both stereo buffers at once.
@ ERT_STEREO_RIGHT_BUFFER
Render target is the right color buffer (left is the main buffer)
@ ERT_AUX_BUFFER3
Auxiliary buffer 3.
@ ERT_MULTI_RENDER_TEXTURES
Multi-Render target textures.
@ ERT_AUX_BUFFER2
Auxiliary buffer 2.
E_BLEND_OPERATION
Values defining the blend operation used when blend is enabled.
@ EBO_NONE
No blending happens.
@ EMF_FRONT_FACE_CULLING
Is frontface culling enabled? Default: false.
@ EMF_POINTCLOUD
Draw as point cloud or filled triangles? Default: false.
@ EMF_NORMALIZE_NORMALS
Normalizes normals. Default: false.
@ EMF_ZBUFFER
Is the ZBuffer enabled? Default: true.
@ EMF_ZWRITE_ENABLE
May be written to the zbuffer or is it readonly. Default: true.
@ EMF_FOG_ENABLE
Is fog enabled? Default: false.
@ EMF_COLOR_MASK
ColorMask bits, for enabling the color planes.
@ EMF_TRILINEAR_FILTER
Is trilinear filtering enabled? Default: false.
@ EMF_TEXTURE_WRAP
Access to all layers texture wrap settings. Overwrites separate layer settings.
@ EMF_COLOR_MATERIAL
ColorMaterial enum for vertex color interpretation.
@ EMF_GOURAUD_SHADING
Flat or Gouraud shading? Default: true.
@ EMF_USE_MIP_MAPS
Flag for enabling/disabling mipmap usage.
@ EMF_ANISOTROPIC_FILTER
Is anisotropic filtering? Default: false.
@ EMF_ANTI_ALIASING
AntiAliasing mode.
@ EMF_BLEND_OPERATION
Flag for blend operation.
@ EMF_WIREFRAME
Draw as wireframe or filled triangles? Default: false.
@ EMF_POLYGON_OFFSET
Flag for polygon offset.
@ EMF_LIGHTING
Will this material be lighted? Default: true.
@ EMF_BACK_FACE_CULLING
Is backface culling enabled? Default: true.
@ EMF_BILINEAR_FILTER
Is bilinear filtering enabled? Default: true.
E_COLOR_PLANE
Enum values for enabling/disabling color planes for rendering.
@ ECP_ALL
All planes enabled.
E_BLEND_FACTOR
Flag for EMT_ONETEXTURE_BLEND, ( BlendFactor ) BlendFunc = source * sourceFactor + dest * destFactor.
@ EBF_ONE
src & dest (1, 1, 1, 1)
@ EBF_ONE_MINUS_SRC_ALPHA
src & dest (1-srcA, 1-srcA, 1-srcA, 1-srcA)
E_TEXTURE_CREATION_FLAG
Enumeration flags telling the video driver in which format textures should be created.
E_FOG_TYPE
Enum for the types of fog distributions to choose from.
E_DRIVER_TYPE
An enum for all types of drivers the Irrlicht Engine supports.
Everything in the Irrlicht Engine can be found in this namespace.
float f32
32 bit floating point variable.
unsigned int u32
32 bit unsigned variable.
char c8
8 bit character variable.
signed int s32
32 bit signed variable.
unsigned short u16
16 bit unsigned variable.
struct holding data describing options
IRenderTarget(E_RENDER_TARGET target, E_COLOR_PLANE colorMask=ECP_ALL, E_BLEND_FACTOR blendFuncSrc=EBF_ONE, E_BLEND_FACTOR blendFuncDst=EBF_ONE_MINUS_SRC_ALPHA, E_BLEND_OPERATION blendOp=EBO_NONE)
E_BLEND_OPERATION BlendOp
E_RENDER_TARGET TargetType
bool operator!=(const IRenderTarget &other) const
IRenderTarget(ITexture *texture, E_COLOR_PLANE colorMask=ECP_ALL, E_BLEND_FACTOR blendFuncSrc=EBF_ONE, E_BLEND_FACTOR blendFuncDst=EBF_ONE_MINUS_SRC_ALPHA, E_BLEND_OPERATION blendOp=EBO_NONE)
E_BLEND_FACTOR BlendFuncDst
E_BLEND_FACTOR BlendFuncSrc
Vertex with two texture coordinates.
standard vertex used by the Irrlicht engine.
Vertex with a tangent and binormal vector.
structure for holding data describing a driver and operating system specific data.
structure for holding data describing a dynamic point light.
void apply(SMaterial &material)
Apply the enabled overrides.
u32 EnableFlags
Which values are taken for override.
SMaterial Material
The Material values.
bool Enabled
Global enable flag, overwritten by the SceneManager in each pass.
SOverrideMaterial()
Default constructor.
u16 EnablePasses
Set in which render passes the material override is active.