Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/workbench/workbench_render.c
| Show First 20 Lines • Show All 139 Lines • ▼ Show 20 Lines | void workbench_render(WORKBENCH_Data *data, | ||||
| const bool deferred = !XRAY_FLAG_ENABLED(&scene->display); | const bool deferred = !XRAY_FLAG_ENABLED(&scene->display); | ||||
| if (deferred) { | if (deferred) { | ||||
| /* Init engine. */ | /* Init engine. */ | ||||
| workbench_deferred_engine_init(data); | workbench_deferred_engine_init(data); | ||||
| /* Init objects. */ | /* Init objects. */ | ||||
| workbench_deferred_cache_init(data); | workbench_deferred_cache_init(data); | ||||
| DRW_render_object_iter(data, engine, depsgraph, workbench_render_deferred_cache); | DRW_render_object_iter(data, engine, depsgraph, workbench_render_deferred_cache, -1); | ||||
| workbench_deferred_cache_finish(data); | workbench_deferred_cache_finish(data); | ||||
| DRW_render_instance_buffer_finish(); | DRW_render_instance_buffer_finish(); | ||||
| /* Also we weed to have a correct fbo bound for DRW_hair_update */ | /* Also we weed to have a correct fbo bound for DRW_hair_update */ | ||||
| GPU_framebuffer_bind(dfbl->color_only_fb); | GPU_framebuffer_bind(dfbl->color_only_fb); | ||||
| DRW_hair_update(); | DRW_hair_update(); | ||||
| /* Draw. */ | /* Draw. */ | ||||
| Show All 9 Lines | if (deferred) { | ||||
| workbench_deferred_draw_finish(data); | workbench_deferred_draw_finish(data); | ||||
| } | } | ||||
| else { | else { | ||||
| /* Init engine. */ | /* Init engine. */ | ||||
| workbench_forward_engine_init(data); | workbench_forward_engine_init(data); | ||||
| /* Init objects. */ | /* Init objects. */ | ||||
| workbench_forward_cache_init(data); | workbench_forward_cache_init(data); | ||||
| DRW_render_object_iter(data, engine, depsgraph, workbench_render_forward_cache); | DRW_render_object_iter(data, engine, depsgraph, workbench_render_forward_cache, -1); | ||||
| workbench_forward_cache_finish(data); | workbench_forward_cache_finish(data); | ||||
| DRW_render_instance_buffer_finish(); | DRW_render_instance_buffer_finish(); | ||||
| /* Also we weed to have a correct fbo bound for DRW_hair_update */ | /* Also we weed to have a correct fbo bound for DRW_hair_update */ | ||||
| GPU_framebuffer_bind(dfbl->color_only_fb); | GPU_framebuffer_bind(dfbl->color_only_fb); | ||||
| DRW_hair_update(); | DRW_hair_update(); | ||||
| /* Draw. */ | /* Draw. */ | ||||
| Show All 34 Lines | |||||