<html> <head> <title>OgreGLSLProgram.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link type="text/css" rel="stylesheet" href="style.css"> </head> <body> <!-- Generated by Doxygen 1.3.6 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div> <h1>OgreGLSLProgram.h</h1><a href="OgreGLSLProgram_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span> 00002 <span class="comment">-----------------------------------------------------------------------------</span> 00003 <span class="comment">This source file is part of OGRE</span> 00004 <span class="comment"> (Object-oriented Graphics Rendering Engine)</span> 00005 <span class="comment">For the latest info, see http://www.ogre3d.org/</span> 00006 <span class="comment"></span> 00007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span> 00008 <span class="comment">Also see acknowledgements in Readme.html</span> 00009 <span class="comment"></span> 00010 <span class="comment">This program is free software you can redistribute it and/or modify it under</span> 00011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span> 00012 <span class="comment">Foundation either version 2 of the License, or (at your option) any later</span> 00013 <span class="comment">version.</span> 00014 <span class="comment"></span> 00015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span> 00016 <span class="comment">ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS</span> 00017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span> 00018 <span class="comment"></span> 00019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span> 00020 <span class="comment">this program if not, write to the Free Software Foundation, Inc., 59 Temple</span> 00021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span> 00022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span> 00023 <span class="comment">-----------------------------------------------------------------------------</span> 00024 <span class="comment">*/</span> 00025 <span class="preprocessor">#ifndef __GLSLProgram_H__</span> 00026 <span class="preprocessor"></span><span class="preprocessor">#define __GLSLProgram_H__</span> 00027 <span class="preprocessor"></span> 00028 <span class="preprocessor">#include "<a class="code" href="OgreGLPrerequisites_8h.html">OgreGLPrerequisites.h</a>"</span> 00029 <span class="preprocessor">#include "<a class="code" href="OgreHighLevelGpuProgram_8h.html">OgreHighLevelGpuProgram.h</a>"</span> 00030 00031 <span class="keyword">namespace </span>Ogre { <a name="l00053"></a><a class="code" href="classOgre_1_1GLSLProgram.html">00053</a> <span class="keyword">class </span><a class="code" href="classOgre_1_1GLSLProgram.html">GLSLProgram</a> : <span class="keyword">public</span> <a class="code" href="classOgre_1_1HighLevelGpuProgram.html">HighLevelGpuProgram</a> 00054 { 00055 <span class="keyword">public</span>: <a name="l00057"></a><a class="code" href="classOgre_1_1GLSLProgram_1_1CmdAttach.html">00057</a> <span class="keyword">class </span><a class="code" href="classOgre_1_1GLSLProgram_1_1CmdAttach.html">CmdAttach</a> : <span class="keyword">public</span> <a class="code" href="classOgre_1_1ParamCommand.html">ParamCommand</a> 00058 { 00059 <span class="keyword">public</span>: 00060 <a class="code" href="namespaceOgre.html#a426">String</a> <a class="code" href="classOgre_1_1GLSLProgram_1_1CmdAttach.html#Ogre_1_1GLSLProgram_1_1CmdAttacha0">doGet</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* target) <span class="keyword">const</span>; 00061 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1GLSLProgram_1_1CmdAttach.html#Ogre_1_1GLSLProgram_1_1CmdAttacha1">doSet</a>(<span class="keywordtype">void</span>* target, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& shaderNames); 00062 }; 00063 00064 <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLPrograma0">GLSLProgram</a>(<a class="code" href="classOgre_1_1ResourceManager.html">ResourceManager</a>* creator, 00065 <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name, <a class="code" href="namespaceOgre.html#a485">ResourceHandle</a> handle, 00066 <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& group, <span class="keywordtype">bool</span> isManual, <a class="code" href="classOgre_1_1ManualResourceLoader.html">ManualResourceLoader</a>* loader); 00067 <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLPrograma1">~GLSLProgram</a>(); 00068 <a name="l00069"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLPrograma2">00069</a> <span class="keyword">const</span> GLhandleARB <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLPrograma2">getGLHandle</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mGLHandle; } 00070 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLPrograma3">attachToProgramObject</a>( <span class="keyword">const</span> GLhandleARB programObject ); <a name="l00071"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLPrograma4">00071</a> <a class="code" href="namespaceOgre.html#a426">String</a> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLPrograma4">getAttachedShaderNames</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramr2">mAttachedShaderNames</a>; } 00072 00074 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLPrograma5">attachChildShader</a>(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>& name); 00075 00076 <span class="keyword">protected</span>: <a name="l00077"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramt0">00077</a> <span class="keyword">static</span> <a class="code" href="classOgre_1_1GLSLProgram_1_1CmdAttach.html">CmdAttach</a> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramt0">msCmdAttach</a>; 00078 00081 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramb0">loadFromSource</a>(<span class="keywordtype">void</span>); 00087 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramb1">createLowLevelImpl</a>(<span class="keywordtype">void</span>); 00089 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramb2">unloadHighLevelImpl</a>(<span class="keywordtype">void</span>); 00091 <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramb3">populateParameterNames</a>(<a class="code" href="classOgre_1_1SharedPtr.html">GpuProgramParametersSharedPtr</a> <a class="code" href="OgreGLPrerequisites_8h.html#a72">params</a>); 00093 <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramb4">compile</a>( <span class="keyword">const</span> <span class="keywordtype">bool</span> checkErrors = <span class="keyword">true</span>); 00094 00095 <span class="keyword">private</span>: <a name="l00097"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramr0">00097</a> GLhandleARB mGLHandle; <a name="l00099"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramr1">00099</a> <a class="code" href="OgreGLPrerequisites_8h.html#a38">GLint</a> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramr1">mCompiled</a>; <a name="l00101"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramr2">00101</a> <a class="code" href="namespaceOgre.html#a426">String</a> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramr2">mAttachedShaderNames</a>; <a name="l00103"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramy0">00103</a> <span class="keyword">typedef</span> std::vector< GLSLProgram* > <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramy0">GLSLProgramContainer</a>; <a name="l00104"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramy1">00104</a> <span class="keyword">typedef</span> GLSLProgramContainer::iterator <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramy1">GLSLProgramContainerIterator</a>; <a name="l00105"></a><a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramr3">00105</a> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramy0">GLSLProgramContainer</a> <a class="code" href="classOgre_1_1GLSLProgram.html#Ogre_1_1GLSLProgramr3">mAttachedGLSLPrograms</a>; 00106 00107 }; 00108 } 00109 00110 <span class="preprocessor">#endif // __GLSLProgram_H__</span> </pre></div><p> Copyright © 2000-2005 by The OGRE Team<br /> Last modified Wed Feb 23 00:19:06 2005 </p> </body> </html>