X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogrambuilder.h;h=053eb567487a9a03964235a5d04b3d84c555a68c;hp=97a706e077d93d3729c65eba5290c5a6a5b285e2;hb=71240e5c5ef7165313664ee9fe81df95c0eff10b;hpb=06817138c8f234e299a137fab94fb956169d21c5 diff --git a/source/programbuilder.h b/source/programbuilder.h index 97a706e0..053eb567 100644 --- a/source/programbuilder.h +++ b/source/programbuilder.h @@ -88,7 +88,7 @@ public: bool specular; /** Use a normal map texture. Only used if lighting is true. */ - bool normalmap; + bool normal_map; /** Use a shadow map. Requires a ShadowMap effect or equivalent in the pipeline. */ @@ -104,6 +104,9 @@ public: /** Number of clipping planes to process. */ unsigned max_clip_planes; + /** Use a geometry shader. */ + bool geometry; + /** Force the use of legacy shaders conforming to GLSL 1.10. Defaults to true if the version of GLSL is less than 1.30, false otherwise. */ bool legacy; @@ -121,10 +124,13 @@ private: { NO_SCOPE, TYPE, + FUNCTION, UNIFORM, ATTRIBUTE, VERTEX, - FRAGMENT + GEOMETRY, + FRAGMENT, + N_SCOPES }; enum InterfaceFlags @@ -176,8 +182,8 @@ private: InterfaceFlags get_interface_flags(VariableScope) const; std::string create_type_declaration() const; std::string create_declaration(char = 0, bool = false) const; - std::string create_replacement(VariableScope, const char * = 0) const; - std::string create_expression(const char * = 0) const; + std::string create_replacement(VariableScope, unsigned, const char * = 0) const; + std::string create_expression(unsigned, const char * = 0) const; }; enum MatchType @@ -191,6 +197,7 @@ private: StandardFeatures features; std::list custom_variables; std::string feature_flags; + unsigned enabled_scopes; std::map aliases; bool optimize; @@ -217,6 +224,7 @@ private: static bool parse_identifier(const char *, unsigned &, unsigned &); static std::vector extract_identifiers(const char *); static std::string replace_identifiers(const char *, const std::map &, bool = false); + static VariableScope previous_scope(VariableScope, unsigned); std::string create_expression(const ShaderVariable &, const char * = 0) const; };