Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/render/render_opengl.c
| Show All 36 Lines | |||||
| #include "BLI_task.h" | #include "BLI_task.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_gpencil_types.h" | #include "DNA_gpencil_types.h" | ||||
| #include "BKE_camera.h" | #include "BKE_camera.h" | ||||
| #include "BKE_context.h" | #include "BKE_context.h" | ||||
| #include "BKE_customdata.h" | |||||
| #include "BKE_global.h" | #include "BKE_global.h" | ||||
| #include "BKE_image.h" | #include "BKE_image.h" | ||||
| #include "BKE_main.h" | #include "BKE_main.h" | ||||
| #include "BKE_report.h" | #include "BKE_report.h" | ||||
| #include "BKE_scene.h" | #include "BKE_scene.h" | ||||
| #include "BKE_sequencer.h" | #include "BKE_sequencer.h" | ||||
| #include "BKE_writeavi.h" | #include "BKE_writeavi.h" | ||||
| ▲ Show 20 Lines • Show All 545 Lines • ▼ Show 20 Lines | static bool screen_opengl_render_init(bContext *C, wmOperator *op) | ||||
| if (is_view_context) { | if (is_view_context) { | ||||
| /* so quad view renders camera */ | /* so quad view renders camera */ | ||||
| ED_view3d_context_user_region(C, &oglrender->v3d, &oglrender->ar); | ED_view3d_context_user_region(C, &oglrender->v3d, &oglrender->ar); | ||||
| oglrender->rv3d = oglrender->ar->regiondata; | oglrender->rv3d = oglrender->ar->regiondata; | ||||
| /* MUST be cleared on exit */ | /* MUST be cleared on exit */ | ||||
| oglrender->scene->customdata_mask_modal = ED_view3d_datamask(C, oglrender->scene, oglrender->v3d); | memset(&oglrender->scene->customdata_mask_modal, 0, sizeof(oglrender->scene->customdata_mask_modal)); | ||||
| ED_view3d_datamask(C, oglrender->scene, oglrender->v3d, &oglrender->scene->customdata_mask_modal); | |||||
| /* apply immediately in case we're rendering from a script, | /* apply immediately in case we're rendering from a script, | ||||
| * running notifiers again will overwrite */ | * running notifiers again will overwrite */ | ||||
| oglrender->scene->customdata_mask |= oglrender->scene->customdata_mask_modal; | CustomData_Masks_update(&oglrender->scene->customdata_mask, &oglrender->scene->customdata_mask_modal); | ||||
| } | } | ||||
| /* create render */ | /* create render */ | ||||
| oglrender->re = RE_NewSceneRender(scene); | oglrender->re = RE_NewSceneRender(scene); | ||||
| /* create image and image user */ | /* create image and image user */ | ||||
| oglrender->ima = BKE_image_verify_viewer(oglrender->bmain, IMA_TYPE_R_RESULT, "Render Result"); | oglrender->ima = BKE_image_verify_viewer(oglrender->bmain, IMA_TYPE_R_RESULT, "Render Result"); | ||||
| BKE_image_signal(oglrender->bmain, oglrender->ima, NULL, IMA_SIGNAL_FREE); | BKE_image_signal(oglrender->bmain, oglrender->ima, NULL, IMA_SIGNAL_FREE); | ||||
| ▲ Show 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | #endif | ||||
| DRW_opengl_context_enable(); | DRW_opengl_context_enable(); | ||||
| GPU_offscreen_free(oglrender->ofs); | GPU_offscreen_free(oglrender->ofs); | ||||
| DRW_opengl_context_disable(); | DRW_opengl_context_disable(); | ||||
| if (oglrender->is_sequencer) { | if (oglrender->is_sequencer) { | ||||
| MEM_freeN(oglrender->seq_data.ibufs_arr); | MEM_freeN(oglrender->seq_data.ibufs_arr); | ||||
| } | } | ||||
| oglrender->scene->customdata_mask_modal = 0; | memset(&oglrender->scene->customdata_mask_modal, 0, sizeof(oglrender->scene->customdata_mask_modal)); | ||||
| CTX_wm_area_set(C, oglrender->prevsa); | CTX_wm_area_set(C, oglrender->prevsa); | ||||
| CTX_wm_region_set(C, oglrender->prevar); | CTX_wm_region_set(C, oglrender->prevar); | ||||
| MEM_freeN(oglrender); | MEM_freeN(oglrender); | ||||
| } | } | ||||
| static void screen_opengl_render_cancel(bContext *C, wmOperator *op) | static void screen_opengl_render_cancel(bContext *C, wmOperator *op) | ||||
| ▲ Show 20 Lines • Show All 376 Lines • Show Last 20 Lines | |||||