X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogrambuilder.h;h=053eb567487a9a03964235a5d04b3d84c555a68c;hp=e61e9942c0a343083f5d876baaa819befac61b44;hb=f141ae14619bfbd51a7e6871c55edbdd17ac3417;hpb=91b86d70b598193201a28c5cd6e6c4b180fda45a diff --git a/source/programbuilder.h b/source/programbuilder.h index e61e9942..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; @@ -125,7 +128,9 @@ private: UNIFORM, ATTRIBUTE, VERTEX, - FRAGMENT + GEOMETRY, + FRAGMENT, + N_SCOPES }; enum InterfaceFlags @@ -177,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 @@ -192,6 +197,7 @@ private: StandardFeatures features; std::list custom_variables; std::string feature_flags; + unsigned enabled_scopes; std::map aliases; bool optimize; @@ -218,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; };