|
Blender V4.5
|
#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_utildefines.h"#include "BLT_translation.hh"#include "BLO_readfile.hh"#include "DNA_brush_types.h"#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_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_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) |
Collection Preview | |
For the most part this reuses the object preview code by creating an instance collection empty object and rendering that. | |
| static bool | collection_preview_contains_geometry_recursive (const Collection *collection) |
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) |
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) |
| 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, ScrArea *area, 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 ImBuf * | icon_preview_imbuf_from_brush (Brush *brush) |
| 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, 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 1016 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 1002 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 963 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, Object::id, ID_RECALC_GEOMETRY, ID::name, Object::pose, 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 |
Check if the collection contains any geometry that can be rendered. Otherwise there's nothing to display in the preview, so don't generate one. Objects and sub-collections hidden in the render will be skipped.
Definition at line 934 of file render_preview.cc.
References Collection::children, COLLECTION_HIDE_RENDER, collection_preview_contains_geometry_recursive(), Collection::gobject, LISTBASE_FOREACH, OB_HIDE_RENDER, and OB_TYPE_IS_GEOMETRY.
Referenced by collection_preview_contains_geometry_recursive(), ED_preview_id_is_supported(), and icon_preview_startjob_all_sizes().
|
static |
Definition at line 1498 of file render_preview.cc.
References ELEM, icon_preview_startjob(), PR_ICON_DEFERRED, PR_ICON_RENDER, ShaderPreview::pr_method, and shader_preview_startjob().
Referenced by ED_preview_shader_job(), and other_id_types_preview_render().
Definition at line 372 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_BR, 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, ID::name, 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 210 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 241 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 711 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 641 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, SNPRINTF, 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 190 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 221 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 2023 of file render_preview.cc.
References IconPreview::active_object, 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, PreviewImage::h, icon_preview_add_size(), icon_preview_endjob(), icon_preview_free(), icon_preview_startjob_all_sizes(), IconPreview::id, IconPreview::id_copy, 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 1979 of file render_preview.cc.
References IconPreview::active_object, BKE_previewimg_id_ensure(), 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, PreviewImage::h, icon_preview_add_size(), icon_preview_endjob(), icon_preview_startjob_all_sizes(), IconPreview::id, IconPreview::id_copy, 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 1946 of file render_preview.cc.
References BKE_previewimg_id_get_p(), collection_preview_contains_geometry_recursive(), GS, ID_GR, ID_NT, ID_OB, ID::name, object_preview_is_type_supported(), result, and RPT_.
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 2163 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 2172 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 460 of file render_preview.cc.
References preview_get_world(), preview_sync_exposure(), and result.
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 2194 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 2189 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 2202 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 342 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, |
| void * | owner, | ||
| ID * | id, | ||
| ID * | parent, | ||
| MTex * | slot, | ||
| int | sizex, | ||
| int | sizey, | ||
| ePreviewRenderMethod | method ) |
Definition at line 2085 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(), ID::name, 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 1941 of file render_preview.cc.
References ICON_SIZE_PREVIEW, PreviewImage::runtime, and size().
Referenced by icon_create_rect().
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 762 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 1366 of file render_preview.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, 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(), and object_preview_render().
|
static |
Definition at line 1652 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 1673 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_BR, ID_MA, LISTBASE_FOREACH, NA_EDITED, ID::name, NC_BRUSH, 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 1929 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().
Definition at line 1340 of file render_preview.cc.
References BKE_icon_changed(), BKE_icon_id_ensure(), BLI_path_abs(), BRUSH_CUSTOM_ICON, FILE_MAX, Brush::flag, IB_byte_data, IB_metadata, IB_multilayer, Brush::icon_filepath, ID::icon_id, Brush::icon_imbuf, Brush::id, ID_BLEND_PATH_FROM_GLOBAL, IMB_load_image_from_filepath(), and STRNCPY().
Referenced by icon_preview_startjob().
|
static |
Definition at line 1423 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, do_update, ImBuf::float_buffer, ImageUser::framenr, GS, icon_copy_rect(), Brush::icon_imbuf, icon_preview_imbuf_from_brush(), ShaderPreview::id, ID_BR, ID_IM, ID_WO, ID::name, PR_ICON_DEFERRED, ShaderPreview::pr_method, ShaderPreview::pr_rect, ImageUser::scene, ShaderPreview::scene, set_alpha(), shader_preview_startjob(), ShaderPreview::sizex, ShaderPreview::sizey, and stop.
Referenced by common_preview_startjob().
|
static |
Definition at line 1575 of file render_preview.cc.
References action_preview_render(), BKE_previewimg_is_finished(), BLI_assert, collection_preview_contains_geometry_recursive(), ED_check_engine_supports_preview(), ELEM, GS, icon_previewimg_size_index_get(), IconPreview::id, ID_AC, ID_BR, ID_GR, ID_IM, ID_IS_EDITABLE, ID_OB, 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, PreviewImage::runtime, IconPreview::scene, and IconPreview::sizes.
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 1562 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 172 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 800 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 795 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 868 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 826 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 1514 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 293 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 353 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 232 of file render_preview.cc.
References ListBase::first, and Main::scenes.
Referenced by preview_prepare_scene(), and shader_preview_render().
|
static |
Definition at line 433 of file render_preview.cc.
References BLI_assert_msg, BLI_findstring(), ListBase::first, offsetof, preview_world_name(), result, and Main::worlds.
Referenced by ED_preview_prepare_world().
|
static |
Definition at line 1275 of file render_preview.cc.
References BKE_libblock_free_datablock(), IDP_FreePropertyContent_ex(), IDP_GetProperties(), and MEM_freeN().
Referenced by ED_preview_icon_render(), icon_preview_free(), and shader_preview_free().
|
static |
Definition at line 216 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 475 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, RenderData::cfra, ShaderPreview::color, RenderData::color_mgt_flag, copy_v4_v4(), Scene::display, Scene::display_settings, ED_preview_prepare_world(), ED_preview_set_visibility(), ViewLayer::eevee, RenderData::engine, Main::filepath, ListBase::first, G_pr_main_grease_pencil, World::horb, World::horg, World::horr, 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_NEXT, SceneDisplay::render_aa, ViewLayerEEVEE::render_passes, SCE_DISPLAY_AA_OFF, SCE_PASS_COMBINED, RenderData::scemode, STRNCPY(), ShaderPreview::texcopy, Main::textures, World::use_nodes, Scene::view_layers, Scene::view_settings, Scene::world, ShaderPreview::worldcopy, and Main::worlds.
Referenced by shader_preview_render().
Definition at line 452 of file render_preview.cc.
References BLI_assert, World::exp, and World::range.
Referenced by ED_preview_prepare_world().
|
static |
Definition at line 414 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 272 of file render_preview.cc.
References RenderData::engine, Scene::r, RE_engine_id_BLENDER_EEVEE_NEXT, and STREQ.
Referenced by preview_floor_material_name(), preview_world_name(), and switch_preview_floor_visibility().
|
static |
Definition at line 1414 of file render_preview.cc.
References size().
Referenced by icon_preview_startjob().
|
static |
Definition at line 1082 of file render_preview.cc.
References ShaderPreview::stop.
Referenced by shader_preview_render(), and shader_preview_texture().
|
static |
Definition at line 1288 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 1148 of file render_preview.cc.
References ShaderPreview::bmain, Scene::camera, Object::data, Scene::display, GS, ID_TE, ID::name, 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, SNPRINTF, split(), Tex::use_nodes, RenderData::xsch, and RenderData::ysch.
Referenced by shader_preview_startjob().
|
static |
Definition at line 1257 of file render_preview.cc.
References do_update, ShaderPreview::do_update, ShaderPreview::id, ShaderPreview::parent, shader_preview_render(), ShaderPreview::stop, and stop.
Referenced by common_preview_startjob(), and icon_preview_startjob().
|
static |
Definition at line 1092 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, 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 1074 of file render_preview.cc.
References ShaderPreview::do_update.
Referenced by shader_preview_render().
|
static |
Definition at line 1089 of file render_preview.cc.
Referenced by ED_preview_shader_job().
|
static |
Definition at line 277 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 302 of file render_preview.cc.
References BLI_findstring(), Mesh::mat, Main::materials, offsetof, preview_floor_material_name(), and Mesh::totcol.
Referenced by switch_preview_floor_visibility().
|
static |
Definition at line 319 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 169 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 2187 of file render_preview.cc.
Referenced by ED_preview_restart_queue_add(), ED_preview_restart_queue_free(), and ED_preview_restart_queue_work().