Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/image.c
| Context not available. | |||||
| void BKE_image_user_frame_calc(Image *ima, ImageUser *iuser, int cfra) | void BKE_image_user_frame_calc(Image *ima, ImageUser *iuser, int cfra) | ||||
| { | { | ||||
| if (iuser) { | if (iuser) { | ||||
| bool is_in_range; | if (ima && BKE_image_is_animated(ima)) { | ||||
| const int framenr = BKE_image_user_frame_get(iuser, cfra, &is_in_range); | bool is_in_range; | ||||
| const int framenr = BKE_image_user_frame_get(iuser, cfra, &is_in_range); | |||||
| if (is_in_range) { | if (is_in_range) { | ||||
| iuser->flag |= IMA_USER_FRAME_IN_RANGE; | iuser->flag |= IMA_USER_FRAME_IN_RANGE; | ||||
| } | } | ||||
| else { | else { | ||||
| iuser->flag &= ~IMA_USER_FRAME_IN_RANGE; | iuser->flag &= ~IMA_USER_FRAME_IN_RANGE; | ||||
| } | } | ||||
| iuser->framenr = framenr; | iuser->framenr = framenr; | ||||
| if (ima && BKE_image_is_animated(ima) && ima->gpuframenr != framenr) { | if (ima->gpuframenr != framenr) { | ||||
| /* Note: a single texture and refresh doesn't really work when | /* Note: a single texture and refresh doesn't really work when | ||||
| * multiple image users may use different frames, this is to | * multiple image users may use different frames, this is to | ||||
| * be improved with perhaps a GPU texture cache. */ | * be improved with perhaps a GPU texture cache. */ | ||||
| ima->gpuflag |= IMA_GPU_REFRESH; | ima->gpuflag |= IMA_GPU_REFRESH; | ||||
| ima->gpuframenr = framenr; | ima->gpuframenr = framenr; | ||||
| } | |||||
| } | } | ||||
| if (iuser->ok == 0) { | if (iuser->ok == 0) { | ||||
| Context not available. | |||||