X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmaterials%2Frenderpass.h;h=94cc2ed928b328f0f6dc0d16690b058cf75f0a27;hb=fe9836f2d8d7abb0480582c544611a5b248310cc;hp=de04461af05f3510f96630c23968773ab9ef19bb;hpb=6b9338845dfee441cd18ad6c633e4feef8ad14e1;p=libs%2Fgl.git diff --git a/source/materials/renderpass.h b/source/materials/renderpass.h index de04461a..94cc2ed9 100644 --- a/source/materials/renderpass.h +++ b/source/materials/renderpass.h @@ -3,6 +3,7 @@ #include #include +#include "cullface.h" #include "material.h" namespace Msp { @@ -13,7 +14,6 @@ class ProgramData; class Renderer; class Sampler; class Texture; -class Texturing; /** Encapsulates the data that determines the appearance of a rendered surface. @@ -25,14 +25,20 @@ public: class Loader: public DataFile::CollectionObjectLoader { private: + std::string inline_base_name; + static ActionMap shared_actions; public: Loader(RenderPass &); Loader(RenderPass &, Collection &); - private: virtual void init_actions(); + + public: + void set_inline_base_name(const std::string &); + + private: virtual void finish(); static std::string get_shader_name(const std::string &); @@ -71,14 +77,14 @@ private: TextureSlot(Tag t): tag(t), texture(0), sampler(0) { } }; - RefPtr shprog; + const Program *shprog; bool shprog_from_material; RefPtr shdata; std::map uniform_slots; - RefPtr material; + const Material *material; std::string material_slot; std::vector textures; - bool back_faces; + CullMode face_cull; bool receive_shadows; bool image_based_lighting; @@ -91,19 +97,18 @@ private: public: void set_shader_program(const Program *, const ProgramData *); - const Program *get_shader_program() const { return shprog.get(); } + const Program *get_shader_program() const { return shprog; } const ProgramData *get_shader_data() const { return shdata.get(); } Tag get_slotted_uniform_tag(Tag) const; void set_material(const Material *); - const Material *get_material() const { return material.get(); } + const Material *get_material() const { return material; } const std::string &get_material_slot_name() const { return material_slot; } void set_texture(Tag, const Texture *, const Sampler * = 0); Tag get_texture_tag(const std::string &) const; DEPRECATED void set_texture(unsigned, const Texture *, const Sampler * = 0); - DEPRECATED const Texturing *get_texturing() const { return 0; } DEPRECATED int get_texture_index(const std::string &) const; - void set_back_faces(bool); - bool get_back_faces() const { return back_faces; } + void set_face_cull(CullMode); + CullMode get_face_cull() const { return face_cull; } void set_receive_shadows(bool); bool get_receive_shadows() const { return receive_shadows; } void set_image_based_lighting(bool);