|
Blender V4.3
|
#include <algorithm>#include <cmath>#include <cstdlib>#include <cstring>#include <list>#include <unistd.h>#include "MEM_guardedalloc.h"#include "BLI_blenlib.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_time.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_appdir.hh"#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_light.h"#include "BKE_main.hh"#include "BKE_material.h"#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 "GPU_shader.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 (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_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_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 1010 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_rect, 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 996 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 965 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::first_slot_handle(), IconPreview::id, ID_RECALC_GEOMETRY, blender::animrig::pose_apply_action_all_bones(), RPT_WARNING, WM_report(), and WM_reportf().
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 936 of file render_preview.cc.
References COLLECTION_HIDE_RENDER, collection_preview_contains_geometry_recursive(), 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 1501 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 373 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, 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 211 of file render_preview.cc.
References 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 242 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 712 of file render_preview.cc.
References abs(), BLI_rcti_size_x(), BLI_rcti_size_y(), 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_LOAD_PREVIEW, 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 642 of file render_preview.cc.
References abs(), BLI_listbase_is_empty(), BLI_rcti_size_x(), BLI_rcti_size_y(), ED_draw_imbuf(), RenderView::ibuf, max_ii(), RE_AcquireResultImageViews(), RE_GetRender(), RE_ReleaseResultImageViews(), RE_RenderViewGetById(), RenderResult::rectx, RenderResult::recty, SNPRINTF, 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 191 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 222 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 1996 of file render_preview.cc.
References IconPreview::active_object, BLI_movelisttolist(), IconPreview::bmain, 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, 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 1952 of file render_preview.cc.
References IconPreview::active_object, BKE_previewimg_id_ensure(), BLI_freelistN(), IconPreview::bmain, 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, scene, IconPreview::sizes, and PreviewImage::w.
Referenced by icon_set_image().
| bool ED_preview_id_is_supported | ( | const ID * | id, |
| const char ** | r_disabled_hint = nullptr ) |
Check if id is supported by the automatic preview render.
Definition at line 1919 of file render_preview.cc.
References BKE_previewimg_id_get_p(), collection_preview_contains_geometry_recursive(), GS, ID_GR, ID_NT, ID_OB, object_preview_is_type_supported(), result, and RPT_.
Referenced by lib_id_generate_preview_poll(), and UI_icon_render_id().
| void ED_preview_kill_jobs | ( | wmWindowManager * | wm, |
| Main * | bmain ) |
Definition at line 2136 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_file_exec(), blender::ed::space_node::node_add_group_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().
| 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 461 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 2159 of file render_preview.cc.
References BLI_addtail(), G_restart_previews_queue, PreviewRestartQueueEntry::id, PreviewRestartQueueEntry::size, and size().
Referenced by memfile_undosys_unfinished_id_previews_restart().
| void ED_preview_restart_queue_free | ( | ) |
Definition at line 2154 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 2167 of file render_preview.cc.
References BKE_previewimg_clear_single(), BKE_previewimg_id_get(), BLI_freelinkN(), 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 343 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 2058 of file render_preview.cc.
References ARRAY_SET_ITEMS, BKE_previewimg_id_supports_jobs(), BLI_assert, ShaderPreview::bmain, 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, NC_MATERIAL, ShaderPreview::own_id_copy, ShaderPreview::owner, ShaderPreview::parent, ShaderPreview::pr_main, ShaderPreview::pr_method, preview_method_is_render(), scene, 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().
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 763 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 1361 of file render_preview.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, float, ImBuf::float_buffer, IMB_dupImBuf(), IMB_freeImBuf(), IMB_rect_from_float(), IMB_scale(), 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, 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, 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, PreviewImage::runtime, IconPreview::sizes, and WM_main_add_notifier().
Referenced by ED_preview_icon_job(), and ED_preview_icon_render().
|
static |
Definition at line 1907 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 1335 of file render_preview.cc.
References BKE_icon_changed(), BKE_icon_id_ensure(), BLI_path_abs(), BRUSH_CUSTOM_ICON, FILE_MAX, Brush::flag, IB_metadata, IB_multilayer, IB_rect, Brush::icon_filepath, ID::icon_id, Brush::icon_imbuf, Brush::id, ID_BLEND_PATH_FROM_GLOBAL, IMB_loadiffname(), and STRNCPY.
Referenced by icon_preview_startjob().
|
static |
Definition at line 1426 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(), Brush::icon_imbuf, icon_preview_imbuf_from_brush(), ShaderPreview::id, ID_BR, 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 1578 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_GR, 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, 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 1565 of file render_preview.cc.
References BLI_assert_msg, PreviewImage::h, NUM_ICON_SIZES, IconPreviewSize::sizex, IconPreviewSize::sizey, and PreviewImage::w.
Referenced by icon_preview_endjob(), and icon_preview_startjob_all_sizes().
Definition at line 172 of file render_preview.cc.
References blend, BLO_read_from_memory(), BLO_READ_SKIP_NONE, BlendFileData::fileflags, G, G_FILE_NO_UI, BlendFileData::main, and MEM_freeN().
Referenced by ED_preview_ensure_dbase().
|
static |
Definition at line 801 of file render_preview.cc.
References BKE_object_add(), camera, eul_to_mat3(), M_PI, mat3_to_quat(), mat4_to_loc_rot_size(), mul_m3_m3_post(), OB_CAMERA, and ROT_MODE_QUAT.
Referenced by object_preview_scene_create().
|
static |
Definition at line 796 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 869 of file render_preview.cc.
References BKE_main_free(), BKE_main_new(), BKE_screen_view3d_shading_init(), BLI_assert, ObjectPreviewData::cfra, RenderData::cfra, DEG_get_evaluated_object(), DEG_get_evaluated_scene(), DEG_graph_free(), depsgraph, ED_view3d_draw_offscreen_imbuf_simple(), IB_rect, 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 827 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, ObjectPreviewData::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(), Base::flag, ObjectPreviewData::object, object_preview_camera_create(), Main::objects, ObjectPreviewData::pr_main, scene, ObjectPreviewData::sizex, and ObjectPreviewData::sizey.
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 1517 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, 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 294 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 354 of file render_preview.cc.
References BKE_id_copy_ex(), BLI_addtail(), 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 233 of file render_preview.cc.
References ListBase::first, and Main::scenes.
Referenced by preview_prepare_scene(), and shader_preview_render().
|
static |
Definition at line 434 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 1270 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 217 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 476 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, Material::flag, 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, tex, 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 453 of file render_preview.cc.
References BLI_assert, World::exp, and World::range.
Referenced by ED_preview_prepare_world().
|
static |
Definition at line 415 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 273 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().
Definition at line 1417 of file render_preview.cc.
References size().
Referenced by icon_preview_startjob().
|
static |
Definition at line 1076 of file render_preview.cc.
References ShaderPreview::stop.
Referenced by shader_preview_render(), and shader_preview_texture().
|
static |
Definition at line 1283 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 1143 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, SNPRINTF, tex, Tex::use_nodes, RenderData::xsch, and RenderData::ysch.
Referenced by shader_preview_startjob().
|
static |
Definition at line 1252 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 1086 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_callocN, Scene::r, RE_AcquireResultWrite(), RE_InitState(), RE_ReleaseResult(), RE_RenderViewEnsureImBuf(), RE_SetScene(), RenderData::scemode, shader_preview_break(), ShaderPreview::sizex, ShaderPreview::sizey, TexResult::talpha, tex, tex_coord, TexResult::trgba, Scene::view_layers, and RenderResult::views.
Referenced by shader_preview_render().
|
static |
Definition at line 1068 of file render_preview.cc.
References ShaderPreview::do_update.
Referenced by shader_preview_render().
|
static |
Definition at line 1083 of file render_preview.cc.
Referenced by ED_preview_shader_job().
|
static |
Definition at line 278 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 303 of file render_preview.cc.
References BLI_findstring(), Main::materials, offsetof, and preview_floor_material_name().
Referenced by switch_preview_floor_visibility().
|
static |
Definition at line 320 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().
|
static |
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 2152 of file render_preview.cc.
Referenced by ED_preview_restart_queue_add(), ED_preview_restart_queue_free(), and ED_preview_restart_queue_work().