X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogrambuilder.h;h=053eb567487a9a03964235a5d04b3d84c555a68c;hp=43d43fcca8f74d6823812809d88cec0fde6b65a0;hb=71240e5c5ef7165313664ee9fe81df95c0eff10b;hpb=c51030d1cb2308d30db80303a561de1774dfdb76 diff --git a/source/programbuilder.h b/source/programbuilder.h index 43d43fcc..053eb567 100644 --- a/source/programbuilder.h +++ b/source/programbuilder.h @@ -82,11 +82,13 @@ public: /** Use a skylight component for ambient lighting. */ bool skylight; + bool fog; + /** Use a specular lighting component. */ 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. */ @@ -96,6 +98,15 @@ public: equivalend in the pipeline. */ bool reflection; + /** Clip primitives against user defined clip planes. */ + bool clipping; + + /** 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; @@ -113,10 +124,13 @@ private: { NO_SCOPE, TYPE, + FUNCTION, UNIFORM, ATTRIBUTE, VERTEX, - FRAGMENT + GEOMETRY, + FRAGMENT, + N_SCOPES }; enum InterfaceFlags @@ -124,7 +138,6 @@ private: NO_INTERFACE = 0, INPUT = 1, OUTPUT = 2, - PASSTHROUGH = INPUT|OUTPUT, GOAL = 4 }; @@ -169,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 @@ -184,6 +197,7 @@ private: StandardFeatures features; std::list custom_variables; std::string feature_flags; + unsigned enabled_scopes; std::map aliases; bool optimize; @@ -210,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; };