|
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 456 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 677 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 526 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 563 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 584 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 1293 of file render_opengl.cc.
References screen_opengl_render_end().
Referenced by screen_opengl_render_invoke().
|
static |
Definition at line 1259 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 1396 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 1109 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 960 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 1130 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 469 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 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 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 1347 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 1379 of file render_opengl.cc.
References ptr, RNA_boolean_get(), and TIP_.
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 704 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 1300 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 1233 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 412 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 1010 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 1100 of file render_opengl.cc.
References blender::threading::isolate_task(), and write_result().
Referenced by schedule_write_result().