forked from bartvdbraak/blender
Code Cleanup: replace checks for ima->source with BKE_image_is_animated
This commit is contained in:
parent
800e2283aa
commit
c48c62a831
@ -236,6 +236,7 @@ float *BKE_image_get_float_pixels_for_frame(struct Image *image, int frame);
|
|||||||
/* Guess offset for the first frame in the sequence */
|
/* Guess offset for the first frame in the sequence */
|
||||||
int BKE_image_sequence_guess_offset(struct Image *image);
|
int BKE_image_sequence_guess_offset(struct Image *image);
|
||||||
|
|
||||||
|
bool BKE_image_is_animated(struct Image *image);
|
||||||
bool BKE_image_is_dirty(struct Image *image);
|
bool BKE_image_is_dirty(struct Image *image);
|
||||||
void BKE_image_file_format_set(struct Image *image, int ftype);
|
void BKE_image_file_format_set(struct Image *image, int ftype);
|
||||||
bool BKE_image_has_loaded_ibuf(struct Image *image);
|
bool BKE_image_has_loaded_ibuf(struct Image *image);
|
||||||
|
@ -1010,7 +1010,7 @@ void BKE_image_all_free_anim_ibufs(int cfra)
|
|||||||
Image *ima;
|
Image *ima;
|
||||||
|
|
||||||
for (ima = G.main->image.first; ima; ima = ima->id.next)
|
for (ima = G.main->image.first; ima; ima = ima->id.next)
|
||||||
if (ELEM(ima->source, IMA_SRC_SEQUENCE, IMA_SRC_MOVIE))
|
if (BKE_image_is_animated(ima))
|
||||||
BKE_image_free_anim_ibufs(ima, cfra);
|
BKE_image_free_anim_ibufs(ima, cfra);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2254,7 +2254,7 @@ static void image_tag_frame_recalc(Image *ima, ImageUser *iuser, void *customdat
|
|||||||
{
|
{
|
||||||
Image *changed_image = customdata;
|
Image *changed_image = customdata;
|
||||||
|
|
||||||
if (ima == changed_image && ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
|
if (ima == changed_image && BKE_image_is_animated(ima)) {
|
||||||
iuser->flag |= IMA_NEED_FRAME_RECALC;
|
iuser->flag |= IMA_NEED_FRAME_RECALC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3552,6 +3552,16 @@ int BKE_image_sequence_guess_offset(Image *image)
|
|||||||
return atoi(num);
|
return atoi(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks the image buffer changes (not keyframed values)
|
||||||
|
*
|
||||||
|
* to see if we need to call #BKE_image_user_check_frame_calc
|
||||||
|
*/
|
||||||
|
bool BKE_image_is_animated(Image *image)
|
||||||
|
{
|
||||||
|
return ELEM(image->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE);
|
||||||
|
}
|
||||||
|
|
||||||
bool BKE_image_is_dirty(Image *image)
|
bool BKE_image_is_dirty(Image *image)
|
||||||
{
|
{
|
||||||
bool is_dirty = false;
|
bool is_dirty = false;
|
||||||
|
@ -245,7 +245,7 @@ void packAll(Main *bmain, ReportList *reports)
|
|||||||
ima->packedfile = newPackedFile(reports, ima->name, ID_BLEND_PATH(bmain, &ima->id));
|
ima->packedfile = newPackedFile(reports, ima->name, ID_BLEND_PATH(bmain, &ima->id));
|
||||||
tot ++;
|
tot ++;
|
||||||
}
|
}
|
||||||
else if (ELEM(ima->source, IMA_SRC_SEQUENCE, IMA_SRC_MOVIE)) {
|
else if (BKE_image_is_animated(ima)) {
|
||||||
BKE_reportf(reports, RPT_WARNING, "Image '%s' skipped, movies and image sequences not supported",
|
BKE_reportf(reports, RPT_WARNING, "Image '%s' skipped, movies and image sequences not supported",
|
||||||
ima->id.name + 2);
|
ima->id.name + 2);
|
||||||
}
|
}
|
||||||
|
@ -1422,9 +1422,7 @@ void BKE_free_oceantex(struct OceanTex *ot)
|
|||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
bool BKE_texture_dependsOnTime(const struct Tex *texture)
|
bool BKE_texture_dependsOnTime(const struct Tex *texture)
|
||||||
{
|
{
|
||||||
if (texture->ima &&
|
if (texture->ima && BKE_image_is_animated(texture->ima)) {
|
||||||
ELEM(texture->ima->source, IMA_SRC_SEQUENCE, IMA_SRC_MOVIE))
|
|
||||||
{
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if (texture->adt) {
|
else if (texture->adt) {
|
||||||
|
@ -701,7 +701,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
|
|||||||
col = uiLayoutColumn(split, FALSE);
|
col = uiLayoutColumn(split, FALSE);
|
||||||
/* XXX Why only display fields_per_frame only for video image types?
|
/* XXX Why only display fields_per_frame only for video image types?
|
||||||
* And why allow fields for non-video image types at all??? */
|
* And why allow fields for non-video image types at all??? */
|
||||||
if (ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
|
if (BKE_image_is_animated(ima)) {
|
||||||
uiLayout *subsplit = uiLayoutSplit(col, 0.0f, FALSE);
|
uiLayout *subsplit = uiLayoutSplit(col, 0.0f, FALSE);
|
||||||
uiLayout *subcol = uiLayoutColumn(subsplit, FALSE);
|
uiLayout *subcol = uiLayoutColumn(subsplit, FALSE);
|
||||||
uiItemR(subcol, &imaptr, "use_fields", 0, NULL, ICON_NONE);
|
uiItemR(subcol, &imaptr, "use_fields", 0, NULL, ICON_NONE);
|
||||||
@ -717,7 +717,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
|
if (BKE_image_is_animated(ima)) {
|
||||||
uiItemS(layout);
|
uiItemS(layout);
|
||||||
|
|
||||||
split = uiLayoutSplit(layout, 0.0f, FALSE);
|
split = uiLayoutSplit(layout, 0.0f, FALSE);
|
||||||
|
@ -1298,7 +1298,7 @@ void GPU_free_images_anim(void)
|
|||||||
|
|
||||||
if (G.main)
|
if (G.main)
|
||||||
for (ima=G.main->image.first; ima; ima=ima->id.next)
|
for (ima=G.main->image.first; ima; ima=ima->id.next)
|
||||||
if (ELEM(ima->source, IMA_SRC_SEQUENCE, IMA_SRC_MOVIE))
|
if (BKE_image_is_animated(ima))
|
||||||
GPU_free_image(ima);
|
GPU_free_image(ima);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ static void rna_Image_unpack(Image *image, ReportList *reports, int method)
|
|||||||
if (!image->packedfile) {
|
if (!image->packedfile) {
|
||||||
BKE_report(reports, RPT_ERROR, "Image not packed");
|
BKE_report(reports, RPT_ERROR, "Image not packed");
|
||||||
}
|
}
|
||||||
else if (image->source == IMA_SRC_SEQUENCE || image->source == IMA_SRC_MOVIE) {
|
else if (BKE_image_is_animated(image)) {
|
||||||
BKE_report(reports, RPT_ERROR, "Unpacking movies or image sequences not supported");
|
BKE_report(reports, RPT_ERROR, "Unpacking movies or image sequences not supported");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -66,8 +66,9 @@ void modifier_init_texture(Scene *scene, Tex *tex)
|
|||||||
if (!tex)
|
if (!tex)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (tex->ima && ELEM(tex->ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE))
|
if (tex->ima && BKE_image_is_animated(tex->ima)) {
|
||||||
BKE_image_user_frame_calc(&tex->iuser, scene->r.cfra, 0);
|
BKE_image_user_frame_calc(&tex->iuser, scene->r.cfra, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_texture_coords(MappingInfoModifierData *dmd, Object *ob,
|
void get_texture_coords(MappingInfoModifierData *dmd, Object *ob,
|
||||||
|
@ -366,7 +366,7 @@ int ntreeCompositTagAnimated(bNodeTree *ntree)
|
|||||||
/* otherwise always tag these node types */
|
/* otherwise always tag these node types */
|
||||||
if (node->type == CMP_NODE_IMAGE) {
|
if (node->type == CMP_NODE_IMAGE) {
|
||||||
Image *ima = (Image *)node->id;
|
Image *ima = (Image *)node->id;
|
||||||
if (ima && ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
|
if (ima && BKE_image_is_animated(ima)) {
|
||||||
nodeUpdate(ntree, node);
|
nodeUpdate(ntree, node);
|
||||||
tagged = 1;
|
tagged = 1;
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ extern struct Render R;
|
|||||||
static void init_render_texture(Render *re, Tex *tex)
|
static void init_render_texture(Render *re, Tex *tex)
|
||||||
{
|
{
|
||||||
/* imap test */
|
/* imap test */
|
||||||
if (tex->ima && ELEM(tex->ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
|
if (tex->ima && BKE_image_is_animated(tex->ima)) {
|
||||||
BKE_image_user_frame_calc(&tex->iuser, re ? re->r.cfra : 0, re ? re->flag & R_SEC_FIELD:0);
|
BKE_image_user_frame_calc(&tex->iuser, re ? re->r.cfra : 0, re ? re->flag & R_SEC_FIELD:0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3622,7 +3622,7 @@ Material *RE_init_sample_material(Material *orig_mat, Scene *scene)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* update image sequences and movies */
|
/* update image sequences and movies */
|
||||||
if (tex->ima && ELEM(tex->ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
|
if (tex->ima && BKE_image_is_animated(tex->ima)) {
|
||||||
BKE_image_user_check_frame_calc(&tex->iuser, (int)scene->r.cfra, 0);
|
BKE_image_user_check_frame_calc(&tex->iuser, (int)scene->r.cfra, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user