| VRS - The Virtual Rendering System |
| version 3.3 |
00001 /********************************************************************** 00002 VRS - The Virtual Rendering System 00003 Copyright (C) 2001 Computer Graphics Systems Group at the 00004 Hasso-Plattner-Institute, Potsdam, Germany. 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Lesser General Public 00007 License as published by the Free Software Foundation; either 00008 version 2.1 of the License, or (at your option) any later version. 00009 This library is distributed in the hope that it will be useful, but 00010 WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00012 See the GNU Lesser General Public License for more details. 00013 You should have received a copy of the GNU Lesser+ General Public 00014 License along with this library; if not, write to the FreeSoftware 00015 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA. 00016 **********************************************************************/ 00017 00018 // $Id: texture2dgl.h 6014 2007-08-09 07:51:16Z Konstantin_Baumann $ 00019 // $Date: 2007-08-09 09:51:16 +0200 (Thu, 09 Aug 2007) $ 00020 // $Revision: 6014 $ 00021 // $State$ 00022 // $Author: Konstantin_Baumann $ 00023 // 00024 // $Log$ 00025 // Revision 1.11 2005/10/13 09:52:35 baumann 00026 // mipmap handling improved 00027 // 00028 // Revision 1.10 2005/06/15 16:30:02 baumann 00029 // added methods SharedObj::isEqual() and SharedObj::IsEqual() (define operator==() in derived classes for a real implementaton) 00030 // 00031 // Revision 1.9 2005/01/03 01:43:10 klimetschek 00032 // - modified win32 project layout, splitted vrs.vcproj into vrs_container, vrs_core, vrs_sg, vrs_image, vrs_opengl and vrs_io 00033 // - removed vrs.vcproj 00034 // minor things: 00035 // - added all glutexamples to vrs4glut.sln 00036 // - fixed some problems in glutexamples 00037 // - removed all project references from all VS projects (using solution wide project dependencies instead) 00038 // 00039 // Revision 1.8 2004/11/03 14:45:07 saar 00040 // Class comment changed (Doxygen style) 00041 // 00042 // Revision 1.7 2004/03/12 16:28:41 baumann 00043 // macros VRS_NAMESPACE_BEGIN/_END expanded and removed 00044 // 00045 // Revision 1.6 2004/01/19 11:43:58 baumann 00046 // serialization mechanism improved 00047 // 00048 // Revision 1.5 2002/12/11 16:05:31 kirsch 00049 // use Matrix() instead of Matrix::identity in constructor 00050 // 00051 // Revision 1.4 2002/11/13 07:20:50 baumann 00052 // changed TextureGL enum values to uppercase 00053 // added TextureGL::definesComponent() 00054 // 00055 // Revision 1.3 2002/10/29 10:32:53 baumann 00056 // macros VRS_CLASSNAME_* and VRS_IMPL_TYPEINFO_* removed 00057 // 00058 // Revision 1.2 2002/04/07 17:14:11 baumann 00059 // Matrix::identity() changed to Matrix::identity 00060 // 00061 // Revision 1.1 2002/03/04 12:00:20 kersting 00062 // directory structure changes 00063 // 00064 // Revision 1.8 2002/03/03 21:44:26 kosta 00065 // VRS_TYPEINFO-macro rewritten 00066 // 00067 // Revision 1.7 2002/02/19 10:34:19 kosta 00068 // undone all changes since 2002-02-15 00069 // 00070 // Revision 1.4 2002/02/05 07:48:26 kosta 00071 // new persistency macros: 00072 // VRS_SERIALIZABLE(CLASS_NAME); 00073 // VRS_SERIALIZABLE_ABSTRACT_CLASS(CLASS_NAME); 00074 // VRS_SERIALIZABLE_NO_SO_CLASS(CLASS_NAME) 00075 // 00076 // Revision 1.3 2002/02/04 13:07:19 kosta 00077 // VRS_SERIALIZABLE macros completely rewritten 00078 // 00079 // Revision 1.2 2002/01/15 16:25:55 kosta 00080 // macros rewritten for a better namespace support 00081 // 00082 // Revision 1.1 2002/01/08 16:02:49 kosta 00083 // dir structure for textures changed 00084 // 00085 // Revision 1.10 2002/01/08 09:29:54 kosta 00086 // code cleanup 00087 // 00088 // Revision 1.9 2001/11/21 10:25:38 nienhaus 00089 // combine mode moved to opengl texture environment attribute 00090 // 00091 // Revision 1.8 2001/11/13 16:36:31 kirsch 00092 // changed line feed to unix style (removed control-M) 00093 // 00094 // Revision 1.7 2001/08/27 11:26:10 kersting 00095 // added classname to enum WrapMode 00096 // 00097 // Revision 1.6 2001/08/26 10:46:11 kosta 00098 // texture painters refined and simplified 00099 // 00100 // Revision 1.5 2001/08/21 09:38:33 kersting 00101 // added classname to enumeration 00102 // 00103 // Revision 1.4 2001/08/20 15:07:58 kersting 00104 // added classname to enumeration 00105 // 00106 // Revision 1.3 2001/08/20 14:01:38 kersting 00107 // added classname to enumeration 00108 // 00109 // Revision 1.2 2001/08/04 16:57:00 kosta 00110 // protected changed to public 00111 // 00112 // Revision 1.1 2001/07/25 21:27:46 kosta 00113 // new texture mechanism implemented 00114 // 00115 00116 #ifndef VRS_OPENGL_TEXTURE_TEXTURE2DGL_H 00117 #define VRS_OPENGL_TEXTURE_TEXTURE2DGL_H 00118 00119 #include <vrs/opengl/texturegl.h> 00120 00121 namespace VRS { 00122 00124 class VRS_CORE_API Texture2DGL : public TextureGL { 00125 00126 public: 00127 Texture2DGL(TextureGL::WrapMode wrapS = TextureGL::REPEAT, 00128 TextureGL::WrapMode wrapT = TextureGL::REPEAT, 00129 TextureGL::FilterMode minFilter = TextureGL::TRILINEAR, 00130 TextureGL::FilterMode magFilter = TextureGL::LINEAR, 00131 GLfloat anisotropic = 1.0, 00132 const Matrix& matrix = Matrix(), 00133 const Color& borderColor = Color(0.0f, 0.0f, 0.0f, 0.0f), // transparent black 00134 GLenum internalFormat = GL_ZERO); 00145 bool operator==(const Texture2DGL& other) const; 00146 00147 virtual void setWrap(TextureGL::WrapMode wrapST); 00148 virtual void setWrapS(TextureGL::WrapMode wrapS); 00149 virtual void setWrapT(TextureGL::WrapMode wrapT); 00150 virtual TextureGL::WrapMode getWrapS() const; 00151 virtual TextureGL::WrapMode getWrapT() const; 00155 VRS_TYPEINFO(Texture2DGL, TextureGL); 00156 VRS_SERIALIZABLE(Texture2DGL); 00157 00158 private: 00159 WrapMode wrapS_; 00160 WrapMode wrapT_; 00161 }; 00162 00163 } // namespace VRS 00164 00165 #endif // VRS_OPENGL_TEXTURE_TEXTUREGL_H