|
Blender V5.0
|
#include <algorithm>#include <atomic>#include <cmath>#include <cstdlib>#include <cstring>#include <list>#include <unistd.h>#include "MEM_guardedalloc.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_path_utils.hh"#include "BLI_rect.h"#include "BLI_string.h"#include "BLI_string_utf8.h"#include "BLI_utildefines.h"#include "BLT_translation.hh"#include "BLO_readfile.hh"#include "DNA_camera_types.h"#include "DNA_collection_types.h"#include "DNA_light_types.h"#include "DNA_material_types.h"#include "DNA_mesh_types.h"#include "DNA_node_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "DNA_space_types.h"#include "DNA_world_types.h"#include "BKE_animsys.h"#include "BKE_armature.hh"#include "BKE_brush.hh"#include "BKE_collection.hh"#include "BKE_colortools.hh"#include "BKE_context.hh"#include "BKE_global.hh"#include "BKE_icons.h"#include "BKE_idprop.hh"#include "BKE_image.hh"#include "BKE_layer.hh"#include "BKE_lib_id.hh"#include "BKE_library.hh"#include "BKE_light.h"#include "BKE_main.hh"#include "BKE_material.hh"#include "BKE_node.hh"#include "BKE_object.hh"#include "BKE_pose_backup.h"#include "BKE_preview_image.hh"#include "BKE_report.hh"#include "BKE_scene.hh"#include "BKE_screen.hh"#include "BKE_texture.h"#include "BKE_world.h"#include "BLI_math_vector.h"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_build.hh"#include "DEG_depsgraph_query.hh"#include "IMB_imbuf.hh"#include "IMB_imbuf_types.hh"#include "IMB_thumbs.hh"#include "BIF_glutil.hh"#include "RE_engine.h"#include "RE_pipeline.h"#include "RE_texture.h"#include "WM_api.hh"#include "WM_types.hh"#include "ED_datafiles.h"#include "ED_render.hh"#include "ED_screen.hh"#include "ED_view3d.hh"#include "ED_view3d_offscreen.hh"#include "UI_interface_icons.hh"#include "ANIM_action.hh"#include "ANIM_pose.hh"#include "BLI_threads.h"Go to the source code of this file.
Classes | |
| struct | ShaderPreview |
| struct | IconPreviewSize |
| struct | IconPreview |
| struct | ObjectPreviewData |
| class | PreviewLoadJob |
| struct | PreviewRestartQueueEntry |
Functions | |
Object Preview | |
| static bool | object_preview_is_type_supported (const Object *ob) |
| static Object * | object_preview_camera_create (Main *preview_main, Scene *scene, ViewLayer *view_layer, Object *preview_object) |
| static Scene * | object_preview_scene_create (const ObjectPreviewData *preview_data, Depsgraph **r_depsgraph) |
| static void | object_preview_render (IconPreview *preview, IconPreviewSize *preview_sized) |
Action Preview | |
| static PoseBackup * | action_preview_render_prepare (IconPreview *preview) |
| static void | action_preview_render_cleanup (IconPreview *preview, PoseBackup *pose_backup) |
| static void | action_preview_render (IconPreview *preview, IconPreviewSize *preview_sized) |
Scene Preview | |
| static bool | scene_preview_is_supported (const Scene *scene) |
| static void | scene_preview_render (IconPreview *preview, IconPreviewSize *preview_sized, ReportList *reports) |
New Shader Preview System | |
| static void | shader_preview_update (void *spv, RenderResult *, rcti *) |
| static bool | shader_preview_break (void *spv) |
| static void | shader_preview_updatejob (void *) |
| static void | shader_preview_texture (ShaderPreview *sp, Tex *tex, Scene *sce, Render *re) |
| static void | shader_preview_render (ShaderPreview *sp, ID *id, int split, int first) |
| static void | shader_preview_startjob (void *customdata, bool *stop, bool *do_update) |
| static void | preview_id_copy_free (ID *id) |
| static void | shader_preview_free (void *customdata) |
Preview for Buttons | |
| static Main * | G_pr_main_grease_pencil = nullptr |
| static Main * | load_main_from_memory (const void *blend, int blend_size) |
| void | ED_preview_ensure_dbase (const bool with_gpencil) |
| bool | ED_check_engine_supports_preview (const Scene *scene) |
| static bool | preview_method_is_render (const ePreviewRenderMethod pr_method) |
| void | ED_preview_free_dbase () |
| static Scene * | preview_get_scene (Main *pr_main) |
| const char * | ED_preview_collection_name (const ePreviewType pr_type) |
| static bool | render_engine_supports_ray_visibility (const Scene *sce) |
| static void | switch_preview_collection_visibility (ViewLayer *view_layer, const ePreviewType pr_type) |
| static const char * | preview_floor_material_name (const Scene *scene, const ePreviewRenderMethod pr_method) |
| static void | switch_preview_floor_material (Main *pr_main, Mesh *mesh, const Scene *scene, const ePreviewRenderMethod pr_method) |
| static void | switch_preview_floor_visibility (Main *pr_main, const Scene *scene, ViewLayer *view_layer, const ePreviewRenderMethod pr_method) |
| void | ED_preview_set_visibility (Main *pr_main, Scene *scene, ViewLayer *view_layer, const ePreviewType pr_type, const ePreviewRenderMethod pr_method) |
| static World * | preview_get_localized_world (ShaderPreview *sp, World *world) |
| World * | ED_preview_prepare_world_simple (Main *pr_main) |
| void | ED_preview_world_simple_set_rgb (World *world, const float color[4]) |
| static ID * | duplicate_ids (ID *id, const bool allow_failure) |
| static const char * | preview_world_name (const Scene *sce, const ID_Type id_type, const ePreviewRenderMethod pr_method) |
| static World * | preview_get_world (Main *pr_main, const Scene *sce, const ID_Type id_type, const ePreviewRenderMethod pr_method) |
| static void | preview_sync_exposure (World *dst, const World *src) |
| World * | ED_preview_prepare_world (Main *pr_main, const Scene *scene, const World *world, const ID_Type id_type, const ePreviewRenderMethod pr_method) |
| static Scene * | preview_prepare_scene (Main *bmain, Scene *scene, ID *id, int id_type, ShaderPreview *sp) |
| static bool | ed_preview_draw_rect (Scene *scene, const void *owner, int split, int first, const rcti *rect, rcti *newrect) |
| void | ED_preview_draw (const bContext *C, void *idp, void *parentp, void *slotp, uiPreview *ui_preview, rcti *rect) |
| void | ED_previews_tag_dirty_by_id (const Main &bmain, const ID &id) |
Icon Preview | |
| static ListBase | G_restart_previews_queue |
| static void | icon_copy_rect (const ImBuf *ibuf, uint w, uint h, uint *rect) |
| static void | set_alpha (char *cp, int sizex, int sizey, char alpha) |
| static void | icon_preview_startjob (void *customdata, bool *stop, bool *do_update) |
| static void | common_preview_startjob (void *customdata, wmJobWorkerStatus *worker_status) |
| static void | other_id_types_preview_render (IconPreview *ip, IconPreviewSize *cur_size, const ePreviewRenderMethod pr_method, wmJobWorkerStatus *worker_status) |
| static int | icon_previewimg_size_index_get (const IconPreviewSize *icon_size, const PreviewImage *preview_image) |
| static void | icon_preview_startjob_all_sizes (void *customdata, wmJobWorkerStatus *worker_status) |
| static void | icon_preview_add_size (IconPreview *ip, uint *rect, int sizex, int sizey) |
| static void | icon_preview_endjob (void *customdata) |
| static void | icon_preview_free (void *customdata) |
| bool | ED_preview_use_image_size (const PreviewImage *preview, eIconSizes size) |
| bool | ED_preview_id_is_supported (const ID *id, const char **r_disabled_hint) |
| void | ED_preview_icon_render (const bContext *C, Scene *scene, PreviewImage *prv_img, ID *id, eIconSizes icon_size) |
| void | ED_preview_icon_job (const bContext *C, PreviewImage *prv_img, ID *id, eIconSizes icon_size, const bool delay) |
| void | ED_preview_shader_job (const bContext *C, const void *owner, ID *id, ID *parent, MTex *slot, int sizex, int sizey, ePreviewRenderMethod method) |
| void | ED_preview_kill_jobs (wmWindowManager *wm, Main *) |
| void | ED_preview_kill_jobs_for_id (wmWindowManager *wm, const ID *id) |
| void | ED_preview_restart_queue_free () |
| void | ED_preview_restart_queue_add (ID *id, enum eIconSizes size) |
| void | ED_preview_restart_queue_work (const bContext *C) |
|
static |
Definition at line 1014 of file render_preview.cc.
References action_preview_render_cleanup(), action_preview_render_prepare(), BLI_assert, Scene::camera, DEG_get_evaluated_scene(), DEG_get_input_scene(), depsgraph, IconPreview::depsgraph, ED_view3d_draw_offscreen_imbuf_simple(), IB_byte_data, icon_copy_rect(), IconPreview::id, IMB_freeImBuf(), ID::name, OB_SOLID, printf, R_ADDSKY, IconPreviewSize::rect, IconPreview::scene, IconPreviewSize::sizex, IconPreviewSize::sizey, and V3D_OFSDRAW_NONE.
Referenced by icon_preview_startjob_all_sizes().
|
static |
Definition at line 1000 of file render_preview.cc.
References IconPreview::active_object, BKE_pose_backup_free(), BKE_pose_backup_restore(), DEG_id_tag_update(), Object::id, and ID_RECALC_GEOMETRY.
Referenced by action_preview_render().
|
static |
Definition at line 961 of file render_preview.cc.
References IconPreview::active_object, BKE_pose_backup_create_all_bones(), DEG_evaluate_on_refresh(), DEG_id_tag_update(), IconPreview::depsgraph, blender::animrig::get_best_pose_slot_for_id(), ActionSlot::handle, IconPreview::id, ID_RECALC_GEOMETRY, blender::animrig::pose_apply_action_all_bones(), RPT_WARNING, bAction::slot_array_num, WM_global_report(), WM_global_reportf(), and wrap().
Referenced by action_preview_render().
|
static |
Definition at line 1507 of file render_preview.cc.
References wmJobWorkerStatus::do_update, ELEM, icon_preview_startjob(), PR_ICON_DEFERRED, PR_ICON_RENDER, ShaderPreview::pr_method, shader_preview_startjob(), and wmJobWorkerStatus::stop.
Referenced by ED_preview_shader_job(), and other_id_types_preview_render().
Definition at line 408 of file render_preview.cc.
References BKE_id_copy_ex(), BKE_object_add_only_object(), BKE_previewimg_id_supports_jobs(), BLI_assert, BLI_assert_msg, GS, Object::id, ID_GR, ID_IM, ID_LA, ID_MA, ID_OB, ID_TE, ID_WO, Object::instance_collection, LIB_ID_COPY_LOCALIZE, LIB_ID_COPY_NO_ANIMDATA, LIB_ID_CREATE_LOCAL, OB_DUPLICOLLECTION, OB_EMPTY, and Object::transflag.
Referenced by ED_preview_icon_job(), ED_preview_icon_render(), and ED_preview_shader_job().
| bool ED_check_engine_supports_preview | ( | const Scene * | scene | ) |
Definition at line 212 of file render_preview.cc.
References RenderData::engine, RenderEngineType::flag, Scene::r, RE_engines_find(), and RE_USE_PREVIEW.
Referenced by ED_preview_shader_job(), blender::ed::space_node::ensure_nodetree_previews(), and icon_preview_startjob_all_sizes().
| const char * ED_preview_collection_name | ( | const ePreviewType | pr_type | ) |
Definition at line 243 of file render_preview.cc.
References BLI_assert_msg, MA_ATMOS, MA_CLOTH, MA_CUBE, MA_FLAT, MA_FLUID, MA_HAIR, MA_LAMP, MA_SHADERBALL, MA_SKY, MA_SPHERE, and MA_SPHERE_A.
Referenced by switch_preview_collection_visibility().
| void ED_preview_draw | ( | const bContext * | C, |
| void * | idp, | ||
| void * | parentp, | ||
| void * | slotp, | ||
| uiPreview * | ui_preview, | ||
| rcti * | rect ) |
Definition at line 737 of file render_preview.cc.
References abs, BLI_rcti_size_x(), BLI_rcti_size_y(), C, CTX_data_scene(), CTX_wm_area(), CTX_wm_manager(), CTX_wm_space_properties(), ed_preview_draw_rect(), ED_preview_shader_job(), PR_BUTS_RENDER, SpaceProperties::preview, ShaderPreview::sizex, ShaderPreview::sizey, uiPreview::tag, UI_PREVIEW_TAG_DIRTY, WM_JOB_TYPE_RENDER_PREVIEW, WM_jobs_customdata_from_type(), WM_jobs_test(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by uiTemplatePreview().
|
static |
Definition at line 674 of file render_preview.cc.
References abs, BLI_listbase_is_empty(), BLI_rcti_size_x(), BLI_rcti_size_y(), Scene::display_settings, ED_draw_imbuf(), RenderView::ibuf, max_ii(), RE_AcquireResultImageViews(), RE_GetRender(), RE_ReleaseResultImageViews(), RE_RenderViewGetById(), RenderResult::rectx, RenderResult::recty, split(), Scene::view_settings, RenderResult::views, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by ED_preview_draw().
| void ED_preview_ensure_dbase | ( | const bool | with_gpencil | ) |
Definition at line 192 of file render_preview.cc.
References BLI_assert, BLI_thread_is_main(), datatoc_preview_blend, datatoc_preview_blend_size, datatoc_preview_grease_pencil_blend, datatoc_preview_grease_pencil_blend_size, G, G_pr_main_grease_pencil, load_main_from_memory(), and UNUSED_VARS.
Referenced by ED_preview_icon_job(), ED_preview_icon_render(), ED_preview_shader_job(), and blender::ed::space_node::ensure_nodetree_previews().
| void ED_preview_free_dbase | ( | ) |
Definition at line 223 of file render_preview.cc.
References BKE_main_free(), G, and G_pr_main_grease_pencil.
Referenced by WM_exit_ex().
| void ED_preview_icon_job | ( | const bContext * | C, |
| PreviewImage * | prv_img, | ||
| ID * | id, | ||
| eIconSizes | icon_size, | ||
| const bool | delay ) |
Definition at line 2046 of file render_preview.cc.
References IconPreview::active_object, BKE_scene_ensure_depsgraph(), BKE_view_layer_default_render(), BLI_movelisttolist(), IconPreview::bmain, C, CTX_data_active_object(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), CTX_wm_manager(), CTX_wm_window(), DEG_get_input_scene(), IconPreview::depsgraph, duplicate_ids(), ED_preview_ensure_dbase(), PreviewLoadJob::ensure_job(), PreviewImage::flag, GS, PreviewImage::h, icon_preview_add_size(), icon_preview_endjob(), icon_preview_free(), icon_preview_startjob_all_sizes(), IconPreview::id, IconPreview::id_copy, ID_SCE, MEM_callocN(), NC_WINDOW, IconPreview::owner, PRV_RENDERING, PreviewLoadJob::push_load_request(), PreviewImage::rect, PreviewImage::runtime, IconPreview::scene, IconPreview::sizes, PreviewImage::w, WM_JOB_EXCL_RENDER, WM_JOB_TYPE_RENDER_PREVIEW, WM_jobs_callbacks(), WM_jobs_customdata_get(), WM_jobs_customdata_set(), WM_jobs_delay_start(), WM_jobs_get(), WM_jobs_start(), and WM_jobs_timer().
Referenced by icon_set_image().
| void ED_preview_icon_render | ( | const bContext * | C, |
| Scene * | scene, | ||
| PreviewImage * | prv_img, | ||
| ID * | id, | ||
| eIconSizes | icon_size ) |
Definition at line 1993 of file render_preview.cc.
References IconPreview::active_object, BKE_previewimg_id_ensure(), BKE_scene_ensure_depsgraph(), BKE_view_layer_default_render(), BLI_freelistN(), IconPreview::bmain, C, CTX_data_active_object(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), IconPreview::depsgraph, duplicate_ids(), ED_preview_ensure_dbase(), PreviewImage::flag, GS, PreviewImage::h, icon_preview_add_size(), icon_preview_endjob(), icon_preview_startjob_all_sizes(), IconPreview::id, IconPreview::id_copy, ID_SCE, PreviewLoadJob::load_jobless(), IconPreview::owner, preview_id_copy_free(), PRV_RENDERING, PreviewImage::rect, PreviewImage::runtime, IconPreview::scene, IconPreview::sizes, and PreviewImage::w.
Referenced by icon_set_image().
Check if id is supported by the automatic preview render.
Definition at line 1957 of file render_preview.cc.
References BKE_collection_contains_geometry_recursive(), BKE_previewimg_id_get_p(), GS, ID_GR, ID_NT, ID_OB, ID_SCE, object_preview_is_type_supported(), result, RPT_, and scene_preview_is_supported().
Referenced by blender::ed::asset::generate_preview(), lib_id_generate_preview_exec(), lib_id_generate_preview_from_object_poll(), lib_id_generate_preview_poll(), and UI_icon_render_id().
| void ED_preview_kill_jobs | ( | wmWindowManager * | wm, |
| Main * | bmain ) |
Definition at line 2195 of file render_preview.cc.
References WM_JOB_TYPE_RENDER_PREVIEW, and WM_jobs_kill_type().
Referenced by blender::ed::space_node::add_node_group_asset(), blender::ed::space_node::add_reroute_exec(), blender::ed::space_node::cut_links_exec(), blender::ed::space_node::detach_links_exec(), ED_render_engine_changed(), image_open_exec(), image_reload_exec(), image_replace_exec(), image_unpack_exec(), lib_id_generate_preview_exec(), lib_id_generate_preview_from_object_exec(), memfile_undosys_step_decode(), blender::ed::space_node::mute_links_exec(), blender::ed::space_node::node_active_link_viewer_exec(), blender::ed::space_node::node_add_collection_exec(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_add_group_input_node_exec(), blender::ed::space_node::node_add_image_exec(), blender::ed::space_node::node_add_mask_exec(), blender::ed::space_node::node_add_material_exec(), blender::ed::space_node::node_add_object_exec(), blender::ed::space_node::node_clipboard_paste_exec(), blender::ed::space_node::node_delete_exec(), blender::ed::space_node::node_delete_reconnect_exec(), blender::ed::space_node::node_duplicate_exec(), blender::ed::space_node::node_group_edit_exec(), blender::ed::space_node::node_group_insert_exec(), blender::ed::space_node::node_group_make_exec(), blender::ed::space_node::node_group_separate_exec(), blender::ed::space_node::node_group_ungroup_exec(), blender::ed::space_node::node_link_invoke(), blender::ed::space_node::node_make_link_exec(), blender::ed::space_node::node_mute_exec(), blender::ed::space_node::node_read_viewlayers_exec(), blender::ed::space_node::node_socket_toggle_exec(), and blender::ed::space_node::viewer_border_exec().
| void ED_preview_kill_jobs_for_id | ( | wmWindowManager * | wm, |
| const ID * | id ) |
Definition at line 2204 of file render_preview.cc.
References BKE_previewimg_id_get(), WM_JOB_TYPE_RENDER_PREVIEW, and WM_jobs_kill_type().
Referenced by blender::ed::asset::generate_preview(), and blender::ed::asset::screenshot_preview_exec().
| World * ED_preview_prepare_world | ( | Main * | pr_main, |
| const Scene * | scene, | ||
| const World * | world, | ||
| const ID_Type | id_type, | ||
| const ePreviewRenderMethod | pr_method ) |
Definition at line 495 of file render_preview.cc.
References preview_get_world(), preview_sync_exposure(), and result.
Referenced by preview_prepare_scene().
Definition at line 374 of file render_preview.cc.
References BKE_world_add(), World::id, blender::bke::node_add_link(), blender::bke::node_add_node(), blender::bke::node_find_socket(), blender::bke::node_set_active(), blender::bke::node_tree_add_tree_embedded(), World::nodetree, output, SOCK_IN, and SOCK_OUT.
Referenced by blender::ed::space_node::preview_prepare_scene(), and preview_prepare_scene().
| void ED_preview_restart_queue_add | ( | ID * | id, |
| enum eIconSizes | size ) |
Definition at line 2226 of file render_preview.cc.
References BLI_addtail(), G_restart_previews_queue, PreviewRestartQueueEntry::id, MEM_callocN(), PreviewRestartQueueEntry::size, and size().
Referenced by memfile_undosys_unfinished_id_previews_restart().
| void ED_preview_restart_queue_free | ( | ) |
Definition at line 2221 of file render_preview.cc.
References BLI_freelistN(), and G_restart_previews_queue.
Referenced by WM_exit_ex(), and wm_file_read_pre().
| void ED_preview_restart_queue_work | ( | const bContext * | C | ) |
Definition at line 2234 of file render_preview.cc.
References BKE_previewimg_clear_single(), BKE_previewimg_id_get(), BLI_freelinkN(), C, PreviewImage::flag, G_restart_previews_queue, LISTBASE_FOREACH_MUTABLE, PRV_USER_EDITED, and UI_icon_render_id().
Referenced by wm_event_do_notifiers().
| void ED_preview_set_visibility | ( | Main * | pr_main, |
| Scene * | scene, | ||
| ViewLayer * | view_layer, | ||
| const ePreviewType | pr_type, | ||
| const ePreviewRenderMethod | pr_method ) |
Definition at line 344 of file render_preview.cc.
References BKE_layer_collection_sync(), switch_preview_collection_visibility(), and switch_preview_floor_visibility().
Referenced by blender::ed::space_node::preview_prepare_scene(), and preview_prepare_scene().
| void ED_preview_shader_job | ( | const bContext * | C, |
| const void * | owner, | ||
| ID * | id, | ||
| ID * | parent, | ||
| MTex * | slot, | ||
| int | sizex, | ||
| int | sizey, | ||
| ePreviewRenderMethod | method ) |
Definition at line 2117 of file render_preview.cc.
References ARRAY_SET_ITEMS, BKE_previewimg_id_supports_jobs(), BLI_assert, ShaderPreview::bmain, C, Object::color, ShaderPreview::color, common_preview_startjob(), copy_v4_v4(), CTX_data_active_object(), CTX_data_main(), CTX_data_scene(), CTX_wm_manager(), CTX_wm_window(), duplicate_ids(), ED_check_engine_supports_preview(), ED_preview_ensure_dbase(), G, G_pr_main_grease_pencil, Material::gp_style, GS, ShaderPreview::id, ShaderPreview::id_copy, ID_MA, MEM_callocN(), NC_MATERIAL, ShaderPreview::own_id_copy, ShaderPreview::owner, ShaderPreview::parent, ShaderPreview::pr_main, ShaderPreview::pr_method, preview_method_is_render(), ShaderPreview::scene, shader_preview_free(), shader_preview_updatejob(), ShaderPreview::sizex, ShaderPreview::sizey, ShaderPreview::slot, Object::totcol, WM_JOB_EXCL_RENDER, WM_JOB_TYPE_RENDER_PREVIEW, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), and WM_jobs_timer().
Referenced by ED_preview_draw().
| bool ED_preview_use_image_size | ( | const PreviewImage * | preview, |
| eIconSizes | size ) |
For preview icons loaded from disk (deferred loading), use the size of the source image, and only scale to the display size when drawing. Then we actually know the final display size (so we don't scale twice), and can scale on the GPU while drawing.
Definition at line 1952 of file render_preview.cc.
References ICON_SIZE_PREVIEW, PreviewImage::runtime, and size().
Referenced by icon_create_rect().
Definition at line 396 of file render_preview.cc.
References BLI_assert, copy_v4_v4(), bNodeSocket::default_value, blender::bke::node_find_node_by_name(), blender::bke::node_find_socket(), World::nodetree, and SOCK_IN.
Referenced by blender::ed::space_node::preview_prepare_scene(), and preview_prepare_scene().
For UI previews (i.e. uiPreview, not PreviewImage): Tag all previews for id as dirty, so the next redraw triggers a re-render in ED_preview_draw().
Definition at line 788 of file render_preview.cc.
References LISTBASE_FOREACH, Main::screens, and UI_PREVIEW_TAG_DIRTY.
Referenced by image_changed(), lamp_changed(), material_changed(), texture_changed(), and world_changed().
Definition at line 1390 of file render_preview.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, float, ImBuf::float_buffer, IMB_byte_from_float(), IMB_freeImBuf(), IMB_scale_into_new(), Nearest, w(), ImBuf::x, and ImBuf::y.
Referenced by action_preview_render(), icon_preview_startjob(), object_preview_render(), and scene_preview_render().
|
static |
Definition at line 1665 of file render_preview.cc.
References BLI_addtail(), ListBase::first, MEM_callocN(), IconPreviewSize::next, IconPreviewSize::rect, IconPreview::sizes, IconPreviewSize::sizex, and IconPreviewSize::sizey.
Referenced by ED_preview_icon_job(), and ED_preview_icon_render().
|
static |
Definition at line 1686 of file render_preview.cc.
References BKE_previewimg_deferred_release(), BKE_previewimg_finish(), BLI_assert, GPU_texture_free(), GS, i, icon_previewimg_size_index_get(), IconPreview::id, ID_MA, LISTBASE_FOREACH, ID::name, NC_MATERIAL, ND_SHADING_DRAW, NUM_ICON_SIZES, IconPreview::owner, Material::preview, PRV_TAG_DEFFERED_DELETE, PRV_TAG_DEFFERED_RENDERING, PreviewImage::runtime, IconPreview::sizes, and WM_main_add_notifier().
Referenced by ED_preview_icon_job(), and ED_preview_icon_render().
|
static |
Definition at line 1940 of file render_preview.cc.
References BLI_freelistN(), IconPreview::id_copy, MEM_freeN(), preview_id_copy_free(), and IconPreview::sizes.
Referenced by ED_preview_icon_job().
|
static |
Definition at line 1447 of file render_preview.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BKE_imageuser_default(), BLI_assert, BLI_assert_unreachable, ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, ImageUser::framenr, GS, icon_copy_rect(), ShaderPreview::id, ID_IM, ID_WO, PR_ICON_DEFERRED, ShaderPreview::pr_method, ShaderPreview::pr_rect, ImageUser::scene, ShaderPreview::scene, set_alpha(), shader_preview_startjob(), ShaderPreview::sizex, and ShaderPreview::sizey.
Referenced by common_preview_startjob().
|
static |
Definition at line 1584 of file render_preview.cc.
References action_preview_render(), BKE_collection_contains_geometry_recursive(), BKE_previewimg_is_finished(), BLI_assert, ED_check_engine_supports_preview(), ELEM, GS, icon_previewimg_size_index_get(), IconPreview::id, ID_AC, ID_GR, ID_IM, ID_IS_EDITABLE, ID_OB, ID_SCE, LISTBASE_FOREACH, ID::name, object_preview_is_type_supported(), object_preview_render(), other_id_types_preview_render(), IconPreview::owner, PR_ICON_DEFERRED, PR_ICON_RENDER, preview_method_is_render(), PRV_TAG_DEFFERED_DELETE, wmJobWorkerStatus::reports, PreviewImage::runtime, IconPreview::scene, scene_preview_render(), IconPreview::sizes, and wmJobWorkerStatus::stop.
Referenced by ED_preview_icon_job(), and ED_preview_icon_render().
|
static |
Find the index to map icon_size to data in preview_image.
Definition at line 1571 of file render_preview.cc.
References BLI_assert_msg, PreviewImage::h, i, NUM_ICON_SIZES, IconPreviewSize::sizex, IconPreviewSize::sizey, and PreviewImage::w.
Referenced by icon_preview_endjob(), and icon_preview_startjob_all_sizes().
|
static |
Definition at line 174 of file render_preview.cc.
References blend(), BLO_read_from_memory(), BLO_READ_SKIP_NONE, G, G_FILE_NO_UI, and BlendFileData::main.
Referenced by ED_preview_ensure_dbase().
|
static |
Definition at line 826 of file render_preview.cc.
References BKE_object_add(), Object::data, eul_to_mat3(), Object::loc, M_PI, mat3_to_quat(), mat4_to_loc_rot_size(), mul_m3_m3_post(), OB_CAMERA, Object::quat, ROT_MODE_QUAT, and Object::rotmode.
Referenced by object_preview_scene_create().
|
static |
Definition at line 821 of file render_preview.cc.
References OB_TYPE_IS_GEOMETRY, and Object::type.
Referenced by ED_preview_id_is_supported(), and icon_preview_startjob_all_sizes().
|
static |
Definition at line 894 of file render_preview.cc.
References BKE_main_free(), BKE_main_new(), BKE_screen_view3d_shading_init(), BLI_assert, Scene::camera, ObjectPreviewData::cfra, RenderData::cfra, DEG_get_evaluated(), DEG_get_evaluated_scene(), DEG_graph_free(), depsgraph, ED_view3d_draw_offscreen_imbuf_simple(), View3DShading::flag, IB_byte_data, icon_copy_rect(), IconPreview::id, IconPreview::id_copy, IMB_freeImBuf(), OB_TEXTURE, ObjectPreviewData::object, object_preview_scene_create(), ObjectPreviewData::pr_main, Scene::r, R_ALPHAPREMUL, IconPreviewSize::rect, IconPreview::scene, IconPreviewSize::sizex, ObjectPreviewData::sizex, IconPreviewSize::sizey, ObjectPreviewData::sizey, V3D_OFSDRAW_OVERRIDE_SCENE_SETTINGS, and V3D_SHADING_SHADOW.
Referenced by icon_preview_startjob_all_sizes().
|
static |
Definition at line 852 of file render_preview.cc.
References BASE_SELECTED, BKE_collection_object_add(), BKE_scene_add(), BKE_scene_graph_update_tagged(), BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), BLI_addtail(), BLI_assert, Scene::camera, ObjectPreviewData::cfra, RenderData::cfra, DAG_EVAL_VIEWPORT, DEG_evaluate_on_refresh(), DEG_graph_build_from_view_layer(), DEG_graph_new(), depsgraph, ED_view3d_camera_to_view_selected_with_set_clipping(), ListBase::first, Base::flag, Scene::master_collection, ObjectPreviewData::object, object_preview_camera_create(), Main::objects, ObjectPreviewData::pr_main, Scene::r, RenderData::size, ObjectPreviewData::sizex, ObjectPreviewData::sizey, Scene::view_layers, RenderData::xsch, and RenderData::ysch.
Referenced by object_preview_render().
|
static |
Some ID types already have their own, more focused rendering (only objects right now). This is for the other ones, which all share ShaderPreview and some functions.
Definition at line 1523 of file render_preview.cc.
References BLI_assert, IconPreview::bmain, ShaderPreview::bmain, common_preview_startjob(), ELEM, G, G_pr_main_grease_pencil, Material::gp_style, GS, IconPreview::id, ShaderPreview::id, IconPreview::id_copy, ShaderPreview::id_copy, ID_MA, ID_OB, MEM_callocN(), ID::name, ShaderPreview::own_id_copy, IconPreview::owner, ShaderPreview::owner, PR_ICON_RENDER, ShaderPreview::pr_main, ShaderPreview::pr_method, ShaderPreview::pr_rect, IconPreviewSize::rect, IconPreview::scene, ShaderPreview::scene, shader_preview_free(), IconPreviewSize::sizex, ShaderPreview::sizex, IconPreviewSize::sizey, and ShaderPreview::sizey.
Referenced by icon_preview_startjob_all_sizes().
|
static |
Definition at line 295 of file render_preview.cc.
References PR_ICON_RENDER, and render_engine_supports_ray_visibility().
Referenced by switch_preview_floor_material().
|
static |
Definition at line 355 of file render_preview.cc.
References BKE_id_copy_ex(), BLI_addtail(), World::id, LIB_ID_COPY_LOCALIZE, LIB_ID_COPY_NO_ANIMDATA, LIB_ID_CREATE_LOCAL, ShaderPreview::pr_main, ShaderPreview::worldcopy, and Main::worlds.
Referenced by preview_prepare_scene().
Definition at line 234 of file render_preview.cc.
References ListBase::first, and Main::scenes.
Referenced by preview_prepare_scene(), and shader_preview_render().
|
static |
Definition at line 468 of file render_preview.cc.
References BLI_assert_msg, BLI_findstring(), ListBase::first, name, offsetof, preview_world_name(), result, and Main::worlds.
Referenced by ED_preview_prepare_world().
|
static |
Definition at line 1331 of file render_preview.cc.
References BKE_libblock_free_data(), BKE_libblock_free_datablock(), and MEM_freeN().
Referenced by ED_preview_icon_render(), icon_preview_free(), and shader_preview_free().
|
static |
Definition at line 218 of file render_preview.cc.
References ELEM, PR_BUTS_RENDER, and PR_ICON_RENDER.
Referenced by ED_preview_shader_job(), and icon_preview_startjob_all_sizes().
|
static |
Definition at line 510 of file render_preview.cc.
References RenderData::alphamode, BASE_ENABLED_AND_MAYBE_VISIBLE_IN_VIEWPORT, BKE_color_managed_display_settings_copy(), BKE_color_managed_view_settings_copy(), BKE_color_managed_view_settings_free(), BKE_main_blendfile_path(), BKE_object_material_array_p(), BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), BLI_addtail(), BLI_assert, ShaderPreview::bmain, RenderData::cfra, ShaderPreview::color, RenderData::color_mgt_flag, copy_v4_v4(), Scene::display, Scene::display_settings, ED_preview_prepare_world(), ED_preview_prepare_world_simple(), ED_preview_set_visibility(), ED_preview_world_simple_set_rgb(), ViewLayer::eevee, RenderData::engine, Main::filepath, ListBase::first, G_pr_main_grease_pencil, ShaderPreview::id_copy, ID_LA, ID_MA, ID_TE, ID_WO, ShaderPreview::lampcopy, Main::lights, LISTBASE_FOREACH, MA_LAMP, MA_PREVIEW_WORLD, MA_SKY, ShaderPreview::matcopy, Main::materials, max_ii(), OB_LAMP, OB_TYPE_SUPPORT_MATERIAL, ViewLayer::passflag, PR_BUTS_RENDER, Material::pr_flag, PR_ICON_RENDER, ShaderPreview::pr_main, ShaderPreview::pr_method, Material::pr_type, preview_get_localized_world(), preview_get_scene(), Scene::r, R_ADDSKY, R_ALPHAPREMUL, R_BUTS_PREVIEW, RE_engine_id_BLENDER_EEVEE, SceneDisplay::render_aa, ViewLayerEEVEE::render_passes, SCE_DISPLAY_AA_OFF, SCE_PASS_COMBINED, RenderData::scemode, STRNCPY_UTF8, ShaderPreview::texcopy, Main::textures, Scene::view_layers, Scene::view_settings, Scene::world, ShaderPreview::worldcopy, and Main::worlds.
Referenced by shader_preview_render().
Definition at line 487 of file render_preview.cc.
References BLI_assert, World::exp, and World::range.
Referenced by ED_preview_prepare_world().
|
static |
Definition at line 449 of file render_preview.cc.
References ID_MA, PR_ICON_RENDER, and render_engine_supports_ray_visibility().
Referenced by preview_get_world().
|
static |
Definition at line 274 of file render_preview.cc.
References RenderData::engine, Scene::r, RE_engine_id_BLENDER_EEVEE, and STREQ.
Referenced by preview_floor_material_name(), preview_world_name(), and switch_preview_floor_visibility().
|
static |
Definition at line 1071 of file render_preview.cc.
References Scene::camera.
Referenced by ED_preview_id_is_supported().
|
static |
Definition at line 1076 of file render_preview.cc.
References BKE_id_name(), BKE_reportf(), BLI_assert, Scene::camera, DEG_get_evaluated_scene(), depsgraph, IconPreview::depsgraph, ED_view3d_draw_offscreen_imbuf_simple(), IB_byte_data, icon_copy_rect(), IconPreview::id, IMB_freeImBuf(), OB_SOLID, R_ADDSKY, IconPreviewSize::rect, RPT_ERROR, IconPreviewSize::sizex, IconPreviewSize::sizey, and V3D_OFSDRAW_NONE.
Referenced by icon_preview_startjob_all_sizes().
|
static |
Definition at line 1438 of file render_preview.cc.
References size().
Referenced by icon_preview_startjob().
|
static |
Definition at line 1143 of file render_preview.cc.
References ShaderPreview::stop.
Referenced by shader_preview_render(), and shader_preview_texture().
|
static |
Definition at line 1338 of file render_preview.cc.
References BLI_assert, BLI_remlink(), ShaderPreview::id_copy, ShaderPreview::lampcopy, Main::lights, ShaderPreview::matcopy, Main::materials, MEM_freeN(), ShaderPreview::own_id_copy, ShaderPreview::pr_main, preview_id_copy_free(), ShaderPreview::texcopy, Main::textures, ShaderPreview::worldcopy, and Main::worlds.
Referenced by ED_preview_shader_job(), and other_id_types_preview_render().
|
static |
Definition at line 1209 of file render_preview.cc.
References ShaderPreview::bmain, Scene::camera, Object::data, Scene::display, float, GS, ID_TE, Tex::nodetree, ShaderPreview::owner, PR_BUTS_RENDER, PR_ICON_RENDER, ShaderPreview::pr_main, ShaderPreview::pr_method, ShaderPreview::pr_rect, preview_get_scene(), preview_prepare_scene(), Scene::r, R_MATNODE_PREVIEW, R_NO_IMAGE_LOAD, R_TEXNODE_PREVIEW, RE_display_update_cb(), RE_GetRender(), RE_NewRender(), RE_PreviewRender(), RE_ResultGet32(), RE_test_break_cb(), SceneDisplay::render_aa, SCE_DISPLAY_AA_SAMPLES_8, RenderData::scemode, ShaderPreview::scene, shader_preview_break(), shader_preview_texture(), shader_preview_update(), RenderData::size, ShaderPreview::sizex, ShaderPreview::sizey, split(), Tex::use_nodes, RenderData::xsch, and RenderData::ysch.
Referenced by shader_preview_startjob().
|
static |
Definition at line 1313 of file render_preview.cc.
References ShaderPreview::do_update, ShaderPreview::id, ShaderPreview::parent, shader_preview_render(), and ShaderPreview::stop.
Referenced by common_preview_startjob(), and icon_preview_startjob().
|
static |
Definition at line 1153 of file render_preview.cc.
References BKE_image_pool_free(), BKE_image_pool_new(), BKE_texture_fetch_images_for_pool(), BKE_texture_get_value_ex(), copy_v4_fl4(), ImBufFloatBuffer::data, ListBase::first, float, ImBuf::float_buffer, IB_TAKE_OWNERSHIP, IMB_assign_float_buffer(), MEM_calloc_arrayN(), Scene::r, R_BUTS_PREVIEW, RE_AcquireResultWrite(), RE_InitState(), RE_ReleaseResult(), RE_RenderViewEnsureImBuf(), RE_SetScene(), RenderData::scemode, shader_preview_break(), ShaderPreview::sizex, ShaderPreview::sizey, TexResult::talpha, tex_coord, TexResult::trgba, Scene::view_layers, RenderResult::views, x, and y.
Referenced by shader_preview_render().
|
static |
Definition at line 1135 of file render_preview.cc.
References ShaderPreview::do_update.
Referenced by shader_preview_render().
|
static |
Definition at line 1150 of file render_preview.cc.
Referenced by ED_preview_shader_job().
|
static |
Definition at line 279 of file render_preview.cc.
References LayerCollection::collection, COLLECTION_HIDE_RENDER, ED_preview_collection_name(), ListBase::first, Collection::flag, Collection::id, LayerCollection::layer_collections, ViewLayer::layer_collections, ID::name, LayerCollection::next, and STREQ.
Referenced by ED_preview_set_visibility().
|
static |
Definition at line 304 of file render_preview.cc.
References BLI_findstring(), Mesh::mat, Main::materials, name, offsetof, preview_floor_material_name(), and Mesh::totcol.
Referenced by switch_preview_floor_visibility().
|
static |
Definition at line 321 of file render_preview.cc.
References BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), LISTBASE_FOREACH, OB_HIDE_RENDER, OB_MESH, PR_ICON_RENDER, render_engine_supports_ray_visibility(), STREQ, and switch_preview_floor_material().
Referenced by ED_preview_set_visibility().
Definition at line 171 of file render_preview.cc.
Referenced by ED_preview_ensure_dbase(), ED_preview_free_dbase(), ED_preview_shader_job(), other_id_types_preview_render(), and preview_prepare_scene().
|
static |
Definition at line 2219 of file render_preview.cc.
Referenced by ED_preview_restart_queue_add(), ED_preview_restart_queue_free(), and ED_preview_restart_queue_work().