Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

OgreGLSLExtSupport.h

Go to the documentation of this file.
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
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Feb 12 12:59:45 2006