X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmaterials%2Frendermethod.h;h=94f716a41c871d4705f76bc585ad493087379fa6;hb=18fda5b5a13215c500cb402f7d2b081e439a1f0e;hp=11c7e8583ecd430f759fe75fb078aac5317700d2;hpb=c0b7d6ee4a7478f5aecb1504429ec1fc846d64ed;p=libs%2Fgl.git diff --git a/source/materials/rendermethod.h b/source/materials/rendermethod.h index 11c7e858..94f716a4 100644 --- a/source/materials/rendermethod.h +++ b/source/materials/rendermethod.h @@ -3,6 +3,7 @@ #include #include +#include "blend.h" #include "cullface.h" #include "material.h" @@ -30,7 +31,6 @@ public: static ActionMap shared_actions; public: - Loader(RenderMethod &); Loader(RenderMethod &, Collection &); private: virtual void init_actions(); @@ -41,6 +41,8 @@ public: private: virtual void finish(); + void blend(); + void blend_factors(BlendFactor, BlendFactor); void material_inline(); void material(const std::string &); void shader(const std::string &); @@ -73,21 +75,18 @@ private: TextureSlot(Tag t): tag(t), texture(0), sampler(0) { } }; - const Program *shprog; - bool shprog_from_material; + const Program *shprog = 0; + bool shprog_from_material = false; RefPtr shdata; std::map uniform_slots; - const Material *material; + const Material *material = 0; std::string material_slot; std::vector textures; - CullMode face_cull; - bool receive_shadows; - bool image_based_lighting; + CullMode face_cull = CULL_BACK; + Blend blend; + bool receive_shadows = false; + bool image_based_lighting = false; -public: - RenderMethod(); - -private: void maybe_create_material_shader(); void set_material_textures(); @@ -103,6 +102,8 @@ public: Tag get_texture_tag(const std::string &) const; void set_face_cull(CullMode); CullMode get_face_cull() const { return face_cull; } + void set_blend(const Blend &); + const Blend &get_blend() const { return blend; } void set_receive_shadows(bool); bool get_receive_shadows() const { return receive_shadows; } void set_image_based_lighting(bool);