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