Differential D3034 Diff 9916 source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
| Show First 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | |||||
| #include "BKE_customdata.h" | #include "BKE_customdata.h" | ||||
| #include "BKE_global.h" | #include "BKE_global.h" | ||||
| #include "BKE_library.h" /* free_libblock */ | #include "BKE_library.h" /* free_libblock */ | ||||
| #include "BKE_material.h" | #include "BKE_material.h" | ||||
| #include "BKE_mesh.h" | #include "BKE_mesh.h" | ||||
| #include "BKE_node.h" | #include "BKE_node.h" | ||||
| #include "BKE_object.h" | #include "BKE_object.h" | ||||
| #include "BKE_scene.h" | #include "BKE_scene.h" | ||||
| #include "BKE_workspace.h" | |||||
| #include "BLI_ghash.h" | #include "BLI_ghash.h" | ||||
| #include "BLI_listbase.h" | #include "BLI_listbase.h" | ||||
| #include "BLI_math_color.h" | #include "BLI_math_color.h" | ||||
| #include "BLI_math_vector.h" | #include "BLI_math_vector.h" | ||||
| #include "BLI_utildefines.h" | #include "BLI_utildefines.h" | ||||
| #include "DEG_depsgraph.h" | #include "DEG_depsgraph.h" | ||||
| Show All 9 Lines | |||||
| namespace Freestyle { | namespace Freestyle { | ||||
| const char *BlenderStrokeRenderer::uvNames[] = {"along_stroke", "along_stroke_tips"}; | const char *BlenderStrokeRenderer::uvNames[] = {"along_stroke", "along_stroke_tips"}; | ||||
| BlenderStrokeRenderer::BlenderStrokeRenderer(Render *re, int render_count) : StrokeRenderer() | BlenderStrokeRenderer::BlenderStrokeRenderer(Render *re, int render_count) : StrokeRenderer() | ||||
| { | { | ||||
| freestyle_bmain = re->freestyle_bmain; | freestyle_bmain = re->freestyle_bmain; | ||||
| freestyle_depsgraph = DEG_graph_new(); | freestyle_depsgraph = DEG_graph_new(); | ||||
| freestyle_workspace = BKE_workspace_add(freestyle_bmain, "Freestyle Temp Workspace"); | |||||
| // for stroke mesh generation | // for stroke mesh generation | ||||
| _width = re->winx; | _width = re->winx; | ||||
| _height = re->winy; | _height = re->winy; | ||||
| old_scene = re->scene; | old_scene = re->scene; | ||||
| char name[MAX_ID_NAME - 2]; | char name[MAX_ID_NAME - 2]; | ||||
| Show All 39 Lines | BlenderStrokeRenderer::BlenderStrokeRenderer(Render *re, int render_count) : StrokeRenderer() | ||||
| BKE_scene_set_background(freestyle_bmain, freestyle_scene); | BKE_scene_set_background(freestyle_bmain, freestyle_scene); | ||||
| DEG_graph_id_tag_update(freestyle_bmain, freestyle_depsgraph, &freestyle_scene->id, 0); | DEG_graph_id_tag_update(freestyle_bmain, freestyle_depsgraph, &freestyle_scene->id, 0); | ||||
| // Scene layer. | // Scene layer. | ||||
| ViewLayer *view_layer = (ViewLayer *)freestyle_scene->view_layers.first; | ViewLayer *view_layer = (ViewLayer *)freestyle_scene->view_layers.first; | ||||
| view_layer->layflag = SCE_LAY_SOLID | SCE_LAY_ZTRA; | view_layer->layflag = SCE_LAY_SOLID | SCE_LAY_ZTRA; | ||||
| // Camera | // Camera | ||||
| Object *object_camera = BKE_object_add(freestyle_bmain, freestyle_scene, view_layer, OB_CAMERA, NULL); | Object *object_camera = BKE_object_add(freestyle_bmain, | ||||
| freestyle_scene, | |||||
| view_layer, | |||||
| freestyle_workspace, | |||||
| OB_CAMERA, NULL); | |||||
| DEG_graph_id_tag_update(freestyle_bmain, freestyle_depsgraph, &object_camera->id, 0); | DEG_graph_id_tag_update(freestyle_bmain, freestyle_depsgraph, &object_camera->id, 0); | ||||
| Camera *camera = (Camera *)object_camera->data; | Camera *camera = (Camera *)object_camera->data; | ||||
| camera->type = CAM_ORTHO; | camera->type = CAM_ORTHO; | ||||
| camera->ortho_scale = max(re->rectx, re->recty); | camera->ortho_scale = max(re->rectx, re->recty); | ||||
| camera->clipsta = 0.1f; | camera->clipsta = 0.1f; | ||||
| camera->clipend = 100.0f; | camera->clipend = 100.0f; | ||||
| ▲ Show 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | for (int a = 0; a < MAX_MTEX; a++) { | ||||
| else { | else { | ||||
| break; // Textures are ordered, no empty slots between two textures | break; // Textures are ordered, no empty slots between two textures | ||||
| } | } | ||||
| } | } | ||||
| lnk = lnk->next; | lnk = lnk->next; | ||||
| BKE_libblock_free(freestyle_bmain, ma); | BKE_libblock_free(freestyle_bmain, ma); | ||||
| } | } | ||||
| BKE_workspace_remove(freestyle_bmain, workspace); | |||||
| if (_use_shading_nodes) | if (_use_shading_nodes) | ||||
| BLI_ghash_free(_nodetree_hash, NULL, NULL); | BLI_ghash_free(_nodetree_hash, NULL, NULL); | ||||
| DEG_graph_free(freestyle_depsgraph); | DEG_graph_free(freestyle_depsgraph); | ||||
| FreeStrokeGroups(); | FreeStrokeGroups(); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 746 Lines • Show Last 20 Lines | |||||