X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frenderpass.h;h=e891802e3fa970e1a9005469a1783800d7cb24d3;hb=72790b3aba8ddc1a6d020646fb7312959729777b;hp=5c1b84520db58ef8d38e894066de2f8f56a2b1f5;hpb=5172d32d67595ea0b70184fadcfcb8e023cccbc8;p=libs%2Fgl.git diff --git a/source/renderpass.h b/source/renderpass.h index 5c1b8452..e891802e 100644 --- a/source/renderpass.h +++ b/source/renderpass.h @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007-2008, 2010-2011 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_RENDERPASS_H_ #define MSP_GL_RENDERPASS_H_ @@ -18,6 +11,7 @@ namespace GL { class Material; class Program; class ProgramData; +class Renderer; class TexEnv; class Texture; class Texturing; @@ -42,6 +36,7 @@ public: void material_inline(); void material(const std::string &); void texunit(unsigned); + void texunit_named(unsigned, const std::string &); void uniforms(); }; @@ -63,10 +58,11 @@ private: void texture2d(); }; - Program *shprog; - ProgramData *shdata; + const Program *shprog; + RefPtr shdata; RefPtr material; Texturing *texturing; + std::map tex_names; RenderPass &operator=(const RenderPass &); public: @@ -74,12 +70,16 @@ public: RenderPass(const RenderPass &); ~RenderPass(); + void set_shader_program(const Program *, const ProgramData *); const Program *get_shader_program() const { return shprog; } - const ProgramData *get_shader_data() const { return shdata; } + const ProgramData *get_shader_data() const { return shdata.get(); } void set_material(const Material *); const Material *get_material() const { return material.get(); } void set_texture(unsigned, const Texture *); const Texturing *get_texturing() const { return texturing; } + int get_texture_index(const std::string &) const; + + void apply(Renderer &) const; }; } // namespace GL