|
Blender V4.3
|
#include <cmath>#include <cstddef>#include <cstring>#include "MEM_guardedalloc.h"#include "BLI_bitmap.h"#include "BLI_blenlib.h"#include "BLI_math_color_blend.h"#include "BLI_task.h"#include "BLI_task.hh"#include "BLI_threads.h"#include "BLI_utildefines.h"#include "DNA_action_types.h"#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 "BKE_writemovie.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 "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_framebuffer.hh"#include "GPU_matrix.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 437 of file render_opengl.cc.
References mul().
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 658 of file render_opengl.cc.
References BKE_animdata_from_id(), BKE_library_foreach_ID_link(), BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, 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 OGLRender::scene.
Referenced by screen_opengl_render_init().
|
static |
Definition at line 507 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(), OGLRender::scene, and BezTriple::vec.
Referenced by gather_frames_to_render(), and gather_frames_to_render_for_id().
|
static |
Definition at line 544 of file render_opengl.cc.
References BLI_BITMAP_ENABLE, bGPdata::layers, LISTBASE_FOREACH, PEFRA, PSFRA, OGLRender::render_frames, and OGLRender::scene.
Referenced by gather_frames_to_render_for_id().
|
static |
Definition at line 565 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, LibraryIDLinkCallbackData::self_id, and LibraryIDLinkCallbackData::user_data.
Referenced by gather_frames_to_render().
| void RENDER_OT_opengl | ( | wmOperatorType * | ot | ) |
Definition at line 1339 of file render_opengl.cc.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_screenactive(), wmOperatorType::exec, wmOperatorType::get_description, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, ot, wmOperatorType::poll, 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(), screen_opengl_render_modal(), and wmOperatorType::srna.
Referenced by ED_operatortypes_render().
|
static |
Definition at line 1109 of file render_opengl.cc.
References BLI_condition_wait(), BLI_mutex_lock(), BLI_mutex_unlock(), BLI_task_pool_push(), MAX_SCHEDULED_FRAMES, OGLRender::num_scheduled_frames, OGLRender::pool_ok, RE_FreeRenderResult(), WriteTaskData::rr, OGLRender::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 157 of file render_opengl.cc.
References View3D::camera, RegionView3D::persp, Scene::r, R_MULTIVIEW, OGLRender::rv3d, RV3D_CAMOB, RenderData::scemode, OGLRender::scene, and OGLRender::v3d.
Referenced by screen_opengl_views_setup().
|
static |
Definition at line 959 of file render_opengl.cc.
References BKE_imtype_is_movie(), BKE_movie_handle_get(), BKE_report(), BKE_scene_multiview_num_videos_get(), BKE_scene_multiview_videos_dimensions_get(), BKE_scene_multiview_view_id_suffix_get(), OGLRender::cfrao, bMovieHandle::context_create, wmOperator::customdata, DEG_get_evaluated_scene(), OGLRender::depsgraph, G, MEM_mallocN, OGLRender::mh, OGLRender::movie_ctx_arr, OGLRender::nfra, PRVRANGEON, PSFRA, Scene::r, OGLRender::reports, wmOperator::reports, RPT_ERROR, OGLRender::scene, scene, screen_opengl_render_end(), OGLRender::sizex, OGLRender::sizey, bMovieHandle::start_movie, 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_image_path_from_imformat(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BKE_reportf(), BKE_scene_camera_switch_update(), BKE_scene_graph_update_for_newframe(), BLI_BITMAP_TEST_BOOL, BLI_exists(), BLI_spin_lock(), BLI_spin_unlock(), OGLRender::bmain, View3D::camera, wmOperator::customdata, depsgraph, OGLRender::depsgraph, FILE_MAX, is_movie(), OGLRender::nfra, PEFRA, RegionView3D::persp, PSFRA, R_EXTENSION, R_NO_OVERWRITE, OGLRender::re, RE_AcquireResultRead(), RE_DuplicateRenderResult(), RE_ReleaseResult(), OGLRender::render_frames, wmOperator::reports, OGLRender::reports_lock, RPT_INFO, OGLRender::rv3d, RV3D_CAMOB, OGLRender::scene, View3D::scenelock, schedule_write_result(), screen_opengl_render_apply(), screen_opengl_render_end(), OGLRender::v3d, OGLRender::win, and WM_cursor_time().
Referenced by screen_opengl_render_exec(), and screen_opengl_render_modal().
Definition at line 450 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, 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, OGLRender::re, RE_AcquireResultRead(), RE_ReleaseResult(), RE_SetActiveRenderView(), OGLRender::scene, screen_opengl_render_doit(), screen_opengl_render_write(), OGLRender::seq_data, SEQ_render_give_ibuf(), SEQ_render_new_render_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 953 of file render_opengl.cc.
References wmOperator::customdata, and screen_opengl_render_end().
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 262 of file render_opengl.cc.
References BKE_camera_multiview_render(), BKE_image_stamp_buf(), blend_color_mix_byte(), BLI_assert, ImBuf::byte_buffer, View3D::camera, CTX_data_ensure_evaluated_depsgraph(), ImBufByteBuffer::data, ImBufFloatBuffer::data, 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_clear_color(), GPU_clear_depth(), GPU_DATA_UBYTE, GPU_matrix_reset(), GPU_matrix_translate_2f(), GPU_offscreen_bind(), GPU_offscreen_read_color(), GPU_offscreen_unbind(), IB_rect, IB_rectfloat, OGLRender::ibufs_arr, IMB_allocImBuf(), IMB_dupImBuf(), IMB_freeImBuf(), imb_freerectfloatImBuf(), IMB_rect_from_float(), OGLRender::is_sequencer, MEM_freeN(), MEM_mallocN, OB_SOLID, OGLRender::ofs, RegionView3D::persp, 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, OGLRender::scene, OGLRender::seq_data, SEQ_PREVIEW_SHOW_GPENCIL, View3D::shading, OGLRender::sizex, OGLRender::sizey, SPACE_SEQ, OGLRender::sseq, View3DShading::type, OGLRender::v3d, V3D_OFSDRAW_SHOW_ANNOTATION, OGLRender::view_id, OGLRender::viewport, wmOrtho2(), ImBuf::x, and ImBuf::y.
Referenced by screen_opengl_render_apply().
Definition at line 873 of file render_opengl.cc.
References BKE_imtype_is_movie(), BKE_scene_graph_update_for_newframe(), BLI_condition_end(), BLI_condition_wait(), BLI_mutex_end(), BLI_mutex_lock(), BLI_mutex_unlock(), BLI_spin_end(), BLI_task_pool_free(), BLI_task_pool_work_and_wait(), BLI_time_now_seconds(), OGLRender::cfrao, bMovieHandle::context_free, CTX_wm_area_set(), CTX_wm_region_set(), Scene::customdata_mask_modal, depsgraph, OGLRender::depsgraph, DRW_gpu_context_disable(), DRW_gpu_context_enable(), bMovieHandle::end_movie, G, GPU_offscreen_free(), GPU_viewport_free(), OGLRender::ibufs_arr, OGLRender::is_animation, OGLRender::is_sequencer, MEM_freeN(), MEM_SAFE_FREE, OGLRender::mh, OGLRender::movie_ctx_arr, NC_SCENE, ND_RENDER_RESULT, OGLRender::num_scheduled_frames, OGLRender::ofs, OGLRender::prevar, OGLRender::prevsa, printf, OGLRender::render_frames, OGLRender::reports_lock, OGLRender::scene, OGLRender::seq_data, OGLRender::task_condition, OGLRender::task_mutex, OGLRender::task_pool, OGLRender::timer, OGLRender::totvideos, OGLRender::viewport, OGLRender::win, OGLRender::wm, WM_cursor_modal_restore(), WM_event_add_notifier(), and WM_event_timer_remove().
Referenced by screen_opengl_render_anim_init(), screen_opengl_render_anim_step(), screen_opengl_render_cancel(), screen_opengl_render_exec(), and screen_opengl_render_modal().
|
static |
Definition at line 1289 of file render_opengl.cc.
References CTX_data_scene(), wmOperator::customdata, NC_SCENE, ND_RENDER_RESULT, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, ret, RNA_boolean_get(), screen_opengl_render_anim_init(), screen_opengl_render_anim_step(), screen_opengl_render_apply(), screen_opengl_render_end(), screen_opengl_render_init(), and WM_event_add_notifier().
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 1322 of file render_opengl.cc.
References ptr, RNA_boolean_get(), and TIP_.
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 685 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_condition_init(), BLI_mutex_init(), BLI_spin_init(), BLI_task_pool_create(), BLI_task_pool_create_background_serial(), BLI_time_now_seconds(), OGLRender::bmain, 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_manager(), CTX_wm_region(), CTX_wm_screen(), CTX_wm_space_seq(), CTX_wm_view3d(), CTX_wm_window(), CTX_wm_workspace(), wmOperator::customdata, Scene::customdata_mask, Scene::customdata_mask_modal, CustomData_MeshMasks_update(), OGLRender::depsgraph, 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, OGLRender::ima, IMA_SIGNAL_FREE, IMA_TYPE_R_RESULT, OGLRender::is_animation, OGLRender::is_sequencer, OGLRender::iuser, MEM_callocN, OGLRender::mh, OGLRender::movie_ctx_arr, OGLRender::num_scheduled_frames, OGLRender::ofs, OGLRender::pool_ok, OGLRender::prevar, OGLRender::prevsa, wmOperator::ptr, Render::r, R_IMF_CHAN_DEPTH_32, OGLRender::re, RE_InitState(), RE_NewSceneRender(), OGLRender::region, ARegion::regiondata, wmOperator::reports, OGLRender::reports_lock, RNA_boolean_get(), RNA_boolean_set(), RPT_ERROR, OGLRender::rv3d, ImageUser::scene, OGLRender::scene, scene, screen_opengl_views_setup(), OGLRender::seq_data, OGLRender::sizex, OGLRender::sizey, OGLRender::sseq, OGLRender::task_condition, OGLRender::task_mutex, OGLRender::task_pool, TASK_PRIORITY_HIGH, OGLRender::totvideos, OGLRender::v3d, OGLRender::view_layer, 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 1261 of file render_opengl.cc.
References CTX_wm_window(), wmOperator::customdata, OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, wmOperator::ptr, render_view_open(), wmOperator::reports, RNA_boolean_get(), screen_opengl_render_anim_init(), screen_opengl_render_init(), TIMER, OGLRender::timer, OGLRender::win, OGLRender::wm, WM_event_add_modal_handler(), WM_event_timer_add(), and wmEvent::xy.
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 1219 of file render_opengl.cc.
References ATTR_FALLTHROUGH, wmEvent::customdata, wmOperator::customdata, EVT_ESCKEY, NC_SCENE, ND_RENDER_RESULT, OPERATOR_FINISHED, OPERATOR_RUNNING_MODAL, OGLRender::pool_ok, wmOperator::ptr, ret, RNA_boolean_get(), OGLRender::scene, screen_opengl_render_anim_step(), screen_opengl_render_apply(), screen_opengl_render_end(), TIMER, OGLRender::timer, wmEvent::type, and WM_event_add_notifier().
Referenced by RENDER_OT_opengl().
|
static |
Definition at line 405 of file render_opengl.cc.
References BKE_image_path_from_imformat(), BKE_image_render_write(), BKE_main_blendfile_path(), BKE_render_result_stamp_info(), OGLRender::bmain, FILE_MAX, printf, R_EXTENSION, OGLRender::re, RE_AcquireResultRead(), RE_ReleaseResultImage(), OGLRender::reports, and OGLRender::scene.
Referenced by screen_opengl_render_apply().
|
static |
Definition at line 171 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(), camera, Scene::camera, View3D::camera, ListBase::first, ImageUser::flag, RenderView::ibuf, IMB_freeImBuf(), OGLRender::iuser, ListBase::last, LISTBASE_FOREACH, MEM_freeN(), RenderView::name, SceneRenderView::name, RenderView::next, offsetof, RenderView::prev, Scene::r, OGLRender::re, RE_AcquireResultWrite(), RE_ReleaseResult(), RE_SetOverrideCamera(), OGLRender::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 1021 of file render_opengl.cc.
References 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_reportf(), BKE_reports_free(), BKE_reports_init(), BLI_condition_notify_all(), BLI_mutex_lock(), BLI_mutex_unlock(), BLI_spin_lock(), BLI_spin_unlock(), BLI_task_pool_user_data(), OGLRender::bmain, FILE_MAX, ListBase::first, ReportList::flag, is_movie(), ReportList::list, OGLRender::mh, OGLRender::movie_ctx_arr, OGLRender::num_scheduled_frames, OGLRender::pool_ok, PRVRANGEON, R_EXTENSION, RE_FreeRenderResult(), RE_WriteRenderViewsMovie(), OGLRender::reports, OGLRender::reports_lock, RPT_ERROR, RPT_PRINT, WriteTaskData::rr, 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().