From 7028cbe09c688437910a25623098762bf0fa592d Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 28 Mar 2016 22:28:34 +1000 Subject: Move Irrlicht to src/others. --- .../doc/html/_i_video_driver_8h_source.html | 790 +++++++++++++++++++++ 1 file changed, 790 insertions(+) create mode 100644 src/others/irrlicht-1.8.1/doc/html/_i_video_driver_8h_source.html (limited to 'src/others/irrlicht-1.8.1/doc/html/_i_video_driver_8h_source.html') diff --git a/src/others/irrlicht-1.8.1/doc/html/_i_video_driver_8h_source.html b/src/others/irrlicht-1.8.1/doc/html/_i_video_driver_8h_source.html new file mode 100644 index 0000000..3512ade --- /dev/null +++ b/src/others/irrlicht-1.8.1/doc/html/_i_video_driver_8h_source.html @@ -0,0 +1,790 @@ + + + + +Irrlicht 3D Engine: IVideoDriver.h Source File + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + +
+
Irrlicht 3D Engine + +
+ +
+ + + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
IVideoDriver.h
+
+
+Go to the documentation of this file.
00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
+00002 // This file is part of the "Irrlicht Engine".
+00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
+00004 
+00005 #ifndef __IRR_I_VIDEO_DRIVER_H_INCLUDED__
+00006 #define __IRR_I_VIDEO_DRIVER_H_INCLUDED__
+00007 
+00008 #include "rect.h"
+00009 #include "SColor.h"
+00010 #include "ITexture.h"
+00011 #include "irrArray.h"
+00012 #include "matrix4.h"
+00013 #include "plane3d.h"
+00014 #include "dimension2d.h"
+00015 #include "position2d.h"
+00016 #include "SMaterial.h"
+00017 #include "IMeshBuffer.h"
+00018 #include "triangle3d.h"
+00019 #include "EDriverTypes.h"
+00020 #include "EDriverFeatures.h"
+00021 #include "SExposedVideoData.h"
+00022 
+00023 namespace irr
+00024 {
+00025 namespace io
+00026 {
+00027     class IAttributes;
+00028     struct SAttributeReadWriteOptions;
+00029     class IReadFile;
+00030     class IWriteFile;
+00031 } // end namespace io
+00032 namespace scene
+00033 {
+00034     class IMeshBuffer;
+00035     class IMesh;
+00036     class IMeshManipulator;
+00037     class ISceneNode;
+00038 } // end namespace scene
+00039 
+00040 namespace video
+00041 {
+00042     struct S3DVertex;
+00043     struct S3DVertex2TCoords;
+00044     struct S3DVertexTangents;
+00045     struct SLight;
+00046     class IImageLoader;
+00047     class IImageWriter;
+00048     class IMaterialRenderer;
+00049     class IGPUProgrammingServices;
+00050 
+00052     enum E_TRANSFORMATION_STATE
+00053     {
+00055         ETS_VIEW = 0,
+00057         ETS_WORLD,
+00059         ETS_PROJECTION,
+00061         ETS_TEXTURE_0,
+00063         ETS_TEXTURE_1,
+00065         ETS_TEXTURE_2,
+00067         ETS_TEXTURE_3,
+00068 #if _IRR_MATERIAL_MAX_TEXTURES_>4
+00069 
+00070         ETS_TEXTURE_4,
+00071 #if _IRR_MATERIAL_MAX_TEXTURES_>5
+00072 
+00073         ETS_TEXTURE_5,
+00074 #if _IRR_MATERIAL_MAX_TEXTURES_>6
+00075 
+00076         ETS_TEXTURE_6,
+00077 #if _IRR_MATERIAL_MAX_TEXTURES_>7
+00078 
+00079         ETS_TEXTURE_7,
+00080 #endif
+00081 #endif
+00082 #endif
+00083 #endif
+00084 
+00085         ETS_COUNT
+00086     };
+00087 
+00089 
+00092     enum E_LOST_RESOURCE
+00093     {
+00095         ELR_DEVICE = 1,
+00097         ELR_TEXTURES = 2,
+00099         ELR_RTTS = 4,
+00101         ELR_HW_BUFFERS = 8
+00102     };
+00103 
+00105 
+00106     enum E_RENDER_TARGET
+00107     {
+00109         ERT_FRAME_BUFFER=0,
+00111         ERT_RENDER_TEXTURE,
+00113         ERT_MULTI_RENDER_TEXTURES,
+00115         ERT_STEREO_LEFT_BUFFER,
+00117         ERT_STEREO_RIGHT_BUFFER,
+00119         ERT_STEREO_BOTH_BUFFERS,
+00121         ERT_AUX_BUFFER0,
+00123         ERT_AUX_BUFFER1,
+00125         ERT_AUX_BUFFER2,
+00127         ERT_AUX_BUFFER3,
+00129         ERT_AUX_BUFFER4
+00130     };
+00131 
+00133     enum E_FOG_TYPE
+00134     {
+00135         EFT_FOG_EXP=0,
+00136         EFT_FOG_LINEAR,
+00137         EFT_FOG_EXP2
+00138     };
+00139 
+00140     const c8* const FogTypeNames[] =
+00141     {
+00142         "FogExp",
+00143         "FogLinear",
+00144         "FogExp2",
+00145         0
+00146     };
+00147 
+00148     struct SOverrideMaterial
+00149     {
+00151         SMaterial Material;
+00153 
+00154         u32 EnableFlags;
+00156 
+00157         u16 EnablePasses;
+00159 
+00161         bool Enabled;
+00162 
+00164         SOverrideMaterial() : EnableFlags(0), EnablePasses(0), Enabled(false) {}
+00165 
+00167         void apply(SMaterial& material)
+00168         {
+00169             if (Enabled)
+00170             {
+00171                 for (u32 i=0; i<32; ++i)
+00172                 {
+00173                     const u32 num=(1<<i);
+00174                     if (EnableFlags & num)
+00175                     {
+00176                         switch (num)
+00177                         {
+00178                         case EMF_WIREFRAME: material.Wireframe = Material.Wireframe; break;
+00179                         case EMF_POINTCLOUD: material.PointCloud = Material.PointCloud; break;
+00180                         case EMF_GOURAUD_SHADING: material.GouraudShading = Material.GouraudShading; break;
+00181                         case EMF_LIGHTING: material.Lighting = Material.Lighting; break;
+00182                         case EMF_ZBUFFER: material.ZBuffer = Material.ZBuffer; break;
+00183                         case EMF_ZWRITE_ENABLE: material.ZWriteEnable = Material.ZWriteEnable; break;
+00184                         case EMF_BACK_FACE_CULLING: material.BackfaceCulling = Material.BackfaceCulling; break;
+00185                         case EMF_FRONT_FACE_CULLING: material.FrontfaceCulling = Material.FrontfaceCulling; break;
+00186                         case EMF_BILINEAR_FILTER: material.TextureLayer[0].BilinearFilter = Material.TextureLayer[0].BilinearFilter; break;
+00187                         case EMF_TRILINEAR_FILTER: material.TextureLayer[0].TrilinearFilter = Material.TextureLayer[0].TrilinearFilter; break;
+00188                         case EMF_ANISOTROPIC_FILTER: material.TextureLayer[0].AnisotropicFilter = Material.TextureLayer[0].AnisotropicFilter; break;
+00189                         case EMF_FOG_ENABLE: material.FogEnable = Material.FogEnable; break;
+00190                         case EMF_NORMALIZE_NORMALS: material.NormalizeNormals = Material.NormalizeNormals; break;
+00191                         case EMF_TEXTURE_WRAP:
+00192                             material.TextureLayer[0].TextureWrapU = Material.TextureLayer[0].TextureWrapU;
+00193                             material.TextureLayer[0].TextureWrapV = Material.TextureLayer[0].TextureWrapV;
+00194                             break;
+00195                         case EMF_ANTI_ALIASING: material.AntiAliasing = Material.AntiAliasing; break;
+00196                         case EMF_COLOR_MASK: material.ColorMask = Material.ColorMask; break;
+00197                         case EMF_COLOR_MATERIAL: material.ColorMaterial = Material.ColorMaterial; break;
+00198                         case EMF_USE_MIP_MAPS: material.UseMipMaps = Material.UseMipMaps; break;
+00199                         case EMF_BLEND_OPERATION: material.BlendOperation = Material.BlendOperation; break;
+00200                         case EMF_POLYGON_OFFSET:
+00201                             material.PolygonOffsetDirection = Material.PolygonOffsetDirection;
+00202                             material.PolygonOffsetFactor = Material.PolygonOffsetFactor; break;
+00203                         }
+00204                     }
+00205                 }
+00206             }
+00207         }
+00208 
+00209     };
+00210 
+00211     struct IRenderTarget
+00212     {
+00213         IRenderTarget(ITexture* texture,
+00214                 E_COLOR_PLANE colorMask=ECP_ALL,
+00215                 E_BLEND_FACTOR blendFuncSrc=EBF_ONE,
+00216                 E_BLEND_FACTOR blendFuncDst=EBF_ONE_MINUS_SRC_ALPHA,
+00217                 E_BLEND_OPERATION blendOp=EBO_NONE) :
+00218             RenderTexture(texture),
+00219             TargetType(ERT_RENDER_TEXTURE), ColorMask(colorMask),
+00220             BlendFuncSrc(blendFuncSrc), BlendFuncDst(blendFuncDst),
+00221             BlendOp(blendOp) {}
+00222         IRenderTarget(E_RENDER_TARGET target,
+00223                 E_COLOR_PLANE colorMask=ECP_ALL,
+00224                 E_BLEND_FACTOR blendFuncSrc=EBF_ONE,
+00225                 E_BLEND_FACTOR blendFuncDst=EBF_ONE_MINUS_SRC_ALPHA,
+00226                 E_BLEND_OPERATION blendOp=EBO_NONE) :
+00227             RenderTexture(0),
+00228             TargetType(target), ColorMask(colorMask),
+00229             BlendFuncSrc(blendFuncSrc), BlendFuncDst(blendFuncDst),
+00230             BlendOp(blendOp) {}
+00231         bool operator!=(const IRenderTarget& other) const
+00232         {
+00233             return ((RenderTexture != other.RenderTexture) ||
+00234                 (TargetType != other.TargetType) ||
+00235                 (ColorMask != other.ColorMask) ||
+00236                 (BlendFuncSrc != other.BlendFuncSrc) ||
+00237                 (BlendFuncDst != other.BlendFuncDst) ||
+00238                 (BlendOp != other.BlendOp));
+00239         }
+00240         ITexture* RenderTexture;
+00241         E_RENDER_TARGET TargetType:8;
+00242         E_COLOR_PLANE ColorMask:8;
+00243         E_BLEND_FACTOR BlendFuncSrc:4;
+00244         E_BLEND_FACTOR BlendFuncDst:4;
+00245         E_BLEND_OPERATION BlendOp:4;
+00246     };
+00247 
+00249 
+00256     class IVideoDriver : public virtual IReferenceCounted
+00257     {
+00258     public:
+00259 
+00261 
+00278         virtual bool beginScene(bool backBuffer=true, bool zBuffer=true,
+00279                 SColor color=SColor(255,0,0,0),
+00280                 const SExposedVideoData& videoData=SExposedVideoData(),
+00281                 core::rect<s32>* sourceRect=0) =0;
+00282 
+00284 
+00287         virtual bool endScene() =0;
+00288 
+00290 
+00293         virtual bool queryFeature(E_VIDEO_DRIVER_FEATURE feature) const =0;
+00294 
+00296 
+00300         virtual void disableFeature(E_VIDEO_DRIVER_FEATURE feature, bool flag=true) =0;
+00301 
+00303 
+00319         virtual const io::IAttributes& getDriverAttributes() const=0;
+00320 
+00322 
+00325         virtual bool checkDriverReset() =0;
+00326 
+00328 
+00331         virtual void setTransform(E_TRANSFORMATION_STATE state, const core::matrix4& mat) =0;
+00332 
+00334 
+00336         virtual const core::matrix4& getTransform(E_TRANSFORMATION_STATE state) const =0;
+00337 
+00339 
+00340         virtual u32 getImageLoaderCount() const = 0;
+00341 
+00343 
+00346         virtual IImageLoader* getImageLoader(u32 n) = 0;
+00347 
+00349 
+00350         virtual u32 getImageWriterCount() const = 0;
+00351 
+00353 
+00356         virtual IImageWriter* getImageWriter(u32 n) = 0;
+00357 
+00359 
+00361         virtual void setMaterial(const SMaterial& material) =0;
+00362 
+00364 
+00373         virtual ITexture* getTexture(const io::path& filename) = 0;
+00374 
+00376 
+00385         virtual ITexture* getTexture(io::IReadFile* file) =0;
+00386 
+00388 
+00394         virtual ITexture* getTextureByIndex(u32 index) =0;
+00395 
+00397 
+00398         virtual u32 getTextureCount() const = 0;
+00399 
+00401 
+00403         virtual void renameTexture(ITexture* texture, const io::path& newName) = 0;
+00404 
+00406 
+00415         virtual ITexture* addTexture(const core::dimension2d<u32>& size,
+00416             const io::path& name, ECOLOR_FORMAT format = ECF_A8R8G8B8) = 0;
+00417 
+00419 
+00429         virtual ITexture* addTexture(const io::path& name, IImage* image, void* mipmapData=0) = 0;
+00430 
+00432 
+00441         virtual ITexture* addRenderTargetTexture(const core::dimension2d<u32>& size,
+00442                 const io::path& name = "rt", const ECOLOR_FORMAT format = ECF_UNKNOWN) =0;
+00443 
+00445 
+00452         virtual void removeTexture(ITexture* texture) =0;
+00453 
+00455 
+00461         virtual void removeAllTextures() =0;
+00462 
+00464         virtual void removeHardwareBuffer(const scene::IMeshBuffer* mb) =0;
+00465 
+00467         virtual void removeAllHardwareBuffers() =0;
+00468 
+00470 
+00471         virtual void addOcclusionQuery(scene::ISceneNode* node,
+00472                 const scene::IMesh* mesh=0) =0;
+00473 
+00475         virtual void removeOcclusionQuery(scene::ISceneNode* node) =0;
+00476 
+00478         virtual void removeAllOcclusionQueries() =0;
+00479 
+00481 
+00483         virtual void runOcclusionQuery(scene::ISceneNode* node, bool visible=false) =0;
+00484 
+00486 
+00488         virtual void runAllOcclusionQueries(bool visible=false) =0;
+00489 
+00491 
+00493         virtual void updateOcclusionQuery(scene::ISceneNode* node, bool block=true) =0;
+00494 
+00496 
+00498         virtual void updateAllOcclusionQueries(bool block=true) =0;
+00499 
+00501 
+00504         virtual u32 getOcclusionQueryResult(scene::ISceneNode* node) const =0;
+00505 
+00507 
+00523         virtual void makeColorKeyTexture(video::ITexture* texture,
+00524                         video::SColor color,
+00525                         bool zeroTexels = false) const =0;
+00526 
+00528 
+00540         virtual void makeColorKeyTexture(video::ITexture* texture,
+00541                 core::position2d<s32> colorKeyPixelPos,
+00542                 bool zeroTexels = false) const =0;
+00543 
+00545 
+00552         virtual void makeNormalMapTexture(video::ITexture* texture, f32 amplitude=1.0f) const =0;
+00553 
+00555 
+00586         virtual bool setRenderTarget(video::ITexture* texture,
+00587             bool clearBackBuffer=true, bool clearZBuffer=true,
+00588             SColor color=video::SColor(0,0,0,0)) =0;
+00589 
+00591 
+00602         virtual bool setRenderTarget(E_RENDER_TARGET target, bool clearTarget=true,
+00603                     bool clearZBuffer=true,
+00604                     SColor color=video::SColor(0,0,0,0)) =0;
+00605 
+00607         virtual bool setRenderTarget(const core::array<video::IRenderTarget>& texture,
+00608             bool clearBackBuffer=true, bool clearZBuffer=true,
+00609             SColor color=video::SColor(0,0,0,0)) =0;
+00610 
+00612 
+00615         virtual void setViewPort(const core::rect<s32>& area) =0;
+00616 
+00618 
+00619         virtual const core::rect<s32>& getViewPort() const =0;
+00620 
+00622 
+00636         virtual void drawVertexPrimitiveList(const void* vertices, u32 vertexCount,
+00637                 const void* indexList, u32 primCount,
+00638                 E_VERTEX_TYPE vType=EVT_STANDARD,
+00639                 scene::E_PRIMITIVE_TYPE pType=scene::EPT_TRIANGLES,
+00640                 E_INDEX_TYPE iType=EIT_16BIT) =0;
+00641 
+00643 
+00662         virtual void draw2DVertexPrimitiveList(const void* vertices, u32 vertexCount,
+00663                 const void* indexList, u32 primCount,
+00664                 E_VERTEX_TYPE vType=EVT_STANDARD,
+00665                 scene::E_PRIMITIVE_TYPE pType=scene::EPT_TRIANGLES,
+00666                 E_INDEX_TYPE iType=EIT_16BIT) =0;
+00667 
+00669 
+00677         void drawIndexedTriangleList(const S3DVertex* vertices,
+00678             u32 vertexCount, const u16* indexList, u32 triangleCount)
+00679         {
+00680             drawVertexPrimitiveList(vertices, vertexCount, indexList, triangleCount, EVT_STANDARD, scene::EPT_TRIANGLES, EIT_16BIT);
+00681         }
+00682 
+00684 
+00692         void drawIndexedTriangleList(const S3DVertex2TCoords* vertices,
+00693             u32 vertexCount, const u16* indexList, u32 triangleCount)
+00694         {
+00695             drawVertexPrimitiveList(vertices, vertexCount, indexList, triangleCount, EVT_2TCOORDS, scene::EPT_TRIANGLES, EIT_16BIT);
+00696         }
+00697 
+00699 
+00707         void drawIndexedTriangleList(const S3DVertexTangents* vertices,
+00708             u32 vertexCount, const u16* indexList, u32 triangleCount)
+00709         {
+00710             drawVertexPrimitiveList(vertices, vertexCount, indexList, triangleCount, EVT_TANGENTS, scene::EPT_TRIANGLES, EIT_16BIT);
+00711         }
+00712 
+00714 
+00722         void drawIndexedTriangleFan(const S3DVertex* vertices,
+00723             u32 vertexCount, const u16* indexList, u32 triangleCount)
+00724         {
+00725             drawVertexPrimitiveList(vertices, vertexCount, indexList, triangleCount, EVT_STANDARD, scene::EPT_TRIANGLE_FAN, EIT_16BIT);
+00726         }
+00727 
+00729 
+00737         void drawIndexedTriangleFan(const S3DVertex2TCoords* vertices,
+00738             u32 vertexCount, const u16* indexList, u32 triangleCount)
+00739         {
+00740             drawVertexPrimitiveList(vertices, vertexCount, indexList, triangleCount, EVT_2TCOORDS, scene::EPT_TRIANGLE_FAN, EIT_16BIT);
+00741         }
+00742 
+00744 
+00752         void drawIndexedTriangleFan(const S3DVertexTangents* vertices,
+00753             u32 vertexCount, const u16* indexList, u32 triangleCount)
+00754         {
+00755             drawVertexPrimitiveList(vertices, vertexCount, indexList, triangleCount, EVT_TANGENTS, scene::EPT_TRIANGLE_FAN, EIT_16BIT);
+00756         }
+00757 
+00759 
+00773         virtual void draw3DLine(const core::vector3df& start,
+00774             const core::vector3df& end, SColor color = SColor(255,255,255,255)) =0;
+00775 
+00777 
+00790         virtual void draw3DTriangle(const core::triangle3df& triangle,
+00791             SColor color = SColor(255,255,255,255)) =0;
+00792 
+00794 
+00805         virtual void draw3DBox(const core::aabbox3d<f32>& box,
+00806             SColor color = SColor(255,255,255,255)) =0;
+00807 
+00809 
+00812         virtual void draw2DImage(const video::ITexture* texture,
+00813             const core::position2d<s32>& destPos) =0;
+00814 
+00816 
+00831         virtual void draw2DImage(const video::ITexture* texture, const core::position2d<s32>& destPos,
+00832             const core::rect<s32>& sourceRect, const core::rect<s32>* clipRect =0,
+00833             SColor color=SColor(255,255,255,255), bool useAlphaChannelOfTexture=false) =0;
+00834 
+00836 
+00855         virtual void draw2DImageBatch(const video::ITexture* texture,
+00856                 const core::position2d<s32>& pos,
+00857                 const core::array<core::rect<s32> >& sourceRects,
+00858                 const core::array<s32>& indices,
+00859                 s32 kerningWidth=0,
+00860                 const core::rect<s32>* clipRect=0,
+00861                 SColor color=SColor(255,255,255,255),
+00862                 bool useAlphaChannelOfTexture=false) =0;
+00863 
+00865 
+00880         virtual void draw2DImageBatch(const video::ITexture* texture,
+00881                 const core::array<core::position2d<s32> >& positions,
+00882                 const core::array<core::rect<s32> >& sourceRects,
+00883                 const core::rect<s32>* clipRect=0,
+00884                 SColor color=SColor(255,255,255,255),
+00885                 bool useAlphaChannelOfTexture=false) =0;
+00886 
+00888 
+00897         virtual void draw2DImage(const video::ITexture* texture, const core::rect<s32>& destRect,
+00898             const core::rect<s32>& sourceRect, const core::rect<s32>* clipRect =0,
+00899             const video::SColor * const colors=0, bool useAlphaChannelOfTexture=false) =0;
+00900 
+00902 
+00909         virtual void draw2DRectangle(SColor color, const core::rect<s32>& pos,
+00910             const core::rect<s32>* clip =0) =0;
+00911 
+00913 
+00929         virtual void draw2DRectangle(const core::rect<s32>& pos,
+00930                 SColor colorLeftUp, SColor colorRightUp,
+00931                 SColor colorLeftDown, SColor colorRightDown,
+00932                 const core::rect<s32>* clip =0) =0;
+00933 
+00935 
+00938         virtual void draw2DRectangleOutline(const core::recti& pos,
+00939                 SColor color=SColor(255,255,255,255)) =0;
+00940 
+00942 
+00947         virtual void draw2DLine(const core::position2d<s32>& start,
+00948                     const core::position2d<s32>& end,
+00949                     SColor color=SColor(255,255,255,255)) =0;
+00950 
+00952 
+00955         virtual void drawPixel(u32 x, u32 y, const SColor& color) =0;
+00956 
+00958 
+00970         virtual void draw2DPolygon(core::position2d<s32> center,
+00971                 f32 radius,
+00972                 video::SColor color=SColor(100,255,255,255),
+00973                 s32 vertexCount=10) =0;
+00974 
+00976 
+00989         virtual void drawStencilShadowVolume(const core::array<core::vector3df>& triangles, bool zfail=true, u32 debugDataVisible=0) =0;
+00990 
+00992 
+01011         virtual void drawStencilShadow(bool clearStencilBuffer=false,
+01012             video::SColor leftUpEdge = video::SColor(255,0,0,0),
+01013             video::SColor rightUpEdge = video::SColor(255,0,0,0),
+01014             video::SColor leftDownEdge = video::SColor(255,0,0,0),
+01015             video::SColor rightDownEdge = video::SColor(255,0,0,0)) =0;
+01016 
+01018 
+01019         virtual void drawMeshBuffer(const scene::IMeshBuffer* mb) =0;
+01020 
+01022 
+01026         virtual void drawMeshBufferNormals(const scene::IMeshBuffer* mb, f32 length=10.f, SColor color=0xffffffff) =0;
+01027 
+01029 
+01045         virtual void setFog(SColor color=SColor(0,255,255,255),
+01046                 E_FOG_TYPE fogType=EFT_FOG_LINEAR,
+01047                 f32 start=50.0f, f32 end=100.0f, f32 density=0.01f,
+01048                 bool pixelFog=false, bool rangeFog=false) =0;
+01049 
+01051         virtual void getFog(SColor& color, E_FOG_TYPE& fogType,
+01052                 f32& start, f32& end, f32& density,
+01053                 bool& pixelFog, bool& rangeFog) = 0;
+01054 
+01056 
+01057         virtual ECOLOR_FORMAT getColorFormat() const =0;
+01058 
+01060 
+01061         virtual const core::dimension2d<u32>& getScreenSize() const =0;
+01062 
+01064 
+01068         virtual const core::dimension2d<u32>& getCurrentRenderTargetSize() const =0;
+01069 
+01071 
+01076         virtual s32 getFPS() const =0;
+01077 
+01079 
+01083         virtual u32 getPrimitiveCountDrawn( u32 mode =0 ) const =0;
+01084 
+01086         virtual void deleteAllDynamicLights() =0;
+01087 
+01091         virtual s32 addDynamicLight(const SLight& light) =0;
+01092 
+01094 
+01095         virtual u32 getMaximalDynamicLightAmount() const =0;
+01096 
+01098 
+01099         virtual u32 getDynamicLightCount() const =0;
+01100 
+01102 
+01105         virtual const SLight& getDynamicLight(u32 idx) const =0;
+01106 
+01110         virtual void turnLightOn(s32 lightIndex, bool turnOn) =0;
+01111 
+01113 
+01115         virtual const wchar_t* getName() const =0;
+01116 
+01118 
+01124         virtual void addExternalImageLoader(IImageLoader* loader) =0;
+01125 
+01127 
+01133         virtual void addExternalImageWriter(IImageWriter* writer) =0;
+01134 
+01136 
+01139         virtual u32 getMaximalPrimitiveCount() const =0;
+01140 
+01142 
+01151         virtual void setTextureCreationFlag(E_TEXTURE_CREATION_FLAG flag, bool enabled=true) =0;
+01152 
+01154 
+01157         virtual bool getTextureCreationFlag(E_TEXTURE_CREATION_FLAG flag) const =0;
+01158 
+01160 
+01168         virtual IImage* createImageFromFile(const io::path& filename) = 0;
+01169 
+01171 
+01178         virtual IImage* createImageFromFile(io::IReadFile* file) =0;
+01179 
+01181 
+01188         virtual bool writeImageToFile(IImage* image, const io::path& filename, u32 param = 0) = 0;
+01189 
+01191 
+01199         virtual bool writeImageToFile(IImage* image, io::IWriteFile* file, u32 param =0) =0;
+01200 
+01202 
+01216         virtual IImage* createImageFromData(ECOLOR_FORMAT format,
+01217             const core::dimension2d<u32>& size, void *data,
+01218             bool ownForeignMemory=false,
+01219             bool deleteMemory = true) =0;
+01220 
+01222 
+01228         virtual IImage* createImage(ECOLOR_FORMAT format, const core::dimension2d<u32>& size) =0;
+01229 
+01231 
+01237         _IRR_DEPRECATED_ virtual IImage* createImage(ECOLOR_FORMAT format, IImage *imageToCopy) =0;
+01238 
+01240 
+01247         _IRR_DEPRECATED_ virtual IImage* createImage(IImage* imageToCopy,
+01248                 const core::position2d<s32>& pos,
+01249                 const core::dimension2d<u32>& size) =0;
+01250 
+01252 
+01259         virtual IImage* createImage(ITexture* texture,
+01260                 const core::position2d<s32>& pos,
+01261                 const core::dimension2d<u32>& size) =0;
+01262 
+01264 
+01266         virtual void OnResize(const core::dimension2d<u32>& size) =0;
+01267 
+01269 
+01289         virtual s32 addMaterialRenderer(IMaterialRenderer* renderer, const c8* name =0) =0;
+01290 
+01292 
+01296         virtual IMaterialRenderer* getMaterialRenderer(u32 idx) =0;
+01297 
+01299 
+01300         virtual u32 getMaterialRendererCount() const =0;
+01301 
+01303 
+01312         virtual const c8* getMaterialRendererName(u32 idx) const =0;
+01313 
+01315 
+01320         virtual void setMaterialRendererName(s32 idx, const c8* name) =0;
+01321 
+01323 
+01332         virtual io::IAttributes* createAttributesFromMaterial(const video::SMaterial& material,
+01333             io::SAttributeReadWriteOptions* options=0) =0;
+01334 
+01336 
+01342         virtual void fillMaterialStructureFromAttributes(video::SMaterial& outMaterial, io::IAttributes* attributes) =0;
+01343 
+01345 
+01348         virtual const SExposedVideoData& getExposedVideoData() =0;
+01349 
+01351 
+01352         virtual E_DRIVER_TYPE getDriverType() const =0;
+01353 
+01355 
+01358         virtual IGPUProgrammingServices* getGPUProgrammingServices() =0;
+01359 
+01361         virtual scene::IMeshManipulator* getMeshManipulator() =0;
+01362 
+01364 
+01370         virtual void clearZBuffer() =0;
+01371 
+01373 
+01374         virtual IImage* createScreenShot(video::ECOLOR_FORMAT format=video::ECF_UNKNOWN, video::E_RENDER_TARGET target=video::ERT_FRAME_BUFFER) =0;
+01375 
+01377 
+01381         virtual video::ITexture* findTexture(const io::path& filename) = 0;
+01382 
+01384 
+01392         virtual bool setClipPlane(u32 index, const core::plane3df& plane, bool enable=false) =0;
+01393 
+01395 
+01401         virtual void enableClipPlane(u32 index, bool enable) =0;
+01402 
+01404 
+01405         virtual void setMinHardwareBufferVertexCount(u32 count) =0;
+01406 
+01408 
+01412         virtual SOverrideMaterial& getOverrideMaterial() =0;
+01413 
+01415 
+01428         virtual SMaterial& getMaterial2D() =0;
+01429 
+01431 
+01433         virtual void enableMaterial2D(bool enable=true) =0;
+01434 
+01436         virtual core::stringc getVendorInfo() =0;
+01437 
+01439 
+01442         virtual void setAmbientLight(const SColorf& color) =0;
+01443 
+01445 
+01448         virtual void setAllowZWriteOnTransparent(bool flag) =0;
+01449 
+01451         virtual core::dimension2du getMaxTextureSize() const =0;
+01452 
+01454 
+01463         virtual void convertColor(const void* sP, ECOLOR_FORMAT sF, s32 sN,
+01464                 void* dP, ECOLOR_FORMAT dF) const =0;
+01465     };
+01466 
+01467 } // end namespace video
+01468 } // end namespace irr
+01469 
+01470 
+01471 #endif
+
+
+ + + + + -- cgit v1.1