Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/intern/draw_manager.c
| Show First 20 Lines • Show All 1,209 Lines • ▼ Show 20 Lines | void DRW_notify_view_update(const DRWUpdateContext *update_ctx) | ||||
| Depsgraph *depsgraph = update_ctx->depsgraph; | Depsgraph *depsgraph = update_ctx->depsgraph; | ||||
| Scene *scene = update_ctx->scene; | Scene *scene = update_ctx->scene; | ||||
| ViewLayer *view_layer = update_ctx->view_layer; | ViewLayer *view_layer = update_ctx->view_layer; | ||||
| const bool gpencil_engine_needed = drw_gpencil_engine_needed(depsgraph, v3d); | const bool gpencil_engine_needed = drw_gpencil_engine_needed(depsgraph, v3d); | ||||
| /* Separate update for each stereo view. */ | /* Separate update for each stereo view. */ | ||||
| for (int view = 0; view < 2; view++) { | for (int view = 0; view < 2; view++) { | ||||
| GPUViewport *viewport = WM_draw_region_get_viewport(region, view); | GPUViewport *viewport = WM_draw_region_get_viewport(region); | ||||
| if (!viewport) { | if (!viewport) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| /* XXX Really nasty locking. But else this could | /* XXX Really nasty locking. But else this could | ||||
| * be executed by the material previews thread | * be executed by the material previews thread | ||||
| * while rendering a viewport. */ | * while rendering a viewport. */ | ||||
| BLI_ticket_mutex_lock(DST.gl_context_mutex); | BLI_ticket_mutex_lock(DST.gl_context_mutex); | ||||
| /* Reset before using it. */ | /* Reset before using it. */ | ||||
| drw_state_prepare_clean_for_draw(&DST); | drw_state_prepare_clean_for_draw(&DST); | ||||
| DST.viewport = viewport; | DST.viewport = viewport; | ||||
| GPU_viewport_active_view_set(viewport, view); | |||||
| DST.draw_ctx = (DRWContextState){ | DST.draw_ctx = (DRWContextState){ | ||||
| .region = region, | .region = region, | ||||
| .rv3d = rv3d, | .rv3d = rv3d, | ||||
| .v3d = v3d, | .v3d = v3d, | ||||
| .scene = scene, | .scene = scene, | ||||
| .view_layer = view_layer, | .view_layer = view_layer, | ||||
| .obact = OBACT(view_layer), | .obact = OBACT(view_layer), | ||||
| .engine_type = engine_type, | .engine_type = engine_type, | ||||
| ▲ Show 20 Lines • Show All 168 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| 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); | ||||
| RegionView3D *rv3d = region->regiondata; | RegionView3D *rv3d = region->regiondata; | ||||
| DST.draw_ctx.evil_C = evil_C; | DST.draw_ctx.evil_C = evil_C; | ||||
| DST.viewport = viewport; | DST.viewport = viewport; | ||||
| /* Setup viewport */ | /* Setup viewport */ | ||||
| DST.draw_ctx = (DRWContextState){ | DST.draw_ctx = (DRWContextState){ | ||||
| .region = region, | .region = region, | ||||
| .rv3d = rv3d, | .rv3d = rv3d, | ||||
| .v3d = v3d, | .v3d = v3d, | ||||
| .scene = scene, | .scene = scene, | ||||
| .view_layer = view_layer, | .view_layer = view_layer, | ||||
| .obact = OBACT(view_layer), | .obact = OBACT(view_layer), | ||||
| ▲ Show 20 Lines • Show All 940 Lines • ▼ Show 20 Lines | DST.draw_ctx = (DRWContextState){ | ||||
| .view_layer = view_layer, | .view_layer = view_layer, | ||||
| .obact = OBACT(view_layer), | .obact = OBACT(view_layer), | ||||
| .depsgraph = depsgraph, | .depsgraph = depsgraph, | ||||
| }; | }; | ||||
| drw_context_state_init(); | drw_context_state_init(); | ||||
| /* Setup viewport */ | /* Setup viewport */ | ||||
| DST.viewport = WM_draw_region_get_viewport(region, 0); | DST.viewport = WM_draw_region_get_viewport(region); | ||||
| drw_viewport_var_init(); | drw_viewport_var_init(); | ||||
| /* Update ubos */ | /* Update ubos */ | ||||
| DRW_globals_update(); | DRW_globals_update(); | ||||
| /* Init Select Engine */ | /* Init Select Engine */ | ||||
| struct SELECTID_Context *sel_ctx = DRW_select_engine_context_get(); | struct SELECTID_Context *sel_ctx = DRW_select_engine_context_get(); | ||||
| sel_ctx->last_rect = *rect; | sel_ctx->last_rect = *rect; | ||||
| ▲ Show 20 Lines • Show All 451 Lines • Show Last 20 Lines | |||||