diff options
Diffstat (limited to 'source/blender/freestyle')
16 files changed, 104 insertions, 110 deletions
diff --git a/source/blender/freestyle/CMakeLists.txt b/source/blender/freestyle/CMakeLists.txt index f6b7efe978c..183eaf595ed 100644 --- a/source/blender/freestyle/CMakeLists.txt +++ b/source/blender/freestyle/CMakeLists.txt @@ -392,8 +392,8 @@ set(SRC intern/scene_graph/NodeGroup.h intern/scene_graph/NodeLight.cpp intern/scene_graph/NodeLight.h - intern/scene_graph/NodeSceneRenderLayer.cpp - intern/scene_graph/NodeSceneRenderLayer.h + intern/scene_graph/NodeViewLayer.cpp + intern/scene_graph/NodeViewLayer.h intern/scene_graph/NodeShape.cpp intern/scene_graph/NodeShape.h intern/scene_graph/NodeTransform.cpp @@ -557,6 +557,7 @@ set(INC ../blenkernel ../blenlib ../blentranslation + ../depsgraph ../imbuf ../makesdna ../makesrna diff --git a/source/blender/freestyle/FRS_freestyle.h b/source/blender/freestyle/FRS_freestyle.h index a6382010ca7..58f1c343235 100644 --- a/source/blender/freestyle/FRS_freestyle.h +++ b/source/blender/freestyle/FRS_freestyle.h @@ -30,6 +30,7 @@ extern "C" { #endif struct Render; +struct RenderLayer; struct Material; struct FreestyleConfig; struct FreestyleLineStyle; @@ -50,13 +51,13 @@ extern struct FreestyleGlobals g_freestyle; void FRS_initialize(void); void FRS_set_context(struct bContext *C); void FRS_read_file(struct bContext *C); -int FRS_is_freestyle_enabled(struct SceneRenderLayer *srl); +int FRS_is_freestyle_enabled(struct ViewLayer *view_layer); void FRS_init_stroke_renderer(struct Render *re); void FRS_begin_stroke_rendering(struct Render *re); -struct Render *FRS_do_stroke_rendering(struct Render *re, struct SceneRenderLayer *srl, int render); +struct Render *FRS_do_stroke_rendering(struct Render *re, struct ViewLayer *view_layer, int render); void FRS_end_stroke_rendering(struct Render *re); void FRS_free_view_map_cache(void); -void FRS_composite_result(struct Render *re, struct SceneRenderLayer *srl, struct Render *freestyle_render); +void FRS_composite_result(struct Render *re, struct ViewLayer *view_layer, struct Render *freestyle_render); void FRS_exit(void); /* FreestyleConfig.linesets */ diff --git a/source/blender/freestyle/intern/application/Controller.cpp b/source/blender/freestyle/intern/application/Controller.cpp index beb85798223..759f6456759 100644 --- a/source/blender/freestyle/intern/application/Controller.cpp +++ b/source/blender/freestyle/intern/application/Controller.cpp @@ -40,7 +40,7 @@ extern "C" { #include "../scene_graph/NodeDrawingStyle.h" #include "../scene_graph/NodeShape.h" #include "../scene_graph/NodeTransform.h" -#include "../scene_graph/NodeSceneRenderLayer.h" +#include "../scene_graph/NodeViewLayer.h" #include "../scene_graph/ScenePrettyPrinter.h" #include "../scene_graph/VertexRep.h" @@ -232,9 +232,9 @@ bool Controller::hitViewMapCache() return false; } -int Controller::LoadMesh(Render *re, SceneRenderLayer *srl) +int Controller::LoadMesh(Render *re, ViewLayer *view_layer) { - BlenderFileLoader loader(re, srl); + BlenderFileLoader loader(re, view_layer); loader.setRenderMonitor(_pRenderMonitor); @@ -301,7 +301,7 @@ int Controller::LoadMesh(Render *re, SceneRenderLayer *srl) } cam->setProjectionMatrix(proj); _RootNode->AddChild(cam); - _RootNode->AddChild(new NodeSceneRenderLayer(*re->scene, *srl)); + _RootNode->AddChild(new NodeViewLayer(*re->scene, *view_layer)); sceneHashFunc.reset(); //blenderScene->accept(sceneHashFunc); diff --git a/source/blender/freestyle/intern/application/Controller.h b/source/blender/freestyle/intern/application/Controller.h index 154edaf1e53..0304c18b8a6 100644 --- a/source/blender/freestyle/intern/application/Controller.h +++ b/source/blender/freestyle/intern/application/Controller.h @@ -68,7 +68,7 @@ public: //soc void init_options(); - int LoadMesh(Render *re, SceneRenderLayer *srl); + int LoadMesh(Render *re, ViewLayer *view_layer); int Load3DSFile(const char *iFileName); void CloseFile(); void ComputeViewMap(); diff --git a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp index 1f5e2b63bfa..a0da68849f7 100644 --- a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp +++ b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp @@ -32,16 +32,16 @@ namespace Freestyle { -BlenderFileLoader::BlenderFileLoader(Render *re, SceneRenderLayer *srl) +BlenderFileLoader::BlenderFileLoader(Render *re, ViewLayer *view_layer) { _re = re; - _srl = srl; + _view_layer = view_layer; _Scene = NULL; _numFacesRead = 0; #if 0 _minEdgeSize = DBL_MAX; #endif - _smooth = (srl->freestyleConfig.flags & FREESTYLE_FACE_SMOOTHNESS_FLAG) != 0; + _smooth = (view_layer->freestyle_config.flags & FREESTYLE_FACE_SMOOTHNESS_FLAG) != 0; _pRenderMonitor = NULL; } @@ -105,8 +105,6 @@ NodeGroup *BlenderFileLoader::Load() cnt++; } - if (!(obi->lay & _srl->lay)) - continue; char *name = obi->ob->id.name; //printf("%c%c:%s\n", name[0], name[1], name+2); //print_m4("obi->mat", obi->mat); diff --git a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h index 894f8eeeb4e..ad92416801d 100644 --- a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h +++ b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h @@ -78,7 +78,7 @@ class BlenderFileLoader { public: /*! Builds a MaxFileLoader */ - BlenderFileLoader(Render *re, SceneRenderLayer *srl); + BlenderFileLoader(Render *re, ViewLayer *view_layer); virtual ~BlenderFileLoader(); /*! Loads the 3D scene and returns a pointer to the scene root node */ @@ -114,7 +114,7 @@ protected: unsigned n; }; Render *_re; - SceneRenderLayer *_srl; + ViewLayer *_view_layer; NodeGroup *_Scene; unsigned _numFacesRead; #if 0 diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp index 9c478c203e7..79f17756ca6 100644 --- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp +++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp @@ -43,8 +43,8 @@ extern "C" { #include "DNA_screen_types.h" #include "DNA_scene_types.h" +#include "BKE_collection.h" #include "BKE_customdata.h" -#include "BKE_depsgraph.h" #include "BKE_global.h" #include "BKE_library.h" /* free_libblock */ #include "BKE_material.h" @@ -59,6 +59,9 @@ extern "C" { #include "BLI_math_vector.h" #include "BLI_utildefines.h" +#include "DEG_depsgraph.h" +#include "DEG_depsgraph_build.h" + #include "RE_pipeline.h" #include "render_types.h" @@ -73,6 +76,7 @@ const char *BlenderStrokeRenderer::uvNames[] = {"along_stroke", "along_stroke_ti BlenderStrokeRenderer::BlenderStrokeRenderer(Render *re, int render_count) : StrokeRenderer() { freestyle_bmain = re->freestyle_bmain; + freestyle_depsgraph = DEG_graph_new(); // for stroke mesh generation _width = re->winx; @@ -112,23 +116,24 @@ BlenderStrokeRenderer::BlenderStrokeRenderer(Render *re, int render_count) : Str freestyle_scene->r.filtertype = old_scene->r.filtertype; freestyle_scene->r.gauss = old_scene->r.gauss; freestyle_scene->r.dither_intensity = old_scene->r.dither_intensity; - BLI_strncpy(freestyle_scene->r.engine, old_scene->r.engine, sizeof(freestyle_scene->r.engine)); - freestyle_scene->r.im_format.planes = R_IMF_PLANES_RGBA; + BKE_viewrender_copy(&freestyle_scene->view_render, &old_scene->view_render); + freestyle_scene->r.im_format.planes = R_IMF_PLANES_RGBA; freestyle_scene->r.im_format.imtype = R_IMF_IMTYPE_PNG; if (G.debug & G_DEBUG_FREESTYLE) { printf("%s: %d thread(s)\n", __func__, BKE_render_num_threads(&freestyle_scene->r)); } - // Render layer - SceneRenderLayer *srl = (SceneRenderLayer *)freestyle_scene->r.layers.first; - srl->layflag = SCE_LAY_SOLID | SCE_LAY_ZTRA; - BKE_scene_set_background(freestyle_bmain, freestyle_scene); + DEG_graph_id_tag_update(freestyle_bmain, freestyle_depsgraph, &freestyle_scene->id, 0); + + // Scene layer. + ViewLayer *view_layer = (ViewLayer *)freestyle_scene->view_layers.first; + view_layer->layflag = SCE_LAY_SOLID | SCE_LAY_ZTRA; // Camera - Object *object_camera = BKE_object_add(freestyle_bmain, freestyle_scene, OB_CAMERA, NULL); - DAG_relations_tag_update(freestyle_bmain); + Object *object_camera = BKE_object_add(freestyle_bmain, freestyle_scene, view_layer, OB_CAMERA, NULL); + DEG_graph_id_tag_update(freestyle_bmain, freestyle_depsgraph, &object_camera->id, 0); Camera *camera = (Camera *)object_camera->data; camera->type = CAM_ORTHO; @@ -156,6 +161,9 @@ BlenderStrokeRenderer::BlenderStrokeRenderer(Render *re, int render_count) : Str _nodetree_hash = BLI_ghash_ptr_new("BlenderStrokeRenderer::_nodetree_hash"); else _nodetree_hash = NULL; + + // New IDs were added, tag relations for update. + DEG_graph_tag_relations_update(freestyle_depsgraph); } BlenderStrokeRenderer::~BlenderStrokeRenderer() @@ -166,7 +174,8 @@ BlenderStrokeRenderer::~BlenderStrokeRenderer() // compositor has finished. // release objects and data blocks - for (Base *b = (Base *)freestyle_scene->base.first; b; b = b->next) { + ViewLayer *view_layer = (ViewLayer *)freestyle_scene->view_layers.first; + for (Base *b = (Base *)view_layer->object_bases.first; b; b = b->next) { Object *ob = b->object; void *data = ob->data; char *name = ob->id.name; @@ -189,7 +198,14 @@ BlenderStrokeRenderer::~BlenderStrokeRenderer() cerr << "Warning: unexpected object in the scene: " << name[0] << name[1] << ":" << (name + 2) << endl; } } - BLI_freelistN(&freestyle_scene->base); + + // Make sure we don't have any bases which might reference freed objects. + FOREACH_SCENE_COLLECTION(freestyle_scene, sc) + { + BLI_freelistN(&sc->objects); + } + FOREACH_SCENE_COLLECTION_END + BLI_freelistN(&view_layer->object_bases); // release materials Link *lnk = (Link *)freestyle_bmain->mat.first; @@ -213,6 +229,8 @@ BlenderStrokeRenderer::~BlenderStrokeRenderer() if (_use_shading_nodes) BLI_ghash_free(_nodetree_hash, NULL, NULL); + DEG_graph_free(freestyle_depsgraph); + FreeStrokeGroups(); } @@ -461,7 +479,7 @@ void BlenderStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const BLI_ghash_insert(_nodetree_hash, nt, ma); } - if (STREQ(freestyle_scene->r.engine, RE_engine_id_CYCLES)) { + if (STREQ(freestyle_scene->view_render.engine_id, RE_engine_id_CYCLES)) { PointerRNA scene_ptr, freestyle_scene_ptr; RNA_pointer_create(NULL, &RNA_Scene, old_scene, &scene_ptr); RNA_pointer_create(NULL, &RNA_Scene, freestyle_scene, &freestyle_scene_ptr); @@ -510,7 +528,7 @@ void BlenderStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const // If still no material, create one if (!has_mat) { Material *ma = BKE_material_add(freestyle_bmain, "stroke_material"); - DAG_relations_tag_update(freestyle_bmain); + DEG_relations_tag_update(freestyle_bmain); ma->mode |= MA_VERTEXCOLP; ma->mode |= MA_TRANSP; ma->mode |= MA_SHLESS; @@ -674,8 +692,8 @@ int BlenderStrokeRenderer::get_stroke_count() const void BlenderStrokeRenderer::GenerateStrokeMesh(StrokeGroup *group, bool hasTex) { #if 0 - Object *object_mesh = BKE_object_add(freestyle_bmain, freestyle_scene, OB_MESH); - DAG_relations_tag_update(freestyle_bmain); + Object *object_mesh = BKE_object_add(freestyle_bmain, freestyle_scene, (ViewLayer *)freestyle_scene->view_layers.first, OB_MESH); + DEG_relations_tag_update(freestyle_bmain); #else Object *object_mesh = NewMesh(); #endif @@ -700,17 +718,13 @@ void BlenderStrokeRenderer::GenerateStrokeMesh(StrokeGroup *group, bool hasTex) if (hasTex) { // First UV layer - CustomData_add_layer_named(&mesh->pdata, CD_MTEXPOLY, CD_CALLOC, NULL, mesh->totpoly, uvNames[0]); CustomData_add_layer_named(&mesh->ldata, CD_MLOOPUV, CD_CALLOC, NULL, mesh->totloop, uvNames[0]); - CustomData_set_layer_active(&mesh->pdata, CD_MTEXPOLY, 0); CustomData_set_layer_active(&mesh->ldata, CD_MLOOPUV, 0); BKE_mesh_update_customdata_pointers(mesh, true); loopsuv[0] = mesh->mloopuv; // Second UV layer - CustomData_add_layer_named(&mesh->pdata, CD_MTEXPOLY, CD_CALLOC, NULL, mesh->totpoly, uvNames[1]); CustomData_add_layer_named(&mesh->ldata, CD_MLOOPUV, CD_CALLOC, NULL, mesh->totloop, uvNames[1]); - CustomData_set_layer_active(&mesh->pdata, CD_MTEXPOLY, 1); CustomData_set_layer_active(&mesh->ldata, CD_MLOOPUV, 1); BKE_mesh_update_customdata_pointers(mesh, true); loopsuv[1] = mesh->mloopuv; @@ -922,7 +936,6 @@ void BlenderStrokeRenderer::GenerateStrokeMesh(StrokeGroup *group, bool hasTex) Object *BlenderStrokeRenderer::NewMesh() const { Object *ob; - Base *base; char name[MAX_ID_NAME]; unsigned int mesh_id = get_stroke_mesh_id(); @@ -932,16 +945,14 @@ Object *BlenderStrokeRenderer::NewMesh() const ob->data = BKE_mesh_add(freestyle_bmain, name); ob->lay = 1; - base = BKE_scene_base_add(freestyle_scene, ob); - DAG_relations_tag_update(freestyle_bmain); -#if 0 - BKE_scene_base_deselect_all(scene); - BKE_scene_base_select(scene, base); -#else - (void)base; -#endif + SceneCollection *sc_master = BKE_collection_master(&freestyle_scene->id); + BKE_collection_object_add(&freestyle_scene->id, sc_master, ob); + DEG_graph_tag_relations_update(freestyle_depsgraph); - DAG_id_tag_update_ex(freestyle_bmain, &ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); + DEG_graph_id_tag_update(freestyle_bmain, + freestyle_depsgraph, + &ob->id, + OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); return ob; } @@ -958,6 +969,9 @@ Render *BlenderStrokeRenderer::RenderScene(Render * /*re*/, bool render) #endif Render *freestyle_render = RE_NewSceneRender(freestyle_scene); + ViewLayer *view_layer = (ViewLayer *)freestyle_scene->view_layers.first; + DEG_graph_relations_update(freestyle_depsgraph, freestyle_bmain, freestyle_scene, view_layer); + freestyle_render->depsgraph = freestyle_depsgraph; RE_RenderFreestyleStrokes(freestyle_render, freestyle_bmain, freestyle_scene, render && get_stroke_count() > 0); diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h index ec53efa14cd..c7204293839 100644 --- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h +++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h @@ -29,6 +29,7 @@ #include "../system/FreestyleConfig.h" extern "C" { +struct Depsgraph; struct GHash; struct Main; struct Material; @@ -76,6 +77,7 @@ protected: Main *freestyle_bmain; Scene *old_scene; Scene *freestyle_scene; + Depsgraph *freestyle_depsgraph; bContext *_context; float _width, _height; float _z, _z_delta; diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp index ea22633c50e..e2560a33443 100644 --- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp +++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp @@ -283,19 +283,19 @@ static bool test_edge_type_conditions(struct edge_type_condition *conditions, return true; } -static void prepare(Render *re, SceneRenderLayer *srl) +static void prepare(Render *re, ViewLayer *view_layer) { // load mesh re->i.infostr = IFACE_("Freestyle: Mesh loading"); re->stats_draw(re->sdh, &re->i); re->i.infostr = NULL; - if (controller->LoadMesh(re, srl)) // returns if scene cannot be loaded or if empty + if (controller->LoadMesh(re, view_layer)) // returns if scene cannot be loaded or if empty return; if (re->test_break(re->tbh)) return; // add style modules - FreestyleConfig *config = &srl->freestyleConfig; + FreestyleConfig *config = &view_layer->freestyle_config; if (G.debug & G_DEBUG_FREESTYLE) { cout << "\n=== Rendering options ===" << endl; @@ -359,7 +359,7 @@ static void prepare(Render *re, SceneRenderLayer *srl) cout << " " << layer_count+1 << ": " << lineset->name << " - " << (lineset->linestyle ? (lineset->linestyle->id.name + 2) : "<NULL>") << endl; } - char *buffer = create_lineset_handler(srl->name, lineset->name); + char *buffer = create_lineset_handler(view_layer->name, lineset->name); controller->InsertStyleModule(layer_count, lineset->name, buffer); controller->toggleLayer(layer_count, true); MEM_freeN(buffer); @@ -445,7 +445,7 @@ static void prepare(Render *re, SceneRenderLayer *srl) } // set diffuse and z depth passes - RenderLayer *rl = RE_GetRenderLayer(re->result, srl->name); + RenderLayer *rl = RE_GetRenderLayer(re->result, view_layer->name); bool diffuse = false, z = false; for (RenderPass *rpass = (RenderPass *)rl->passes.first; rpass; rpass = rpass->next) { if (STREQ(rpass->name, RE_PASSNAME_DIFFUSE)) { @@ -473,7 +473,7 @@ static void prepare(Render *re, SceneRenderLayer *srl) controller->ComputeViewMap(); } -void FRS_composite_result(Render *re, SceneRenderLayer *srl, Render *freestyle_render) +void FRS_composite_result(Render *re, ViewLayer *view_layer, Render *freestyle_render) { RenderLayer *rl; float *src, *dest, *pixSrc, *pixDest; @@ -503,7 +503,7 @@ void FRS_composite_result(Render *re, SceneRenderLayer *srl, Render *freestyle_r } #endif - rl = RE_GetRenderLayer(re->result, srl->name); + rl = RE_GetRenderLayer(re->result, view_layer->name); if (!rl) { if (G.debug & G_DEBUG_FREESTYLE) { cout << "No destination render layer to composite to" << endl; @@ -536,13 +536,13 @@ void FRS_composite_result(Render *re, SceneRenderLayer *srl, Render *freestyle_r } } -static int displayed_layer_count(SceneRenderLayer *srl) +static int displayed_layer_count(ViewLayer *view_layer) { int count = 0; - switch (srl->freestyleConfig.mode) { + switch (view_layer->freestyle_config.mode) { case FREESTYLE_CONTROL_SCRIPT_MODE: - for (FreestyleModuleConfig *module = (FreestyleModuleConfig *)srl->freestyleConfig.modules.first; + for (FreestyleModuleConfig *module = (FreestyleModuleConfig *)view_layer->freestyle_config.modules.first; module; module = module->next) { @@ -551,7 +551,7 @@ static int displayed_layer_count(SceneRenderLayer *srl) } break; case FREESTYLE_CONTROL_EDITOR_MODE: - for (FreestyleLineSet *lineset = (FreestyleLineSet *)srl->freestyleConfig.linesets.first; + for (FreestyleLineSet *lineset = (FreestyleLineSet *)view_layer->freestyle_config.linesets.first; lineset; lineset = lineset->next) { @@ -563,9 +563,11 @@ static int displayed_layer_count(SceneRenderLayer *srl) return count; } -int FRS_is_freestyle_enabled(SceneRenderLayer *srl) +int FRS_is_freestyle_enabled(ViewLayer *view_layer) { - return (!(srl->layflag & SCE_LAY_DISABLE) && srl->layflag & SCE_LAY_FRS && displayed_layer_count(srl) > 0); + return ((view_layer->flag & VIEW_LAYER_RENDER) && + (view_layer->flag & VIEW_LAYER_FREESTYLE) && + displayed_layer_count(view_layer) > 0); } void FRS_init_stroke_renderer(Render *re) @@ -587,7 +589,7 @@ void FRS_begin_stroke_rendering(Render *re) init_camera(re); } -Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render) +Render *FRS_do_stroke_rendering(Render *re, ViewLayer *view_layer, int render) { Render *freestyle_render = NULL; @@ -596,12 +598,12 @@ Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render) RenderMonitor monitor(re); controller->setRenderMonitor(&monitor); - controller->setViewMapCache((srl->freestyleConfig.flags & FREESTYLE_VIEW_MAP_CACHE) ? true : false); + controller->setViewMapCache((view_layer->freestyle_config.flags & FREESTYLE_VIEW_MAP_CACHE) ? true : false); if (G.debug & G_DEBUG_FREESTYLE) { cout << endl; cout << "----------------------------------------------------------" << endl; - cout << "| " << (re->scene->id.name + 2) << "|" << srl->name << endl; + cout << "| " << (re->scene->id.name + 2) << "|" << view_layer->name << endl; cout << "----------------------------------------------------------" << endl; } @@ -610,7 +612,7 @@ Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render) // - add style modules // - set parameters // - compute view map - prepare(re, srl); + prepare(re, view_layer); if (re->test_break(re->tbh)) { controller->CloseFile(); @@ -635,7 +637,7 @@ Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render) // composite result if (freestyle_render) { - FRS_composite_result(re, srl, freestyle_render); + FRS_composite_result(re, view_layer, freestyle_render); RE_FreeRenderResult(freestyle_render->result); freestyle_render->result = NULL; } diff --git a/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.cpp b/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.cpp index 9c462bb6b2b..6f5491fc8ef 100644 --- a/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.cpp +++ b/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.cpp @@ -51,7 +51,6 @@ IndexedFaceSet::IndexedFaceSet() : Rep() _MISize = 0; _TIndices = NULL; _TISize = 0; - _displayList = 0; } IndexedFaceSet::IndexedFaceSet(float *iVertices, unsigned iVSize, float *iNormals, unsigned iNSize, @@ -150,8 +149,6 @@ IndexedFaceSet::IndexedFaceSet(float *iVertices, unsigned iVSize, float *iNormal _TISize = iTISize; _TIndices = iTIndices; } - - _displayList = 0; } IndexedFaceSet::IndexedFaceSet(const IndexedFaceSet& iBrother) : Rep(iBrother) @@ -215,8 +212,6 @@ IndexedFaceSet::IndexedFaceSet(const IndexedFaceSet& iBrother) : Rep(iBrother) _TIndices = new unsigned[_TISize]; memcpy(_TIndices, iBrother.tindices(), _TISize * sizeof(unsigned)); } - - _displayList = 0; } IndexedFaceSet::~IndexedFaceSet() @@ -276,10 +271,6 @@ IndexedFaceSet::~IndexedFaceSet() delete[] _TIndices; _TIndices = NULL; } - - // should find a way to deallocates the displayList - // glDeleteLists(GLuint list, GLSizei range) - _displayList = 0; } void IndexedFaceSet::accept(SceneVisitor& v) diff --git a/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.h b/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.h index 8d7bf986bde..16dea6f907e 100644 --- a/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.h +++ b/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.h @@ -150,8 +150,6 @@ public: std::swap(_MISize, ioOther._MISize); std::swap(_TISize, ioOther._TISize); - std::swap(_displayList, ioOther._displayList); - Rep::swap(ioOther); } @@ -173,12 +171,6 @@ public: /*! Compute the Bounding Box */ virtual void ComputeBBox(); - /*! modifiers */ - inline void setDisplayList(unsigned int index) - { - _displayList = index; - } - /*! Accessors */ virtual const float *vertices() const { @@ -280,11 +272,6 @@ public: return _TISize; } - inline unsigned int displayList() const - { - return _displayList; - } - protected: float *_Vertices; float *_Normals; @@ -311,8 +298,6 @@ protected: unsigned _MISize; unsigned _TISize; - unsigned int _displayList; - #ifdef WITH_CXX_GUARDEDALLOC MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:IndexedFaceSet") #endif diff --git a/source/blender/freestyle/intern/scene_graph/NodeSceneRenderLayer.cpp b/source/blender/freestyle/intern/scene_graph/NodeViewLayer.cpp index 24c56ff4e28..701c5caa91d 100644 --- a/source/blender/freestyle/intern/scene_graph/NodeSceneRenderLayer.cpp +++ b/source/blender/freestyle/intern/scene_graph/NodeViewLayer.cpp @@ -18,18 +18,18 @@ * ***** END GPL LICENSE BLOCK ***** */ -/** \file blender/freestyle/intern/scene_graph/NodeSceneRenderLayer.cpp +/** \file blender/freestyle/intern/scene_graph/NodeViewLayer.cpp * \ingroup freestyle * \brief Class to represent a scene render layer in Blender. */ -#include "NodeSceneRenderLayer.h" +#include "NodeViewLayer.h" namespace Freestyle { -void NodeSceneRenderLayer::accept(SceneVisitor& v) +void NodeViewLayer::accept(SceneVisitor& v) { - v.visitNodeSceneRenderLayer(*this); + v.visitNodeViewLayer(*this); } } /* namespace Freestyle */ diff --git a/source/blender/freestyle/intern/scene_graph/NodeSceneRenderLayer.h b/source/blender/freestyle/intern/scene_graph/NodeViewLayer.h index 8dc93d84201..cc64fda60b6 100644 --- a/source/blender/freestyle/intern/scene_graph/NodeSceneRenderLayer.h +++ b/source/blender/freestyle/intern/scene_graph/NodeViewLayer.h @@ -18,38 +18,38 @@ * ***** END GPL LICENSE BLOCK ***** */ -#ifndef __FREESTYLE_NODE_SCENE_RENDER_LAYER_H__ -#define __FREESTYLE_NODE_SCENE_RENDER_LAYER_H__ +#ifndef __FREESTYLE_NODE_VIEW_LAYER_H__ +#define __FREESTYLE_NODE_VIEW_LAYER_H__ -/** \file blender/freestyle/intern/scene_graph/NodeSceneRenderLayer.h +/** \file blender/freestyle/intern/scene_graph/NodeViewLayer.h * \ingroup freestyle - * \brief Class to represent a scene render layer in Blender. + * \brief Class to represent a view layer in Blender. */ #include "Node.h" extern "C" { -#include "DNA_scene_types.h" /* for Scene and SceneRenderLayer */ +#include "DNA_scene_types.h" /* for Scene and ViewLayer */ } using namespace std; namespace Freestyle { -class NodeSceneRenderLayer : public Node +class NodeViewLayer : public Node { public: - inline NodeSceneRenderLayer(Scene& scene, SceneRenderLayer& srl) : Node(), _Scene(scene), _SceneRenderLayer(srl) {} - virtual ~NodeSceneRenderLayer() {} + inline NodeViewLayer(Scene& scene, ViewLayer& view_layer) : Node(), _Scene(scene), _ViewLayer(view_layer) {} + virtual ~NodeViewLayer() {} inline struct Scene& scene() const { return _Scene; } - inline struct SceneRenderLayer& sceneRenderLayer() const + inline struct ViewLayer& sceneLayer() const { - return _SceneRenderLayer; + return _ViewLayer; } /*! Accept the corresponding visitor */ @@ -58,9 +58,9 @@ public: protected: Scene& _Scene; - SceneRenderLayer& _SceneRenderLayer; + ViewLayer& _ViewLayer; }; } /* namespace Freestyle */ -#endif // __FREESTYLE_NODE_SCENE_RENDER_LAYER_H__ +#endif // __FREESTYLE_NODE_VIEW_LAYER_H__ diff --git a/source/blender/freestyle/intern/scene_graph/SceneHash.cpp b/source/blender/freestyle/intern/scene_graph/SceneHash.cpp index 2af02ab5764..16c353678c1 100644 --- a/source/blender/freestyle/intern/scene_graph/SceneHash.cpp +++ b/source/blender/freestyle/intern/scene_graph/SceneHash.cpp @@ -35,14 +35,14 @@ string SceneHash::toString() return ss.str(); } -void SceneHash::visitNodeSceneRenderLayer(NodeSceneRenderLayer& node) +void SceneHash::visitNodeViewLayer(NodeViewLayer& node) { struct RenderData *r = &node.scene().r; adler32((unsigned char *)&r->xsch, sizeof(r->xsch)); // resolution_x adler32((unsigned char *)&r->ysch, sizeof(r->ysch)); // resolution_y adler32((unsigned char *)&r->size, sizeof(r->size)); // resolution_percentage - struct FreestyleConfig *config = &node.sceneRenderLayer().freestyleConfig; + struct FreestyleConfig *config = &node.sceneLayer().freestyle_config; adler32((unsigned char *)&config->flags, sizeof(config->flags)); adler32((unsigned char *)&config->crease_angle, sizeof(config->crease_angle)); adler32((unsigned char *)&config->sphere_radius, sizeof(config->sphere_radius)); diff --git a/source/blender/freestyle/intern/scene_graph/SceneHash.h b/source/blender/freestyle/intern/scene_graph/SceneHash.h index 9da711673f0..662b4bba8f1 100644 --- a/source/blender/freestyle/intern/scene_graph/SceneHash.h +++ b/source/blender/freestyle/intern/scene_graph/SceneHash.h @@ -26,7 +26,7 @@ */ #include "IndexedFaceSet.h" -#include "NodeSceneRenderLayer.h" +#include "NodeViewLayer.h" #include "NodeCamera.h" #include "SceneVisitor.h" @@ -49,7 +49,7 @@ public: virtual ~SceneHash() {} VISIT_DECL(NodeCamera) - VISIT_DECL(NodeSceneRenderLayer) + VISIT_DECL(NodeViewLayer) VISIT_DECL(IndexedFaceSet) string toString(); diff --git a/source/blender/freestyle/intern/scene_graph/SceneVisitor.h b/source/blender/freestyle/intern/scene_graph/SceneVisitor.h index 712585c4064..d76e48980bf 100644 --- a/source/blender/freestyle/intern/scene_graph/SceneVisitor.h +++ b/source/blender/freestyle/intern/scene_graph/SceneVisitor.h @@ -56,7 +56,7 @@ class NodeLight; class NodeCamera; class NodeDrawingStyle; class NodeTransform; -class NodeSceneRenderLayer; +class NodeViewLayer; class Rep; class LineRep; @@ -88,7 +88,7 @@ public: VISIT_COMPLETE_DEF(NodeCamera) VISIT_COMPLETE_DEF(NodeDrawingStyle) VISIT_COMPLETE_DEF(NodeTransform) - VISIT_COMPLETE_DEF(NodeSceneRenderLayer) + VISIT_COMPLETE_DEF(NodeViewLayer) VISIT_COMPLETE_DEF(Rep) VISIT_COMPLETE_DEF(LineRep) |