|
Blender V5.0
|
#include <condition_variable>#include <cstddef>#include <cstring>#include "MEM_guardedalloc.h"#include "BLI_bitmap.h"#include "BLI_fileops.h"#include "BLI_listbase.h"#include "BLI_math_color_blend.h"#include "BLI_mutex.hh"#include "BLI_string_utf8.h"#include "BLI_task.h"#include "BLI_task.hh"#include "BLI_utildefines.h"#include "BLI_vector.hh"#include "DNA_anim_types.h"#include "DNA_curve_types.h"#include "DNA_gpencil_legacy_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "BKE_anim_data.hh"#include "BKE_camera.h"#include "BKE_context.hh"#include "BKE_customdata.hh"#include "BKE_fcurve.hh"#include "BKE_global.hh"#include "BKE_image.hh"#include "BKE_image_format.hh"#include "BKE_image_save.hh"#include "BKE_lib_query.hh"#include "BKE_main.hh"#include "BKE_report.hh"#include "BKE_scene.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_query.hh"#include "DRW_engine.hh"#include "WM_api.hh"#include "WM_types.hh"#include "ED_gpencil_legacy.hh"#include "ED_screen.hh"#include "ED_view3d.hh"#include "ED_view3d_offscreen.hh"#include "IMB_imbuf.hh"#include "IMB_imbuf_types.hh"#include "MOV_write.hh"#include "RE_pipeline.h"#include "BLT_translation.hh"#include "RNA_access.hh"#include "RNA_define.hh"#include "SEQ_render.hh"#include "ANIM_action_legacy.hh"#include "GPU_context.hh"#include "GPU_framebuffer.hh"#include "GPU_matrix.hh"#include "GPU_state.hh"#include "GPU_viewport.hh"#include "CLG_log.h"#include "render_intern.hh"Go to the source code of this file.
Classes | |
| struct | OGLRender |
| struct | WriteTaskData |
Macros | |
| #define | MAX_SCHEDULED_FRAMES 8 |
Variables | |
| static CLG_LogRef | LOG = {"render"} |
| #define MAX_SCHEDULED_FRAMES 8 |
Definition at line 91 of file render_opengl.cc.
Referenced by schedule_write_result().
|
static |
Definition at line 453 of file render_opengl.cc.
References addAlphaOverFloat(), and mul().
Referenced by addAlphaOverFloat().
Collect the frame numbers for which selected objects have keys in the animation data. The frames ares stored in OGLRender.render_frames.
Note that this follows all pointers to ID blocks, only filtering on ID type, so it will pick up keys from pointers in custom properties as well.
Definition at line 673 of file render_opengl.cc.
References BKE_animdata_from_id(), BKE_library_foreach_ID_link(), BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, C, CTX_DATA_BEGIN, CTX_DATA_END, gather_frames_to_render_for_adt(), gather_frames_to_render_for_id(), IDWALK_RECURSE, PEFRA, PSFRA, OGLRender::render_frames, and RenderJobBase::scene.
Referenced by screen_opengl_render_init().
Definition at line 523 of file render_opengl.cc.
References AnimData::action, BKE_fcurve_bezt_binarysearch_index(), BLI_assert, BLI_BITMAP_ENABLE, blender::animrig::legacy::fcurves_for_assigned_action(), PEFRA, PSFRA, OGLRender::render_frames, round_fl_to_int(), RenderJobBase::scene, and BezTriple::vec.
Referenced by gather_frames_to_render(), and gather_frames_to_render_for_id().
|
static |
Definition at line 560 of file render_opengl.cc.
References BLI_BITMAP_ENABLE, bGPdata::layers, LISTBASE_FOREACH, PEFRA, PSFRA, OGLRender::render_frames, and RenderJobBase::scene.
Referenced by gather_frames_to_render_for_id().
|
static |
Definition at line 581 of file render_opengl.cc.
References BKE_animdata_from_id(), LibraryIDLinkCallbackData::cb_flag, gather_frames_to_render_for_adt(), gather_frames_to_render_for_grease_pencil(), GS, ID_AC, ID_AR, ID_BR, ID_CA, ID_CF, ID_CU_LEGACY, ID_CV, ID_GD_LEGACY, ID_GP, ID_GR, ID_IM, ID_KE, ID_LA, ID_LI, ID_LP, ID_LS, ID_LT, ID_MA, ID_MB, ID_MC, ID_ME, ID_MSK, ID_NT, ID_OB, ID_PA, ID_PAL, ID_PC, LibraryIDLinkCallbackData::id_pointer, ID_PT, ID_SCE, ID_SCR, ID_SO, ID_SPK, ID_TE, ID_TXT, ID_VF, ID_VO, ID_WM, ID_WO, ID_WS, IDWALK_CB_LOOPBACK, IDWALK_RET_NOP, IDWALK_RET_STOP_RECURSION, ID::name, LibraryIDLinkCallbackData::self_id, and LibraryIDLinkCallbackData::user_data.
Referenced by gather_frames_to_render().
|
static |
Definition at line 1303 of file render_opengl.cc.
References screen_opengl_render_end().
Referenced by screen_opengl_render_invoke().
|
static |
Definition at line 1269 of file render_opengl.cc.
References RenderData::cfra, wmJobWorkerStatus::do_update, float, G, PEFRA, OGLRender::pool_ok, wmJobWorkerStatus::progress, PSFRA, Scene::r, RenderJobBase::scene, screen_opengl_render_anim_step(), wmJobWorkerStatus::stop, OGLRender::wm_job, WM_job_main_thread_lock_acquire(), and WM_job_main_thread_lock_release().
Referenced by screen_opengl_render_invoke().
| void RENDER_OT_opengl | ( | wmOperatorType * | ot | ) |
Definition at line 1406 of file render_opengl.cc.
References ED_operator_screenactive(), ot, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_property_flag(), screen_opengl_render_cancel(), screen_opengl_render_exec(), screen_opengl_render_get_description(), screen_opengl_render_invoke(), and screen_opengl_render_modal().
Referenced by ED_operatortypes_render().
|
static |
Definition at line 1117 of file render_opengl.cc.
References BLI_task_pool_push(), lock, MAX_SCHEDULED_FRAMES, MEM_callocN(), OGLRender::num_scheduled_frames, OGLRender::pool_ok, RE_FreeRenderResult(), WriteTaskData::rr, RenderJobBase::scene, OGLRender::task_condition, OGLRender::task_mutex, OGLRender::task_pool, WriteTaskData::tmp_scene, and write_result_func().
Referenced by screen_opengl_render_anim_step().
|
static |
Definition at line 156 of file render_opengl.cc.
References View3D::camera, RegionView3D::persp, Scene::r, R_MULTIVIEW, OGLRender::rv3d, RV3D_CAMOB, RenderData::scemode, RenderJobBase::scene, and OGLRender::v3d.
Referenced by screen_opengl_views_setup().
|
static |
Definition at line 960 of file render_opengl.cc.
References Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_image_format_free(), BKE_image_format_init_for_write(), BKE_imtype_is_movie(), BKE_scene_multiview_num_videos_get(), BKE_scene_multiview_videos_dimensions_get(), BKE_scene_multiview_view_id_suffix_get(), RenderData::cfra, OGLRender::cfrao, wmOperator::customdata, DEG_get_evaluated_scene(), OGLRender::depsgraph, G, i, ImageFormatData::imtype, MOV_write_begin(), OGLRender::movie_writers, OGLRender::nfra, PRVRANGEON, PSFRA, Scene::r, OGLRender::reports, wmOperator::reports, Vector< T, InlineBufferCapacity, Allocator >::reserve(), RenderJobBase::scene, screen_opengl_render_end(), OGLRender::sizex, OGLRender::sizey, and OGLRender::totvideos.
Referenced by screen_opengl_render_exec(), and screen_opengl_render_invoke().
|
static |
Definition at line 1138 of file render_opengl.cc.
References BKE_add_template_variables_for_render_path(), BKE_add_template_variables_general(), BKE_image_path_from_imformat(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BKE_report_path_template_errors(), BKE_reportf(), BKE_scene_camera_switch_update(), BKE_scene_graph_update_for_newframe(), BLI_BITMAP_TEST_BOOL, BLI_exists(), OGLRender::bmain, Scene::camera, View3D::camera, RenderData::cfra, depsgraph, OGLRender::depsgraph, FILE_MAX, RenderData::frame_step, Scene::id, RenderData::im_format, ImageFormatData::imtype, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), lock, RenderData::mode, OGLRender::nfra, PEFRA, RegionView3D::persp, RenderData::pic, PSFRA, Scene::r, R_EXTENSION, R_NO_OVERWRITE, OGLRender::re, RE_AcquireResultRead(), RE_DuplicateRenderResult(), RE_ReleaseResult(), OGLRender::render_frames, OGLRender::reports, OGLRender::reports_mutex, RPT_ERROR, RPT_INFO, OGLRender::rv3d, RV3D_CAMOB, RenderData::scemode, RenderJobBase::scene, View3D::scenelock, schedule_write_result(), screen_opengl_render_apply(), OGLRender::v3d, OGLRender::win, WM_cursor_time(), and OGLRender::wm_job.
Referenced by opengl_render_startjob(), and screen_opengl_render_exec().
|
static |
Definition at line 466 of file render_opengl.cc.
References BKE_image_acquire_ibuf(), BKE_image_partial_update_mark_full_update(), BKE_image_release_ibuf(), BLI_assert, OGLRender::bmain, RenderData::cfra, SpaceSeq::chanshown, OGLRender::depsgraph, ListBase::first, IB_DISPLAY_BUFFER_INVALID, OGLRender::ibufs_arr, OGLRender::ima, OGLRender::is_sequencer, OGLRender::iuser, lock, RenderView::name, RenderView::next, OGLRender::ofs, Scene::r, OGLRender::re, RE_AcquireResultRead(), RE_ReleaseResult(), RE_SetActiveRenderView(), blender::seq::render_give_ibuf(), blender::seq::render_new_render_data(), RenderJobBase::scene, screen_opengl_render_doit(), screen_opengl_render_write(), OGLRender::seq_data, SEQ_RENDER_SIZE_SCENE, OGLRender::sizex, OGLRender::sizey, OGLRender::sseq, ImBuf::userflags, OGLRender::view_id, OGLRender::viewport, RenderResult::views, OGLRender::views_len, and OGLRender::write_still.
Referenced by screen_opengl_render_anim_step(), screen_opengl_render_exec(), and screen_opengl_render_modal().
|
static |
Definition at line 946 of file render_opengl.cc.
References C, CTX_wm_manager(), wmOperator::customdata, OGLRender::is_animation, RenderJobBase::scene, screen_opengl_render_end(), WM_JOB_TYPE_RENDER, and WM_jobs_kill_type().
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 261 of file render_opengl.cc.
References RenderData::alphamode, BKE_camera_multiview_render(), BKE_image_stamp_buf(), BKE_scene_graph_evaluated_ensure(), blend_color_mix_byte(), BLI_assert, OGLRender::bmain, ImBuf::byte_buffer, Scene::camera, View3D::camera, RenderData::cfra, CLOG_ERROR, ImBufByteBuffer::data, ImBufFloatBuffer::data, depsgraph, OGLRender::depsgraph, DRW_gpu_context_disable(), DRW_gpu_context_enable(), ED_annotation_draw_ex(), ED_view3d_draw_offscreen_imbuf(), ED_view3d_draw_offscreen_imbuf_simple(), SpaceSeq::flag, ImBuf::float_buffer, G, G_FLAG_RENDER_VIEWPORT, SpaceSeq::gpd, GPU_backend_get_type(), GPU_BACKEND_METAL, GPU_clear_color(), GPU_clear_depth(), GPU_DATA_UBYTE, GPU_flush(), GPU_matrix_reset(), GPU_matrix_translate_2f(), GPU_offscreen_bind(), GPU_offscreen_read_color(), GPU_offscreen_unbind(), GPU_render_step(), i, IB_byte_data, IB_float_data, OGLRender::ibufs_arr, IMB_allocImBuf(), IMB_byte_from_float(), IMB_dupImBuf(), IMB_free_float_pixels(), IMB_freeImBuf(), OGLRender::is_sequencer, LOG, MEM_freeN(), MEM_mallocN(), OB_SOLID, OGLRender::ofs, RegionView3D::persp, Scene::r, R_ADDSKY, R_ALPHAPREMUL, R_STAMP_ALL, R_STAMP_DRAW, OGLRender::re, RE_GetActiveRenderView(), RE_render_result_rect_from_ibuf(), OGLRender::region, OGLRender::rv3d, RV3D_CAMOB, RenderJobBase::scene, OGLRender::seq_data, SEQ_PREVIEW_SHOW_GPENCIL, View3D::shading, OGLRender::sizex, OGLRender::sizey, SPACE_SEQ, OGLRender::sseq, RenderData::stamp, View3DShading::type, OGLRender::v3d, V3D_OFSDRAW_SHOW_ANNOTATION, OGLRender::view_id, OGLRender::viewport, wmOrtho2(), ImBuf::x, RenderData::xsch, ImBuf::y, and RenderData::ysch.
Referenced by screen_opengl_render_apply().
|
static |
Definition at line 878 of file render_opengl.cc.
References BKE_imtype_is_movie(), BKE_scene_graph_update_for_newframe(), BLI_task_pool_free(), BLI_task_pool_work_and_wait(), RenderData::cfra, OGLRender::cfrao, Vector< T, InlineBufferCapacity, Allocator >::clear_and_shrink(), Scene::customdata_mask_modal, depsgraph, OGLRender::depsgraph, DRW_gpu_context_disable(), DRW_gpu_context_enable(), OGLRender::ended, G, GPU_offscreen_free(), GPU_viewport_free(), OGLRender::ibufs_arr, RenderData::im_format, ImageFormatData::imtype, Vector< T, InlineBufferCapacity, Allocator >::is_empty(), lock, MEM_SAFE_FREE, MOV_write_end(), OGLRender::movie_writers, NC_SCENE, ND_RENDER_RESULT, OGLRender::num_scheduled_frames, OGLRender::ofs, Scene::r, OGLRender::render_frames, RenderJobBase::scene, OGLRender::seq_data, OGLRender::task_condition, OGLRender::task_mutex, OGLRender::task_pool, OGLRender::viewport, OGLRender::win, WM_cursor_modal_restore(), OGLRender::wm_job, and WM_main_add_notifier().
Referenced by opengl_render_freejob(), screen_opengl_render_anim_init(), screen_opengl_render_cancel(), screen_opengl_render_exec(), and screen_opengl_render_modal().
|
static |
Definition at line 1357 of file render_opengl.cc.
References C, wmOperator::customdata, OGLRender::is_animation, OPERATOR_CANCELLED, OPERATOR_FINISHED, ret, screen_opengl_render_anim_init(), screen_opengl_render_anim_step(), screen_opengl_render_apply(), screen_opengl_render_end(), and screen_opengl_render_init().
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 1389 of file render_opengl.cc.
References ptr, RNA_boolean_get(), and TIP_.
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 700 of file render_opengl.cc.
References BKE_image_backup_render(), BKE_image_ensure_viewer(), BKE_image_signal(), BKE_imtype_is_movie(), BKE_render_resolution(), BKE_report(), BKE_reportf(), BKE_scene_multiview_num_views_get(), BLI_task_pool_create(), BLI_task_pool_create_background_serial(), OGLRender::bmain, C, Scene::camera, RenderData::cfra, OGLRender::cfrao, OGLRender::color_depth, CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), CTX_data_scene(), CTX_data_sequencer_scene(), CTX_data_view_layer(), CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_region_set(), CTX_wm_screen(), CTX_wm_space_seq(), CTX_wm_view3d(), CTX_wm_window(), CTX_wm_workspace(), RenderJobBase::current_scene, wmOperator::customdata, Scene::customdata_mask, Scene::customdata_mask_modal, CustomData_MeshMasks_update(), OGLRender::depsgraph, ImageFormatData::depth, DRW_gpu_context_disable(), DRW_gpu_context_enable(), ED_view3d_context_activate(), ED_view3d_context_user_region(), ED_view3d_datamask(), G, gather_frames_to_render(), GPU_offscreen_create(), GPU_TEXTURE_USAGE_HOST_READ, GPU_TEXTURE_USAGE_SHADER_READ, GPU_viewport_create(), OGLRender::ibufs_arr, RenderData::im_format, OGLRender::ima, IMA_SIGNAL_FREE, IMA_TYPE_R_RESULT, ImageFormatData::imtype, OGLRender::is_animation, OGLRender::is_sequencer, OGLRender::iuser, MEM_callocN(), OGLRender::ofs, wmOperator::ptr, Scene::r, R_IMF_CHAN_DEPTH_32, OGLRender::re, RE_InitState(), RE_NewSceneRender(), OGLRender::region, ARegion::regiondata, wmOperator::reports, RNA_boolean_get(), RNA_boolean_set(), RPT_ERROR, OGLRender::rv3d, ImageUser::scene, RenderJobBase::scene, screen_opengl_views_setup(), OGLRender::seq_data, OGLRender::sizex, OGLRender::sizey, OGLRender::sseq, OGLRender::task_pool, TASK_PRIORITY_HIGH, OGLRender::v3d, OGLRender::view_layer, Scene::view_layers, OGLRender::viewport, OGLRender::views_len, OGLRender::win, OGLRender::wm, WM_JOB_TYPE_RENDER, WM_jobs_kill_all_except(), WM_jobs_test(), OGLRender::workspace, and OGLRender::write_still.
Referenced by screen_opengl_render_exec(), and screen_opengl_render_invoke().
|
static |
Definition at line 1310 of file render_opengl.cc.
References C, CTX_wm_manager(), CTX_wm_window(), wmOperator::customdata, G, NC_SCENE, ND_RENDER_RESULT, opengl_render_freejob(), opengl_render_startjob(), OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, wmOperator::ptr, render_view_open(), wmOperator::reports, RNA_boolean_get(), RenderJobBase::scene, screen_opengl_render_anim_init(), screen_opengl_render_init(), OGLRender::win, WM_event_add_modal_handler(), OGLRender::wm_job, WM_JOB_EXCL_RENDER, WM_JOB_PRIORITY, WM_JOB_PROGRESS, WM_JOB_TYPE_RENDER, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), WM_jobs_timer(), and wmEvent::xy.
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 1243 of file render_opengl.cc.
References C, CTX_wm_manager(), wmOperator::customdata, EVT_ESCKEY, OGLRender::is_animation, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, RenderJobBase::scene, screen_opengl_render_apply(), screen_opengl_render_end(), wmEvent::type, WM_JOB_TYPE_RENDER, and WM_jobs_test().
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 407 of file render_opengl.cc.
References BKE_add_template_variables_for_render_path(), BKE_add_template_variables_general(), BKE_image_path_from_imformat(), BKE_image_render_write(), BKE_main_blendfile_path(), BKE_render_result_stamp_info(), BKE_report_path_template_errors(), OGLRender::bmain, Scene::camera, RenderData::cfra, CLOG_ERROR, CLOG_INFO_NOCHECK, FILE_MAX, Scene::id, RenderData::im_format, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), lock, LOG, RenderData::pic, Scene::r, R_EXTENSION, OGLRender::re, RE_AcquireResultRead(), RE_ReleaseResultImage(), OGLRender::reports, OGLRender::reports_mutex, RPT_ERROR, RenderData::scemode, and RenderJobBase::scene.
Referenced by screen_opengl_render_apply().
|
static |
Definition at line 170 of file render_opengl.cc.
References BKE_camera_multiview_render(), BKE_render_result_stamp_info(), BKE_scene_multiview_is_render_view_active(), BKE_scene_multiview_is_stereo3d(), BLI_addtail(), BLI_findstring(), BLI_remlink(), Scene::camera, View3D::camera, ListBase::first, ImageUser::flag, RenderView::ibuf, IMA_SHOW_STEREO, IMB_freeImBuf(), OGLRender::iuser, ListBase::last, LISTBASE_FOREACH, MEM_callocN(), MEM_freeN(), name, RenderView::name, SceneRenderView::name, RenderView::next, offsetof, RenderView::prev, Scene::r, OGLRender::re, RE_AcquireResultWrite(), RE_ReleaseResult(), RE_SetOverrideCamera(), RenderJobBase::scene, screen_opengl_is_multiview(), STRNCPY_UTF8, OGLRender::v3d, V3D_CAMERA_SCENE, RenderData::views, and RenderResult::views.
Referenced by screen_opengl_render_init().
|
static |
Definition at line 1016 of file render_opengl.cc.
References BKE_add_template_variables_for_render_path(), BKE_add_template_variables_general(), BKE_image_path_from_imformat(), BKE_image_render_write(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BKE_render_result_stamp_info(), BKE_report(), BKE_report_path_template_errors(), BKE_reportf(), BKE_reports_free(), BKE_reports_init(), BLI_task_pool_user_data(), OGLRender::bmain, Scene::camera, RenderData::cfra, Vector< T, InlineBufferCapacity, Allocator >::data(), FILE_MAX, ListBase::first, ReportList::flag, Scene::id, RenderData::im_format, ImageFormatData::imtype, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), ReportList::list, lock, OGLRender::movie_writers, Report::next, OGLRender::num_scheduled_frames, RenderData::pic, OGLRender::pool_ok, PRVRANGEON, Scene::r, R_EXTENSION, RE_FreeRenderResult(), RE_WriteRenderViewsMovie(), OGLRender::reports, OGLRender::reports_mutex, RPT_ERROR, RPT_PRINT, WriteTaskData::rr, RenderData::scemode, OGLRender::task_condition, OGLRender::task_mutex, WriteTaskData::tmp_scene, and OGLRender::totvideos.
Referenced by write_result_func().
|
static |
Definition at line 1108 of file render_opengl.cc.
References blender::threading::isolate_task(), and write_result().
Referenced by schedule_write_result().
|
static |
Definition at line 87 of file render_opengl.cc.