X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fmetascene.cc;h=399295f3a8a79012f4841f3dce6d136caad37c68;hp=66e0027cce26bf9d55f733a6f71208bc30f6c178;hb=26c1717925471539b9745cce6275b218a47147cd;hpb=b30241a8a51be904b22459a1d0cc3322e0a505d9 diff --git a/src/metascene.cc b/src/metascene.cc index 66e0027..399295f 100644 --- a/src/metascene.cc +++ b/src/metascene.cc @@ -4,6 +4,7 @@ #include "scene.h" #include "treestore.h" #include "logger.h" +#include "app.h" #ifdef WIN32 #include @@ -19,7 +20,7 @@ struct MaterialEdit { static bool proc_node(MetaScene *mscn, struct ts_node *node); static bool proc_scenefile(MetaScene *mscn, struct ts_node *node); -static bool proc_mtledit(MetaScene *mscn, MaterialEdit *med, struct ts_node *node, TextureSet *texset); +static bool proc_mtledit(MetaScene *mscn, MaterialEdit *med, struct ts_node *node); static void apply_mtledit(Scene *scn, const MaterialEdit &med); static void apply_mtledit(Material *mtl, const MaterialEdit &med); static struct ts_attr *attr_inscope(struct ts_node *node, const char *name); @@ -27,10 +28,8 @@ static struct ts_attr *attr_inscope(struct ts_node *node, const char *name); static void print_scene_graph(SceneNode *n, int level); -MetaScene::MetaScene(SceneSet *sman, TextureSet *tman) +MetaScene::MetaScene() { - sceneman = sman; - texman = tman; walk_mesh = 0; } @@ -136,13 +135,13 @@ static bool proc_scenefile(MetaScene *mscn, struct ts_node *node) struct ts_node *child = node->child_list; while(child) { MaterialEdit medit; - if(proc_mtledit(mscn, &medit, child, mscn->texman)) { + if(proc_mtledit(mscn, &medit, child)) { sdat->mtledit.push_back(medit); } child = child->next; } - Scene *newscn = mscn->sceneman->get(fname); + Scene *newscn = sceneman.get(fname); /* NOTE: setting all these after get() is not a race condition, because * scene_loaded() which uses this, will only run in our main loop during * SceneSet::update() on the main thread. @@ -195,7 +194,7 @@ bool MetaScene::scene_loaded(Scene *newscn) return true; } -static bool proc_mtledit(MetaScene *mscn, MaterialEdit *med, struct ts_node *node, TextureSet *texset) +static bool proc_mtledit(MetaScene *mscn, MaterialEdit *med, struct ts_node *node) { if(strcmp(node->name, "mtledit") != 0) { return false; @@ -241,7 +240,7 @@ static bool proc_mtledit(MetaScene *mscn, MaterialEdit *med, struct ts_node *nod // remove med->tex = 0; } else { - med->tex = texset->get_texture(afile->val.str, TEX_2D, &mscn->datamap); + med->tex = texman.get_texture(afile->val.str, TEX_2D, &mscn->datamap); } } // TODO add more edit modes