textures(other.textures)
{ }
-/*RenderPass &RenderPass::operator=(const RenderPass &other)
-{
- shprog=other.shprog;
- delete shdata;
- shdata=(other.shdata ? new ProgramData(*other.shdata) : 0);
- material=other.material;
- use_material=other.use_material;
- textures=other.textures;
- use_textures=other.use_textures;
-
- return *this;
-}*/
-
RenderPass::~RenderPass()
{
delete shdata;
RenderPass::Loader::Loader(RenderPass &p, Collection &c):
DataFile::CollectionObjectLoader<RenderPass>(p, &c)
{
+ allow_pointer_reload=false;
+
add("shader", &RenderPass::shprog);
add("material", &Loader::material);
add("material", &RenderPass::material);
void RenderPass::Loader::material()
{
- // XXX Potential memory management trouble with multiple material statements
+ if(obj.material)
+ throw InvalidState("A material is already loaded");
+
RefPtr<Material> mat=new Material;
load_sub(*mat);
obj.material=mat.release();