# 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
Last modified Sun Nov 20 12:36:00 2005