|
Blender V4.5
|
#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.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 "render_intern.hh"Go to the source code of this file.
Classes | |
| struct | OGLRender |
| struct | WriteTaskData |
Macros | |
| #define | MAX_SCHEDULED_FRAMES 8 |
| #define MAX_SCHEDULED_FRAMES 8 |
Definition at line 87 of file render_opengl.cc.
Referenced by schedule_write_result().
|
static |
Definition at line 455 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 676 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 525 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 562 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 583 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_IP, 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 1292 of file render_opengl.cc.
References screen_opengl_render_end().
Referenced by screen_opengl_render_invoke().
|
static |
Definition at line 1258 of file render_opengl.cc.
References RenderData::cfra, G, PEFRA, OGLRender::pool_ok, PSFRA, Scene::r, RenderJobBase::scene, screen_opengl_render_anim_step(), 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 1395 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 1108 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 152 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 959 of file render_opengl.cc.
References Vector< T, InlineBufferCapacity, Allocator >::append(), 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, RenderData::im_format, 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 1129 of file render_opengl.cc.
References BKE_build_template_variables_for_render_path(), 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, 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 468 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 945 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 257 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, 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, 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(), RenderResult::rectx, RenderResult::recty, 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 877 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 1346 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 1378 of file render_opengl.cc.
References ptr, RNA_boolean_get(), and TIP_.
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 703 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_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_RGBA16F, 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 1299 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 1232 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 411 of file render_opengl.cc.
References BKE_build_template_variables_for_render_path(), 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, FILE_MAX, RenderData::im_format, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), lock, RenderData::pic, printf, 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 166 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(), 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(), OGLRender::v3d, V3D_CAMERA_SCENE, RenderData::views, and RenderResult::views.
Referenced by screen_opengl_render_init().
|
static |
Definition at line 1009 of file render_opengl.cc.
References BKE_build_template_variables_for_render_path(), 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, ReportList::flag, RenderData::im_format, ImageFormatData::imtype, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), 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, 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 1099 of file render_opengl.cc.
References blender::threading::isolate_task(), and write_result().
Referenced by schedule_write_result().