00001 /* 00002 ----------------------------------------------------------------------------- 00003 This source file is part of OGRE 00004 (Object-oriented Graphics Rendering Engine) 00005 For the latest info, see http://www.stevestreeting.com/ogre/ 00006 00007 Copyright (c) 2000-2005 The OGRE Team 00008 Also see acknowledgements in Readme.html 00009 00010 This program is free software; you can redistribute it and/or modify it under 00011 the terms of the GNU General Public License as published by the Free Software 00012 Foundation; either version 2 of the License, or (at your option) any later 00013 version. 00014 00015 This program is distributed in the hope that it will be useful, but WITHOUT 00016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00017 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 00018 00019 You should have received a copy of the GNU General Public License along with 00020 this program; if not, write to the Free Software Foundation, Inc., 59 Temple 00021 Place - Suite 330, Boston, MA 02111-1307, USA, or go to 00022 http://www.gnu.org/copyleft/gpl.html. 00023 ----------------------------------------------------------------------------- 00024 */ 00025 00026 00027 #ifndef __GLSLExtSupport_H__ 00028 #define __GLSLExtSupport_H__ 00029 00030 #include "OgreGLPrerequisites.h" 00031 00032 // 00033 // OpenGL Shading Language entry points 00034 // 00035 namespace Ogre 00036 { 00037 00038 extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB_ptr; 00039 extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB_ptr; 00040 extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB_ptr; 00041 extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB_ptr; 00042 extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB_ptr; 00043 00044 extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB_ptr; 00045 extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB_ptr; 00046 extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB_ptr; 00047 extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB_ptr; 00048 extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB_ptr; 00049 00050 extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB_ptr; 00051 extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB_ptr; 00052 extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB_ptr; 00053 extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB_ptr; 00054 extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB_ptr; 00055 00056 extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB_ptr; 00057 00058 extern PFNGLUNIFORM1FARBPROC glUniform1fARB_ptr; 00059 extern PFNGLUNIFORM2FARBPROC glUniform2fARB_ptr; 00060 extern PFNGLUNIFORM3FARBPROC glUniform3fARB_ptr; 00061 extern PFNGLUNIFORM4FARBPROC glUniform4fARB_ptr; 00062 00063 extern PFNGLUNIFORM1IARBPROC glUniform1iARB_ptr; 00064 extern PFNGLUNIFORM2IARBPROC glUniform2iARB_ptr; 00065 extern PFNGLUNIFORM3IARBPROC glUniform3iARB_ptr; 00066 extern PFNGLUNIFORM4IARBPROC glUniform4iARB_ptr; 00067 00068 extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB_ptr; 00069 extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB_ptr; 00070 extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB_ptr; 00071 extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB_ptr; 00072 00073 extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB_ptr; 00074 extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB_ptr; 00075 extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB_ptr; 00076 extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB_ptr; 00077 00078 extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB_ptr; 00079 extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB_ptr; 00080 extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB_ptr; 00081 extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB_ptr; 00082 extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB_ptr; 00083 extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB_ptr; 00084 extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB_ptr; 00085 extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB_ptr; 00086 00087 // forward declarations 00088 class GLSLProgram; 00089 class GLSLGpuProgram; 00090 class GLSLLinkProgram; 00091 class GLSLLinkProgramManager; 00092 class GLSLProgramFactory; 00093 00094 00095 bool InitGLShaderLanguageExtensions( GLSupport& glSupport ); 00101 void checkForGLSLError(const String& ogreMethod, const String& errorTextPrefix, const GLhandleARB obj, const bool forceInfoLog = false, const bool forceException = false); 00102 00107 String logObjectInfo(const String& msg, const GLhandleARB obj); 00108 00109 00110 } // namespace Ogre 00111 00112 #endif // __GLSLExtSupport_H__
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Feb 12 12:59:45 2006