Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/intern/draw_manager.c
| Show First 20 Lines • Show All 1,617 Lines • ▼ Show 20 Lines | if (ob->type == OB_GPENCIL) { | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END; | DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END; | ||||
| return false; | return false; | ||||
| } | } | ||||
| static void drw_view_reset(void) | |||||
| { | |||||
| DST.view_default = NULL; | |||||
| DST.view_active = NULL; | |||||
| DST.view_previous = NULL; | |||||
| } | |||||
| static void DRW_render_gpencil_to_image(RenderEngine *engine, | static void DRW_render_gpencil_to_image(RenderEngine *engine, | ||||
| struct RenderLayer *render_layer, | struct RenderLayer *render_layer, | ||||
| const rcti *rect) | const rcti *rect) | ||||
| { | { | ||||
| if (draw_engine_gpencil_type.render_to_image) { | if (draw_engine_gpencil_type.render_to_image) { | ||||
| ViewportEngineData *gpdata = drw_viewport_engine_data_ensure(&draw_engine_gpencil_type); | ViewportEngineData *gpdata = drw_viewport_engine_data_ensure(&draw_engine_gpencil_type); | ||||
| draw_engine_gpencil_type.render_to_image(gpdata, engine, render_layer, rect); | draw_engine_gpencil_type.render_to_image(gpdata, engine, render_layer, rect); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | void DRW_render_gpencil(struct RenderEngine *engine, struct Depsgraph *depsgraph) | ||||
| rcti render_rect; | rcti render_rect; | ||||
| RE_GetViewPlane(render, &view_rect, &render_rect); | RE_GetViewPlane(render, &view_rect, &render_rect); | ||||
| if (BLI_rcti_is_empty(&render_rect)) { | if (BLI_rcti_is_empty(&render_rect)) { | ||||
| BLI_rcti_init(&render_rect, 0, size[0], 0, size[1]); | BLI_rcti_init(&render_rect, 0, size[0], 0, size[1]); | ||||
| } | } | ||||
| RenderResult *render_result = RE_engine_get_result(engine); | RenderResult *render_result = RE_engine_get_result(engine); | ||||
| RenderLayer *render_layer = RE_GetRenderLayer(render_result, view_layer->name); | RenderLayer *render_layer = RE_GetRenderLayer(render_result, view_layer->name); | ||||
| for (RenderView *render_view = render_result->views.first; render_view != NULL; | |||||
| render_view = render_view->next) { | |||||
| RE_SetActiveRenderView(render, render_view->name); | |||||
| drw_view_reset(); | |||||
| DST.buffer_finish_called = false; | DST.buffer_finish_called = false; | ||||
| DRW_render_gpencil_to_image(engine, render_layer, &render_rect); | DRW_render_gpencil_to_image(engine, render_layer, &render_rect); | ||||
| } | |||||
| DST.buffer_finish_called = true; | |||||
| /* Force cache to reset. */ | /* Force cache to reset. */ | ||||
| drw_viewport_cache_resize(); | drw_viewport_cache_resize(); | ||||
| GPU_viewport_free(DST.viewport); | GPU_viewport_free(DST.viewport); | ||||
| DRW_state_reset(); | DRW_state_reset(); | ||||
| glDisable(GL_DEPTH_TEST); | glDisable(GL_DEPTH_TEST); | ||||
| /* Restore Drawing area. */ | /* Restore Drawing area. */ | ||||
| GPU_framebuffer_restore(); | GPU_framebuffer_restore(); | ||||
| /* Changing Context */ | /* Changing Context */ | ||||
| if (re_gl_context != NULL) { | if (re_gl_context != NULL) { | ||||
| DRW_gpu_render_context_disable(re_gpu_context); | DRW_gpu_render_context_disable(re_gpu_context); | ||||
| DRW_opengl_render_context_disable(re_gl_context); | DRW_opengl_render_context_disable(re_gl_context); | ||||
| } | } | ||||
| else { | else { | ||||
| DRW_opengl_context_disable(); | DRW_opengl_context_disable(); | ||||
| } | } | ||||
| DST.buffer_finish_called = false; | DST.buffer_finish_called = false; | ||||
| } | } | ||||
| static void drw_view_reset(void) | |||||
| { | |||||
| DST.view_default = NULL; | |||||
| DST.view_active = NULL; | |||||
| DST.view_previous = NULL; | |||||
| } | |||||
| void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph) | void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph) | ||||
| { | { | ||||
| Scene *scene = DEG_get_evaluated_scene(depsgraph); | Scene *scene = DEG_get_evaluated_scene(depsgraph); | ||||
| ViewLayer *view_layer = DEG_get_evaluated_view_layer(depsgraph); | ViewLayer *view_layer = DEG_get_evaluated_view_layer(depsgraph); | ||||
| RenderEngineType *engine_type = engine->type; | RenderEngineType *engine_type = engine->type; | ||||
| DrawEngineType *draw_engine_type = engine_type->draw_engine; | DrawEngineType *draw_engine_type = engine_type->draw_engine; | ||||
| Render *render = engine->re; | Render *render = engine->re; | ||||
| ▲ Show 20 Lines • Show All 1,091 Lines • Show Last 20 Lines | |||||