5#ifndef __IRR_I_VIDEO_DRIVER_H_INCLUDED__
6#define __IRR_I_VIDEO_DRIVER_H_INCLUDED__
14#include "dimension2d.h"
15#include "position2d.h"
17#include "IMeshBuffer.h"
18#include "triangle3d.h"
19#include "EDriverTypes.h"
20#include "EDriverFeatures.h"
21#include "SExposedVideoData.h"
23#include "IHardwareBuffer.h"
66 ETS_WORLD_INVERSE_TRANSPOSE,
79#if _IRR_MATERIAL_MAX_TEXTURES_>4
82#if _IRR_MATERIAL_MAX_TEXTURES_>5
85#if _IRR_MATERIAL_MAX_TEXTURES_>6
88#if _IRR_MATERIAL_MAX_TEXTURES_>7
91#if _IRR_MATERIAL_MAX_TEXTURES_>8
94#if _IRR_MATERIAL_MAX_TEXTURES_>9
97#if _IRR_MATERIAL_MAX_TEXTURES_>10
100#if _IRR_MATERIAL_MAX_TEXTURES_>11
103#if _IRR_MATERIAL_MAX_TEXTURES_>12
106#if _IRR_MATERIAL_MAX_TEXTURES_>13
109#if _IRR_MATERIAL_MAX_TEXTURES_>14
112#if _IRR_MATERIAL_MAX_TEXTURES_>15
115#if _IRR_MATERIAL_MAX_TEXTURES_>16
118#if _IRR_MATERIAL_MAX_TEXTURES_>17
121#if _IRR_MATERIAL_MAX_TEXTURES_>18
124#if _IRR_MATERIAL_MAX_TEXTURES_>19
127#if _IRR_MATERIAL_MAX_TEXTURES_>20
130#if _IRR_MATERIAL_MAX_TEXTURES_>21
133#if _IRR_MATERIAL_MAX_TEXTURES_>22
136#if _IRR_MATERIAL_MAX_TEXTURES_>23
139#if _IRR_MATERIAL_MAX_TEXTURES_>24
142#if _IRR_MATERIAL_MAX_TEXTURES_>25
145#if _IRR_MATERIAL_MAX_TEXTURES_>26
148#if _IRR_MATERIAL_MAX_TEXTURES_>27
151#if _IRR_MATERIAL_MAX_TEXTURES_>28
154#if _IRR_MATERIAL_MAX_TEXTURES_>29
157#if _IRR_MATERIAL_MAX_TEXTURES_>30
160#if _IRR_MATERIAL_MAX_TEXTURES_>31
249 const c8*
const FogTypeNames[] =
291 for (
u32 i=0; i<32; ++i)
293 const u32 num=(1<<i);
339 RenderTexture(texture),
341 BlendFuncSrc(blendFuncSrc), BlendFuncDst(blendFuncDst),
349 TargetType(target), ColorMask(colorMask),
350 BlendFuncSrc(blendFuncSrc), BlendFuncDst(blendFuncDst),
352 bool operator!=(
const IRenderTarget& other)
const
354 return ((RenderTexture != other.RenderTexture) ||
355 (TargetType != other.TargetType) ||
356 (ColorMask != other.ColorMask) ||
357 (BlendFuncSrc != other.BlendFuncSrc) ||
358 (BlendFuncDst != other.BlendFuncDst) ||
359 (BlendOp != other.BlendOp));
372 virtual u32 getWidth() = 0;
374 virtual u32 getHeight() = 0;
376 virtual void resize(
u32 w,
u32 h) = 0;
409 virtual bool beginScene(
bool backBuffer=
true,
bool zBuffer=
true,
678 bool zeroTexels =
false)
const =0;
694 core::position2d<s32> colorKeyPixelPos,
695 bool zeroTexels =
false)
const =0;
784 virtual bool setRenderTargetArray(
video::ITexture* texture,
int arrayID,
bool clearTarget =
true,
788 virtual bool setRenderTargetCube(
video::ITexture* texture, E_CUBEMAP_FACE face,
bool clearTarget =
true,
806 virtual void enableScissor(
bool b) = 0;
890 f32 start=50.0f,
f32 end=100.0f,
f32 density=0.01f,
891 bool pixelFog=
false,
bool rangeFog=
false) =0;
896 bool& pixelFog,
bool& rangeFog) = 0;
923 virtual s32 getTextureChange()
const = 0;
924 virtual s32 getDrawCall()
const = 0;
932 virtual u32 getTextureChangeCount(
u32 param)
const = 0;
1067 bool ownForeignMemory=
false,
1068 bool deleteMemory =
true) =0;
1097 const core::position2d<s32>& pos,
1109 const core::position2d<s32>& pos,
1303 virtual u32 getVertexDescriptorCount()
const = 0;
IReferenceCounted()
Constructor.
Definition IReferenceCounted.h:50
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.h:22
Self reallocating template array (like stl vector) with additional features.
Definition irrArray.h:23
Specifies a 2 dimensional size.
Definition dimension2d.h:21
Rectangle template.
Definition rect.h:27
Provides a generic interface for attributes and their values and the possiblity to serialize them.
Definition IAttributes.h:42
Interface providing read acess to a file.
Definition IReadFile.h:18
Interface providing write access to a file.
Definition IWriteFile.h:18
Definition IIndexBuffer.h:25
Struct for holding a mesh with a single material.
Definition IMeshBuffer.h:42
Class which holds the geometry of an object.
Definition IMesh.h:24
An interface for easy manipulation of meshes.
Definition IMeshManipulator.h:26
Scene node interface.
Definition ISceneNode.h:41
Definition IVertexBuffer.h:17
Interface making it possible to create and use programs running on the GPU.
Definition IGPUProgrammingServices.h:42
Definition IHardwareBuffer.h:60
Interface for software image data.
Definition IImage.h:23
Class which is able to create a image from a file.
Definition IImageLoader.h:27
Interface for writing software image data.
Definition IImageWriter.h:26
Interface for material rendering.
Definition IMaterialRenderer.h:27
Definition IRWBuffer.h:18
Interface of a Video Driver dependent Texture.
Definition ITexture.h:119
Definition IVertexDescriptor.h:154
Interface to driver which is able to perform 2d and 3d graphics functions.
Definition IVideoDriver.h:388
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.
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.
virtual s32 addMaterialRenderer(IMaterialRenderer *renderer, const c8 *name=0)=0
Adds a new material renderer to the video device.
virtual u32 getOcclusionQueryResult(scene::ISceneNode *node) const =0
Return query result.
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 drawMeshBufferNormals(const scene::IMeshBuffer *mb, f32 length=10.f, SColor color=0xffffffff)=0
Draws normals of a mesh buffer.
virtual void clearZBuffer()=0
Clears the ZBuffer.
virtual core::stringc getVendorInfo()=0
Get the graphics card vendor name.
virtual IRWBuffer * createRWBuffer(video::ECOLOR_FORMAT format, u32 numElements, void *initialData=NULL)=0
Creates a buffer stored on gpu.
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 void setDefaultFrameBuffer(int framebuffer)=0
set default frame
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 int getDefaultFrameBuffer()=0
get default frame
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 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 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.
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 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 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 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
virtual bool setRenderTarget(const core::array< video::IRenderTarget > &texture, bool clearBackBuffer=true, bool clearZBuffer=true, SColor color=video::SColor(0, 0, 0, 0), video::ITexture *depthStencil=0)=0
Sets new multiple render targets. (this prototype will be removed in future).
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 void setMaterial(const SMaterial &material)=0
Sets a material.
virtual IVideoRenderTarget * addVideoRenderTarget(void *hwnd, u32 w, u32 h)=0
skylicht engine add
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 bool setRenderTarget(const core::array< video::IRenderTarget > &texture, video::ITexture *depthStencil, bool clearBackBuffer=true, bool clearZBuffer=true, SColor color=video::SColor(0, 0, 0, 0))
Sets new multiple render targets.
Definition IVideoDriver.h:760
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 bool setRenderTarget(video::ITexture *texture, video::ITexture *depthStencil, bool clearBackBuffer=true, bool clearZBuffer=true, SColor color=video::SColor(0, 0, 0, 0))
Sets a new render target.
Definition IVideoDriver.h:745
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 ITexture * addRenderTargetTextureArray(const core::dimension2d< u32 > &size, u32 arraySize, const io::path &name="rt", const ECOLOR_FORMAT format=ECF_UNKNOWN)=0
skylicht engine add
virtual void setTransform(E_TRANSFORMATION_STATE state, const core::matrix4 &mat)=0
sets transformation
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 bool setRenderTarget(video::ITexture *texture, bool clearBackBuffer=true, bool clearZBuffer=true, SColor color=video::SColor(0, 0, 0, 0), video::ITexture *depthStencil=0)=0
Sets a new render target. (this prototype will be removed in future).
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 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 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.
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 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 ITexture * addRenderTargetCubeTexture(const core::dimension2d< u32 > &size, const io::path &name="rt", const ECOLOR_FORMAT format=ECF_UNKNOWN)=0
skylicht engine add
virtual IMaterialRenderer * getMaterialRenderer(u32 idx)=0
Get access to a material renderer by index.
virtual bool isMaterialTransparent(const SMaterial &material)=0
Check material is transparent.
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.
Definition IVideoDriver.h:370
Class representing a 32 bit ARGB color.
Definition SColor.h:285
Class representing a color with four floats.
Definition SColor.h:542
Struct for holding parameters for a material renderer.
Definition SMaterial.h:255
bool ZWriteEnable
Is the zbuffer writeable or is it read-only. Default: true.
Definition SMaterial.h:463
u8 ColorMaterial
Defines the interpretation of vertex color in the lighting equation.
Definition SMaterial.h:422
SMaterialLayer TextureLayer[MATERIAL_MAX_TEXTURES]
Texture layer array.
Definition SMaterial.h:330
bool PointCloud
Draw as point cloud or filled triangles? Default: false.
Definition SMaterial.h:450
f32 BlendFactor
Store the blend factors.
Definition SMaterial.h:432
u8 ColorMask
Defines the enabled color planes.
Definition SMaterial.h:414
bool Wireframe
Draw as wireframe or filled triangles? Default: false.
Definition SMaterial.h:447
u8 ZBuffer
Is the ZBuffer enabled? Default: ECFN_LESSEQUAL.
Definition SMaterial.h:401
u8 AntiAliasing
Sets the antialiasing mode.
Definition SMaterial.h:407
bool UseMipMaps
Shall mipmaps be used if available.
Definition SMaterial.h:480
bool FrontfaceCulling
Is frontface culling enabled? Default: false.
Definition SMaterial.h:469
bool FogEnable
Is fog enabled? Default: false.
Definition SMaterial.h:472
E_POLYGON_OFFSET PolygonOffsetDirection
Flag defining the direction the polygon offset is applied to.
Definition SMaterial.h:441
bool GouraudShading
Flat or Gouraud shading? Default: true.
Definition SMaterial.h:453
bool NormalizeNormals
Should normals be normalized?
Definition SMaterial.h:476
bool BackfaceCulling
Is backface culling enabled? Default: true.
Definition SMaterial.h:466
u8 PolygonOffsetFactor
Factor specifying how far the polygon offset should be made.
Definition SMaterial.h:437
E_BLEND_OPERATION BlendOperation
Store the blend operation of choice.
Definition SMaterial.h:426
bool Lighting
Will this material be lighted? Default: true.
Definition SMaterial.h:456
bool BilinearFilter
Is bilinear filtering enabled? Default: true.
Definition SMaterialLayer.h:193
bool TrilinearFilter
Is trilinear filtering enabled? Default: false.
Definition SMaterialLayer.h:198
u8 AnisotropicFilter
Is anisotropic filtering enabled? Default: 0, disabled.
Definition SMaterialLayer.h:207
u8 TextureWrapU
Texture Clamp Mode.
Definition SMaterialLayer.h:189
vector3d< f32 > vector3df
Typedef for a f32 3d vector.
Definition vector3d.h:445
triangle3d< f32 > triangle3df
Typedef for a f32 3d triangle.
Definition triangle3d.h:335
CMatrix4< f32 > matrix4
Typedef for f32 matrix.
Definition matrix4.h:2241
dimension2d< u32 > dimension2du
Typedef for an unsigned integer dimension.
Definition dimension2d.h:212
string< c8 > stringc
Typedef for character strings.
Definition irrString.h:1373
plane3d< f32 > plane3df
Typedef for a f32 3d plane.
Definition plane3d.h:236
This namespace provides interfaces for input/output: Reading and writing files, accessing zip archive...
Definition EAttributes.h:11
core::string< fschar_t > path
Type used for all file system related strings.
Definition path.h:17
All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees a...
Definition CIndexBuffer.h:13
The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done ...
Definition EDriverFeatures.h:11
E_TRANSFORMATION_STATE
enumeration for geometry transformation states
Definition IVideoDriver.h:57
@ ETS_VIEW
View transformation.
Definition IVideoDriver.h:59
@ ETS_TEXTURE_1
Texture transformation.
Definition IVideoDriver.h:74
@ ETS_TEXTURE_2
Texture transformation.
Definition IVideoDriver.h:76
@ ETS_WORLD_VIEW_PROJECTION
World view projection.
Definition IVideoDriver.h:70
@ ETS_TEXTURE_0
Texture transformation.
Definition IVideoDriver.h:72
@ ETS_WORLD
World transformation.
Definition IVideoDriver.h:61
@ ETS_TEXTURE_3
Texture transformation.
Definition IVideoDriver.h:78
@ ETS_COUNT
Not used.
Definition IVideoDriver.h:194
@ ETS_WORLD_INVERSE
World inverse transformation.
Definition IVideoDriver.h:65
@ ETS_PROJECTION
Projection transformation.
Definition IVideoDriver.h:63
@ ETS_VIEW_PROJECTION
View projection transform.
Definition IVideoDriver.h:68
ECOLOR_FORMAT
An enum for the color format of textures used by the Irrlicht Engine.
Definition SColor.h:18
@ ECF_UNKNOWN
Unknown color format:
Definition SColor.h:138
@ ECF_A8R8G8B8
Default 32 bit color format. 8 bits are used for every component: red, green, blue and alpha.
Definition SColor.h:32
E_VIDEO_DRIVER_FEATURE
enumeration for querying features of the video driver.
Definition EDriverFeatures.h:15
E_LOST_RESOURCE
enumeration for signaling resources which were lost after the last render cycle
Definition IVideoDriver.h:202
@ ELR_TEXTURES
All texture are lost, rare problem.
Definition IVideoDriver.h:206
@ ELR_HW_BUFFERS
The HW buffers are lost, will be recreated automatically, but might require some more time this frame...
Definition IVideoDriver.h:210
@ ELR_DEVICE
The whole device/driver is lost.
Definition IVideoDriver.h:204
@ ELR_RTTS
The Render Target Textures are lost, typical problem for D3D.
Definition IVideoDriver.h:208
E_RENDER_TARGET
Special render targets, which usually map to dedicated hardware.
Definition IVideoDriver.h:216
@ ERT_AUX_BUFFER4
Auxiliary buffer 4.
Definition IVideoDriver.h:238
@ ERT_AUX_BUFFER1
Auxiliary buffer 1.
Definition IVideoDriver.h:232
@ ERT_RENDER_TEXTURE
Render target is a render texture.
Definition IVideoDriver.h:220
@ ERT_AUX_BUFFER0
Auxiliary buffer 0.
Definition IVideoDriver.h:230
@ ERT_FRAME_BUFFER
Render target is the main color frame buffer.
Definition IVideoDriver.h:218
@ ERT_STEREO_LEFT_BUFFER
Render target is the main color frame buffer.
Definition IVideoDriver.h:224
@ ERT_STEREO_BOTH_BUFFERS
Render to both stereo buffers at once.
Definition IVideoDriver.h:228
@ ERT_STEREO_RIGHT_BUFFER
Render target is the right color buffer (left is the main buffer).
Definition IVideoDriver.h:226
@ ERT_AUX_BUFFER3
Auxiliary buffer 3.
Definition IVideoDriver.h:236
@ ERT_MULTI_RENDER_TEXTURES
Multi-Render target textures.
Definition IVideoDriver.h:222
@ ERT_AUX_BUFFER2
Auxiliary buffer 2.
Definition IVideoDriver.h:234
E_BLEND_OPERATION
Values defining the blend operation.
Definition SMaterial.h:40
@ EBO_NONE
No blending happens.
Definition SMaterial.h:41
@ EMF_FRONT_FACE_CULLING
Is frontface culling enabled? Default: false.
Definition EMaterialFlags.h:40
@ EMF_POINTCLOUD
Draw as point cloud or filled triangles? Default: false.
Definition EMaterialFlags.h:20
@ EMF_NORMALIZE_NORMALS
Normalizes normals. Default: false.
Definition EMaterialFlags.h:66
@ EMF_ZBUFFER
Is the ZBuffer enabled? Default: true.
Definition EMaterialFlags.h:29
@ EMF_ZWRITE_ENABLE
May be written to the zbuffer or is it readonly. Default: true.
Definition EMaterialFlags.h:33
@ EMF_FOG_ENABLE
Is fog enabled? Default: false.
Definition EMaterialFlags.h:58
@ EMF_COLOR_MASK
ColorMask bits, for enabling the color planes.
Definition EMaterialFlags.h:75
@ EMF_TRILINEAR_FILTER
Is trilinear filtering enabled? Default: false.
Definition EMaterialFlags.h:48
@ EMF_TEXTURE_WRAP
Access to all layers texture wrap settings. Overwrites separate layer settings.
Definition EMaterialFlags.h:69
@ EMF_COLOR_MATERIAL
ColorMaterial enum for vertex color interpretation.
Definition EMaterialFlags.h:78
@ EMF_GOURAUD_SHADING
Flat or Gouraud shading? Default: true.
Definition EMaterialFlags.h:23
@ EMF_USE_MIP_MAPS
Flag for enabling/disabling mipmap usage.
Definition EMaterialFlags.h:81
@ EMF_ANISOTROPIC_FILTER
Is anisotropic filtering? Default: false.
Definition EMaterialFlags.h:55
@ EMF_ANTI_ALIASING
AntiAliasing mode.
Definition EMaterialFlags.h:72
@ EMF_BLEND_OPERATION
Flag for blend operation.
Definition EMaterialFlags.h:84
@ EMF_WIREFRAME
Draw as wireframe or filled triangles? Default: false.
Definition EMaterialFlags.h:17
@ EMF_POLYGON_OFFSET
Flag for polygon offset.
Definition EMaterialFlags.h:87
@ EMF_LIGHTING
Will this material be lighted? Default: true.
Definition EMaterialFlags.h:26
@ EMF_BACK_FACE_CULLING
Is backface culling enabled? Default: true.
Definition EMaterialFlags.h:36
@ EMF_BLEND_FACTOR
Flag for blend factor.
Definition EMaterialFlags.h:90
@ EMF_BILINEAR_FILTER
Is bilinear filtering enabled? Default: true.
Definition EMaterialFlags.h:43
E_COLOR_PLANE
Enum values for enabling/disabling color planes for rendering.
Definition SMaterial.h:86
@ ECP_ALL
All planes enabled.
Definition SMaterial.h:100
E_BLEND_FACTOR
Flag for EMT_ONETEXTURE_BLEND, ( BlendFactor ) BlendFunc = source * sourceFactor + dest * destFactor.
Definition SMaterial.h:24
@ EBF_ONE
src & dest (1, 1, 1, 1)
Definition SMaterial.h:26
@ EBF_ONE_MINUS_SRC_ALPHA
src & dest (1-srcA, 1-srcA, 1-srcA, 1-srcA)
Definition SMaterial.h:32
E_TEXTURE_CREATION_FLAG
Enumeration flags telling the video driver in which format textures should be created.
Definition ITexture.h:23
E_FOG_TYPE
Enum for the types of fog distributions to choose from.
Definition IVideoDriver.h:243
E_DRIVER_TYPE
An enum for all types of drivers the Irrlicht Engine supports.
Definition EDriverTypes.h:15
Everything in the Irrlicht Engine can be found in this namespace.
Definition Skylicht.h:33
float f32
32 bit floating point variable.
Definition irrTypes.h:104
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
char c8
8 bit character variable.
Definition irrTypes.h:31
signed int s32
32 bit signed variable.
Definition irrTypes.h:66
unsigned short u16
16 bit unsigned variable.
Definition irrTypes.h:40
struct holding data describing options
Definition IAttributeExchangingObject.h:35
Vertex with two texture coordinates.
Definition S3DVertex.h:121
standard vertex used by the Irrlicht engine.
Definition S3DVertex.h:55
Vertex with a tangent and binormal vector.
Definition S3DVertex.h:214
structure for holding data describing a driver and operating system specific data.
Definition SExposedVideoData.h:29
structure for holding data describing a dynamic point light.
Definition SLight.h:42
void apply(SMaterial &material)
Apply the enabled overrides.
Definition IVideoDriver.h:287
u32 EnableFlags
Which values are taken for override.
Definition IVideoDriver.h:274
SMaterial Material
The Material values.
Definition IVideoDriver.h:271
bool Enabled
Global enable flag, overwritten by the SceneManager in each pass.
Definition IVideoDriver.h:281
SOverrideMaterial()
Default constructor.
Definition IVideoDriver.h:284
u16 EnablePasses
Set in which render passes the material override is active.
Definition IVideoDriver.h:277