48#define MAX_IMAGE_INFO_LEN 128
54 if (node->type == CMP_NODE_VIEWER) {
56 return static_cast<ImageUser *
>(node->storage);
74 if (slot->name[0] !=
'\0') {
128 return IFACE_(
"Composite");
131 return IFACE_(
"Sequence");
147 memcpy(rnd_pt_dst, rnd_pt_src,
sizeof(*rnd_pt_src));
184 int nr = fake_name ? 1 : 0;
242 nr = (rl ==
nullptr) ? 1 : 0;
250 rpass = rpass->
next, nr++)
329 rview = rview->
prev, nr--)
376 for (iv =
static_cast<ImageView *
>(image->views.last); iv; iv = iv->
prev, nr--) {
409 bool changed =
false;
416 if (direction == -1) {
417 if (iuser->
layer > 0) {
422 else if (direction == 1) {
429 if (iuser->
layer < tot - 1) {
455 bool changed =
false;
456 int layer = iuser->
layer;
477 if (rpass ==
nullptr) {
483 if (direction == -1) {
485 int rp_index = iuser->
pass + 1;
487 for (rp = rpass->
next; rp; rp = rp->
next, rp_index++) {
489 iuser->
pass = rp_index;
495 else if (direction == 1) {
499 if (iuser->
pass == 0) {
506 iuser->
pass = rp_index - 1;
542 const short *render_slot)
548 int wmenu1, wmenu2, wmenu3, wmenu4;
549 const char *fake_name;
550 const char *display_name =
"";
553 if (iuser->
scene ==
nullptr) {
560 wmenu1 = (2 *
w) / 5;
561 wmenu2 = (3 *
w) / 5;
562 wmenu3 = (3 *
w) / 6;
563 wmenu4 = (3 *
w) / 6;
566 rnd_pt_local.
iuser = iuser;
573 if (slot && slot->
name[0] !=
'\0') {
596 rpass_index = iuser->
layer - (fake_name ? 1 : 0);
601 display_name = rl ? rl->
name : (fake_name ? fake_name :
"");
611 TIP_(
"Select Layer"));
622 display_name = rpass ? rpass->
name :
"";
632 TIP_(
"Select Pass"));
644 display_name = rview ? rview->
name :
"";
655 TIP_(
"Select View"));
669 if (nr++ == iuser->
view) {
670 display_name = iv->name;
684 TIP_(
"Select View"));
710 const char *propname,
727 printf(
"%s: expected pointer property for %s.%s\n",
747 if (!compact && (space_image ==
nullptr || iuser != &space_image->
iuser)) {
749 layout, C,
ptr, propname, ima ?
nullptr :
"IMAGE_OT_new",
"IMAGE_OT_open",
nullptr);
751 if (ima !=
nullptr) {
756 if (ima ==
nullptr) {
770 const int menus_width = 230 * dpi_fac;
817 uiItemO(row,
"", ICON_PACKAGE,
"image.unpack");
820 uiItemO(row,
"", ICON_UGLYPACKAGE,
"image.pack");
828 uiItemO(row,
"", ICON_FILEBROWSER,
"image.file_browse");
829 uiItemO(row,
"", ICON_FILE_REFRESH,
"image.reload");
854 else if (compact == 0) {
874 uiItemO(row,
"", ICON_FILE_REFRESH,
"IMAGE_OT_match_movie_length");
888 if (multiview && compact == 0) {
945 const bool is_render_out = (
id &&
GS(id->name) ==
ID_SCE);
1010 uiItemL(
col,
RPT_(
"Hard coded Non-Linear, Gamma:1.7"), ICON_NONE);
1024 if (color_management) {
1062 col, stereo3d_format_ptr,
"use_sidebyside_crosseyed",
UI_ITEM_NONE,
nullptr, ICON_NONE);
1112 if (
ptr !=
nullptr) {
1141 const int menus_width = 160 * dpi_fac;
1147 layout, ima, rr, iuser, menus_width, is_render_result ? &ima->
render_slot :
nullptr);
1154 if (ima ==
nullptr || iuser ==
nullptr) {
1165 if (ibuf ==
nullptr) {
1239#undef MAX_IMAGE_INFO_LEN
1244 return space_image !=
nullptr && space_image->
image !=
nullptr;
1253 if (ibuf !=
nullptr) {
SpaceImage * CTX_wm_space_image(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
RenderSlot * BKE_image_get_renderslot(Image *ima, int index)
ImBuf * BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **r_lock)
bool BKE_image_has_alpha(Image *image)
void BKE_image_user_frame_calc(Image *ima, ImageUser *iuser, int cfra)
bool BKE_image_has_filepath(const Image *ima)
RenderPass * BKE_image_multilayer_index(RenderResult *rr, ImageUser *iuser)
void BKE_image_release_ibuf(Image *ima, ImBuf *ibuf, void *lock)
bool BKE_image_is_dirty(Image *image)
void BKE_image_release_renderresult(Scene *scene, Image *ima, RenderResult *render_result)
int BKE_image_user_frame_get(const ImageUser *iuser, int cfra, bool *r_is_in_range)
bool BKE_image_has_anim(Image *image)
bool BKE_image_is_stereo(const Image *ima)
bool BKE_image_is_multiview(const Image *ima)
bool BKE_image_has_packedfile(const Image *image)
bool BKE_image_is_animated(Image *image)
RenderResult * BKE_image_acquire_renderresult(Scene *scene, Image *ima)
void BKE_image_multiview_index(const Image *ima, ImageUser *iuser)
@ PANEL_TYPE_DEFAULT_CLOSED
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH_INDEX(type, var, list, index_var)
int BLI_listbase_count_at_most(const struct ListBase *listbase, int count_max) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
struct LinkData * BLI_genericNodeN(void *data)
void * BLI_findstring_ptr(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void void void const char * BLI_path_basename(const char *path) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT
#define STRNCPY(dst, src)
#define SNPRINTF(dst, format,...)
size_t BLI_snprintf_rlen(char *__restrict dst, size_t dst_maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
char char size_t BLI_strncpy_rlen(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
#define BLT_I18NCONTEXT_DEFAULT_BPYRNA
@ R_IMF_IMTYPE_MULTILAYER
@ R_IMF_COLOR_MANAGEMENT_OVERRIDE
bool ED_image_slot_cycle(Image *image, int direction)
void ED_region_image_metadata_panel_draw(ImBuf *ibuf, uiLayout *layout)
const char * GPU_texture_format_name(eGPUTextureFormat format)
bool IMB_colormanagement_space_name_is_data(const char *name)
eGPUTextureFormat IMB_gpu_get_texture_format(const ImBuf *ibuf, bool high_bitdepth, bool use_grayscale)
int IMB_anim_get_duration(ImBufAnim *anim, IMB_Timecode_Type tc)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
uiBut * uiDefButS(uiBlock *block, int type, int retval, blender::StringRef str, int x, int y, short width, short height, short *poin, float min, float max, const char *tip)
void uiLayoutSetActive(uiLayout *layout, bool active)
void uiTemplateColorspaceSettings(uiLayout *layout, PointerRNA *ptr, const char *propname)
void uiLayoutSetEnabled(uiLayout *layout, bool enabled)
uiBut * uiDefBut(uiBlock *block, int type, int retval, blender::StringRef str, int x, int y, short width, short height, void *poin, float min, float max, const char *tip)
void uiItemL(uiLayout *layout, const char *name, int icon)
uiBlock * uiLayoutGetBlock(uiLayout *layout)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
void UI_but_func_menu_step_set(uiBut *but, uiMenuStepFunc func)
void uiLayoutSetAlignment(uiLayout *layout, char alignment)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiItemS(uiLayout *layout)
void UI_but_type_set_menu_from_pulldown(uiBut *but)
uiBut * uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, blender::StringRef str, int x, int y, short width, short height, const char *tip)
void uiTemplateColormanagedViewSettings(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname)
void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname)
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep)
void UI_block_funcN_set(uiBlock *block, uiButHandleNFunc funcN, void *argN, void *arg2, uiButArgNFree func_argN_free_fn=MEM_freeN, uiButArgNCopy func_argN_copy_fn=MEM_dupallocN)
void uiTemplateID(uiLayout *layout, const bContext *C, PointerRNA *ptr, const char *propname, const char *newop, const char *openop, const char *unlinkop, int filter=UI_TEMPLATE_ID_FILTER_ALL, bool live_icon=false, const char *text=nullptr)
uiLayout * uiLayoutColumn(uiLayout *layout, bool align)
void UI_block_layout_set_current(uiBlock *block, uiLayout *layout)
void UI_but_funcN_set(uiBut *but, uiButHandleNFunc funcN, void *argN, void *arg2, uiButArgNFree func_argN_free_fn=MEM_freeN, uiButArgNCopy func_argN_copy_fn=MEM_dupallocN)
uiBut * uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int index, const char *name, int icon, int x, int y, int width, int height)
void uiItemR(uiLayout *layout, PointerRNA *ptr, const char *propname, eUI_Item_Flag flag, const char *name, int icon)
void uiLayoutSetContextPointer(uiLayout *layout, const char *name, PointerRNA *ptr)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
input_tx image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "preview_img") .compute_source("compositor_compute_preview.glsl") .do_static_compilation(true)
void *(* MEM_mallocN)(size_t len, const char *str)
void *(* MEM_callocN)(size_t len, const char *str)
bool RE_HasCombinedLayer(const RenderResult *result)
RenderView * RE_RenderViewGetById(RenderResult *rr, const int view_id)
bool RE_RenderResult_is_stereo(const RenderResult *result)
PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
PropertyType RNA_property_type(PropertyRNA *prop)
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
const char * RNA_struct_identifier(const StructRNA *type)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
bool RE_passes_have_name(RenderLayer *rl)
bool RE_layers_have_name(RenderResult *result)
char filepath[IMB_FILEPATH_SIZE]
ImBufFloatBuffer float_buffer
ImBufByteBuffer byte_buffer
ColorManagedColorspaceSettings colorspace_settings
void(* draw)(const bContext *C, Panel *panel)
char idname[BKE_ST_MAXNAME]
bool(* poll)(const bContext *C, PanelType *pt)
char translation_context[BKE_ST_MAXNAME]
char category[BKE_ST_MAXNAME]
char label[BKE_ST_MAXNAME]
void * BKE_image_get_tile
void WM_event_add_notifier(const bContext *C, uint type, void *reference)