source: OGRE/trunk/ogrenew/RenderSystems/GL/include/OgreGLGpuProgramManager.h @ 657

Revision 657, 2.5 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

Line 
1/*
2-----------------------------------------------------------------------------
3This source file is part of OGRE
4    (Object-oriented Graphics Rendering Engine)
5For the latest info, see http://www.stevestreeting.com/ogre/
6
7Copyright (c) 2000-2005 The OGRE Teameeting
8Also see acknowledgements in Readme.html
9
10This program is free software; you can redistribute it and/or modify it under
11the terms of the GNU General Public License as published by the Free Software
12Foundation; either version 2 of the License, or (at your option) any later
13version.
14
15This program is distributed in the hope that it will be useful, but WITHOUT
16ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License along with
20this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21Place - Suite 330, Boston, MA 02111-1307, USA, or go to
22http://www.gnu.org/copyleft/gpl.html.
23-----------------------------------------------------------------------------
24*/
25
26#ifndef __GLGpuProgramManager_H__
27#define __GLGpuProgramManager_H__
28
29#include "OgreGpuProgramManager.h"
30
31namespace Ogre {
32
33class GLGpuProgramManager : public GpuProgramManager
34{
35public:
36    typedef GpuProgram* (*CreateGpuProgramCallback)(ResourceManager* creator,
37        const String& name, ResourceHandle handle,
38        const String& group, bool isManual, ManualResourceLoader* loader,
39        GpuProgramType gptype, const String& syntaxCode);
40
41private:
42    typedef std::map<String, CreateGpuProgramCallback> ProgramMap;
43    ProgramMap mProgramMap;
44
45protected:
46    /// @copydoc ResourceManager::createImpl
47    Resource* createImpl(const String& name, ResourceHandle handle,
48        const String& group, bool isManual, ManualResourceLoader* loader,
49        const NameValuePairList* params);
50    /// Specialised create method with specific parameters
51    Resource* createImpl(const String& name, ResourceHandle handle,
52        const String& group, bool isManual, ManualResourceLoader* loader,
53        GpuProgramType gptype, const String& syntaxCode);
54
55public:
56    GLGpuProgramManager();
57    ~GLGpuProgramManager();
58    GpuProgramParametersSharedPtr createParameters(void);
59    bool registerProgramFactory(const String& syntaxCode, CreateGpuProgramCallback createFn);
60    bool unregisterProgramFactory(const String& syntaxCode);
61};
62
63}; //namespace Ogre
64
65#endif //__GLGpuProgramManager_H__
Note: See TracBrowser for help on using the repository browser.