Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/intern/draw_manager.c
| Show First 20 Lines • Show All 1,578 Lines • ▼ Show 20 Lines | void DRW_draw_render_loop_offscreen(struct Depsgraph *depsgraph, | ||||
| const bool draw_background, | const bool draw_background, | ||||
| const bool do_color_management, | const bool do_color_management, | ||||
| GPUOffScreen *ofs, | GPUOffScreen *ofs, | ||||
| GPUViewport *viewport) | GPUViewport *viewport) | ||||
| { | { | ||||
| /* Create temporary viewport if needed. */ | /* Create temporary viewport if needed. */ | ||||
| GPUViewport *render_viewport = viewport; | GPUViewport *render_viewport = viewport; | ||||
| if (viewport == NULL) { | if (viewport == NULL) { | ||||
| render_viewport = GPU_viewport_create(); | render_viewport = GPU_viewport_create(false); | ||||
| } | } | ||||
| GPU_viewport_bind_from_offscreen(render_viewport, ofs); | GPU_viewport_bind_from_offscreen(render_viewport, ofs); | ||||
| /* Reset before using it. */ | /* Reset before using it. */ | ||||
| drw_state_prepare_clean_for_draw(&DST); | drw_state_prepare_clean_for_draw(&DST); | ||||
| DST.options.is_image_render = true; | DST.options.is_image_render = true; | ||||
| DST.options.do_color_management = do_color_management; | DST.options.do_color_management = do_color_management; | ||||
| ▲ Show 20 Lines • Show All 107 Lines • ▼ Show 20 Lines | DST.draw_ctx = (DRWContextState){ | ||||
| .scene = scene, | .scene = scene, | ||||
| .view_layer = view_layer, | .view_layer = view_layer, | ||||
| .engine_type = engine_type, | .engine_type = engine_type, | ||||
| .depsgraph = depsgraph, | .depsgraph = depsgraph, | ||||
| .object_mode = OB_MODE_OBJECT, | .object_mode = OB_MODE_OBJECT, | ||||
| }; | }; | ||||
| drw_context_state_init(); | drw_context_state_init(); | ||||
| DST.viewport = GPU_viewport_create(); | DST.viewport = GPU_viewport_create(false); | ||||
| const int size[2] = {(r->size * r->xsch) / 100, (r->size * r->ysch) / 100}; | const int size[2] = {(r->size * r->xsch) / 100, (r->size * r->ysch) / 100}; | ||||
| GPU_viewport_size_set(DST.viewport, size); | GPU_viewport_size_set(DST.viewport, size); | ||||
| drw_viewport_var_init(); | drw_viewport_var_init(); | ||||
| /* Main rendering. */ | /* Main rendering. */ | ||||
| rctf view_rect; | rctf view_rect; | ||||
| rcti render_rect; | rcti render_rect; | ||||
| ▲ Show 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | DST.draw_ctx = (DRWContextState){ | ||||
| .scene = scene, | .scene = scene, | ||||
| .view_layer = view_layer, | .view_layer = view_layer, | ||||
| .engine_type = engine_type, | .engine_type = engine_type, | ||||
| .depsgraph = depsgraph, | .depsgraph = depsgraph, | ||||
| .object_mode = OB_MODE_OBJECT, | .object_mode = OB_MODE_OBJECT, | ||||
| }; | }; | ||||
| drw_context_state_init(); | drw_context_state_init(); | ||||
| DST.viewport = GPU_viewport_create(); | DST.viewport = GPU_viewport_create(false); | ||||
| const int size[2] = {engine->resolution_x, engine->resolution_y}; | const int size[2] = {engine->resolution_x, engine->resolution_y}; | ||||
| GPU_viewport_size_set(DST.viewport, size); | GPU_viewport_size_set(DST.viewport, size); | ||||
| drw_viewport_var_init(); | drw_viewport_var_init(); | ||||
| ViewportEngineData *data = drw_viewport_engine_data_ensure(draw_engine_type); | ViewportEngineData *data = drw_viewport_engine_data_ensure(draw_engine_type); | ||||
| /* set default viewport */ | /* set default viewport */ | ||||
| ▲ Show 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | DST.draw_ctx = (DRWContextState){ | ||||
| .scene = scene, | .scene = scene, | ||||
| .view_layer = view_layer, | .view_layer = view_layer, | ||||
| .engine_type = NULL, | .engine_type = NULL, | ||||
| .depsgraph = depsgraph, | .depsgraph = depsgraph, | ||||
| .object_mode = OB_MODE_OBJECT, | .object_mode = OB_MODE_OBJECT, | ||||
| }; | }; | ||||
| drw_context_state_init(); | drw_context_state_init(); | ||||
| DST.viewport = GPU_viewport_create(); | DST.viewport = GPU_viewport_create(false); | ||||
| const int size[2] = {1, 1}; | const int size[2] = {1, 1}; | ||||
| GPU_viewport_size_set(DST.viewport, size); | GPU_viewport_size_set(DST.viewport, size); | ||||
| drw_viewport_var_init(); | drw_viewport_var_init(); | ||||
| DRW_hair_init(); | DRW_hair_init(); | ||||
| ViewportEngineData *data = drw_viewport_engine_data_ensure(draw_engine_type); | ViewportEngineData *data = drw_viewport_engine_data_ensure(draw_engine_type); | ||||
| ▲ Show 20 Lines • Show All 121 Lines • ▼ Show 20 Lines | if (!(v3d->flag2 & V3D_HIDE_OVERLAYS)) { | ||||
| object_type = obpose->type; | object_type = obpose->type; | ||||
| object_mode = obpose->mode; | object_mode = obpose->mode; | ||||
| // obedit_ctx_mode = CTX_MODE_POSE; | // obedit_ctx_mode = CTX_MODE_POSE; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| int viewport_size[2] = {BLI_rcti_size_x(rect), BLI_rcti_size_y(rect)}; | int viewport_size[2] = {BLI_rcti_size_x(rect), BLI_rcti_size_y(rect)}; | ||||
| struct GPUViewport *viewport = GPU_viewport_create(); | struct GPUViewport *viewport = GPU_viewport_create(false); | ||||
| GPU_viewport_size_set(viewport, viewport_size); | GPU_viewport_size_set(viewport, viewport_size); | ||||
| DST.viewport = viewport; | DST.viewport = viewport; | ||||
| DST.options.is_select = true; | DST.options.is_select = true; | ||||
| /* Get list of enabled engines */ | /* Get list of enabled engines */ | ||||
| if (use_obedit) { | if (use_obedit) { | ||||
| drw_engines_enable_overlays(); | drw_engines_enable_overlays(); | ||||
| ▲ Show 20 Lines • Show All 789 Lines • Show Last 20 Lines | |||||