]> git.mxchange.org Git - simgear.git/blob - simgear/scene/material/TextureBuilder.hxx
Add bool and int uniform types for shaders, and vertex-program-two-sided
[simgear.git] / simgear / scene / material / TextureBuilder.hxx
1 // Copyright (C) 2009  Tim Moore timoore@redhat.com
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Library General Public
5 // License as published by the Free Software Foundation; either
6 // version 2 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Library General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
16
17 #ifndef SIMGEAR_TEXTUREBUILDER_HXX
18 #define SIMGEAR_TEXTUREBUILDER_HXX 1
19
20 #include <osg/StateSet>
21 #include <osg/Texture>
22 #include "EffectBuilder.hxx"
23
24 namespace simgear
25 {
26 class TextureBuilder : public EffectBuilder<osg::Texture>
27 {
28 public:
29     // Hack to force inclusion of TextureBuilder.cxx in library
30     static osg::Texture* buildFromType(Effect* effect, const std::string& type,
31                                        const SGPropertyNode*props,
32                                        const SGReaderWriterXMLOptions* options);
33 };
34
35 struct TextureUnitBuilder : public PassAttributeBuilder
36 {
37     void buildAttribute(Effect* effect, Pass* pass, const SGPropertyNode* prop,
38                         const SGReaderWriterXMLOptions* options);
39 };
40
41
42 bool makeTextureParameters(SGPropertyNode* paramRoot, const osg::StateSet* ss);
43 }
44 #endif