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/_s_material_layer_8h_source.html | 309 +++++++++++++++++++++ 1 file changed, 309 insertions(+) create mode 100644 src/others/irrlicht-1.8.1/doc/html/_s_material_layer_8h_source.html (limited to 'src/others/irrlicht-1.8.1/doc/html/_s_material_layer_8h_source.html') diff --git a/src/others/irrlicht-1.8.1/doc/html/_s_material_layer_8h_source.html b/src/others/irrlicht-1.8.1/doc/html/_s_material_layer_8h_source.html new file mode 100644 index 0000000..6304095 --- /dev/null +++ b/src/others/irrlicht-1.8.1/doc/html/_s_material_layer_8h_source.html @@ -0,0 +1,309 @@ + + + + +Irrlicht 3D Engine: SMaterialLayer.h Source File + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + +
+
Irrlicht 3D Engine + +
+ +
+ + + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
SMaterialLayer.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 __S_MATERIAL_LAYER_H_INCLUDED__
+00006 #define __S_MATERIAL_LAYER_H_INCLUDED__
+00007 
+00008 #include "matrix4.h"
+00009 #include "irrAllocator.h"
+00010 
+00011 namespace irr
+00012 {
+00013 namespace video
+00014 {
+00015     class ITexture;
+00016 
+00018     enum E_TEXTURE_CLAMP
+00019     {
+00021         ETC_REPEAT = 0,
+00023         ETC_CLAMP,
+00025         ETC_CLAMP_TO_EDGE,
+00027         ETC_CLAMP_TO_BORDER,
+00029         ETC_MIRROR,
+00031         ETC_MIRROR_CLAMP,
+00033         ETC_MIRROR_CLAMP_TO_EDGE,
+00035         ETC_MIRROR_CLAMP_TO_BORDER
+00036     };
+00037     static const char* const aTextureClampNames[] = {
+00038             "texture_clamp_repeat",
+00039             "texture_clamp_clamp",
+00040             "texture_clamp_clamp_to_edge",
+00041             "texture_clamp_clamp_to_border",
+00042             "texture_clamp_mirror",
+00043             "texture_clamp_mirror_clamp",
+00044             "texture_clamp_mirror_clamp_to_edge",
+00045             "texture_clamp_mirror_clamp_to_border", 0};
+00046 
+00048     class SMaterialLayer
+00049     {
+00050     public:
+00052         SMaterialLayer()
+00053             : Texture(0),
+00054                 TextureWrapU(ETC_REPEAT),
+00055                 TextureWrapV(ETC_REPEAT),
+00056                 BilinearFilter(true),
+00057                 TrilinearFilter(false),
+00058                 AnisotropicFilter(0),
+00059                 LODBias(0),
+00060                 TextureMatrix(0)
+00061             {}
+00062 
+00064 
+00065         SMaterialLayer(const SMaterialLayer& other)
+00066         {
+00067             // This pointer is checked during assignment
+00068             TextureMatrix = 0;
+00069             *this = other;
+00070         }
+00071 
+00073         ~SMaterialLayer()
+00074         {
+00075             MatrixAllocator.destruct(TextureMatrix);
+00076             MatrixAllocator.deallocate(TextureMatrix); 
+00077         }
+00078 
+00080 
+00082         SMaterialLayer& operator=(const SMaterialLayer& other)
+00083         {
+00084             // Check for self-assignment!
+00085             if (this == &other)
+00086                 return *this;
+00087 
+00088             Texture = other.Texture;
+00089             if (TextureMatrix)
+00090             {
+00091                 if (other.TextureMatrix)
+00092                     *TextureMatrix = *other.TextureMatrix;
+00093                 else
+00094                 {
+00095                     MatrixAllocator.destruct(TextureMatrix);
+00096                     MatrixAllocator.deallocate(TextureMatrix); 
+00097                     TextureMatrix = 0;
+00098                 }
+00099             }
+00100             else
+00101             {
+00102                 if (other.TextureMatrix)
+00103                 {
+00104                     TextureMatrix = MatrixAllocator.allocate(1);
+00105                     MatrixAllocator.construct(TextureMatrix,*other.TextureMatrix);
+00106                 }
+00107                 else
+00108                     TextureMatrix = 0;
+00109             }
+00110             TextureWrapU = other.TextureWrapU;
+00111             TextureWrapV = other.TextureWrapV;
+00112             BilinearFilter = other.BilinearFilter;
+00113             TrilinearFilter = other.TrilinearFilter;
+00114             AnisotropicFilter = other.AnisotropicFilter;
+00115             LODBias = other.LODBias;
+00116 
+00117             return *this;
+00118         }
+00119 
+00121 
+00122         core::matrix4& getTextureMatrix()
+00123         {
+00124             if (!TextureMatrix)
+00125             {
+00126                 TextureMatrix = MatrixAllocator.allocate(1);
+00127                 MatrixAllocator.construct(TextureMatrix,core::IdentityMatrix);
+00128             }
+00129             return *TextureMatrix;
+00130         }
+00131 
+00133 
+00134         const core::matrix4& getTextureMatrix() const
+00135         {
+00136             if (TextureMatrix)
+00137                 return *TextureMatrix;
+00138             else
+00139                 return core::IdentityMatrix;
+00140         }
+00141 
+00143 
+00144         void setTextureMatrix(const core::matrix4& mat)
+00145         {
+00146             if (!TextureMatrix)
+00147             {
+00148                 TextureMatrix = MatrixAllocator.allocate(1);
+00149                 MatrixAllocator.construct(TextureMatrix,mat);
+00150             }
+00151             else
+00152                 *TextureMatrix = mat;
+00153         }
+00154 
+00156 
+00158         inline bool operator!=(const SMaterialLayer& b) const
+00159         {
+00160             bool different =
+00161                 Texture != b.Texture ||
+00162                 TextureWrapU != b.TextureWrapU ||
+00163                 TextureWrapV != b.TextureWrapV ||
+00164                 BilinearFilter != b.BilinearFilter ||
+00165                 TrilinearFilter != b.TrilinearFilter ||
+00166                 AnisotropicFilter != b.AnisotropicFilter ||
+00167                 LODBias != b.LODBias;
+00168             if (different)
+00169                 return true;
+00170             else
+00171                 different |= (TextureMatrix != b.TextureMatrix) &&
+00172                     TextureMatrix && b.TextureMatrix &&
+00173                     (*TextureMatrix != *(b.TextureMatrix));
+00174             return different;
+00175         }
+00176 
+00178 
+00180         inline bool operator==(const SMaterialLayer& b) const
+00181         { return !(b!=*this); }
+00182 
+00184         ITexture* Texture;
+00185 
+00187 
+00188         u8 TextureWrapU:4;
+00189         u8 TextureWrapV:4;
+00190 
+00192         bool BilinearFilter:1;
+00193 
+00195 
+00197         bool TrilinearFilter:1;
+00198 
+00200 
+00206         u8 AnisotropicFilter;
+00207 
+00209 
+00213         s8 LODBias;
+00214 
+00215     private:
+00216         friend class SMaterial;
+00217         irr::core::irrAllocator<irr::core::matrix4> MatrixAllocator;
+00218 
+00220 
+00222         core::matrix4* TextureMatrix;
+00223     };
+00224 
+00225 } // end namespace video
+00226 } // end namespace irr
+00227 
+00228 #endif // __S_MATERIAL_LAYER_H_INCLUDED__
+
+
+ + + + + -- cgit v1.1