32 if (m_d->intendedFrame != frame ) {
36 KisCanvasAnimationState* state = m_d->canvas->animationState();
37 if (state->playbackState() != PLAYING) {
38 m_d->intendedFrame = frame;
39 Q_EMIT sigFrameChange();
43 if (
m_d->displayedFrame != frame) {
44 m_d->displayedFrame = frame;
45 Q_EMIT sigFrameDisplayRefreshed();
51 if (m_d->intendedFrame != frame) {
53 KisCanvasAnimationState* state = m_d->canvas->animationState();
54 if (state->playbackState() != PLAYING) {
55 m_d->intendedFrame = frame;
56 Q_EMIT sigFrameChange();
60 Q_EMIT sigFrameRefreshSkipped();
63 m_d->displayedFrame = m_d->canvas->image()->animationInterface()->currentUITime();
64 m_d->intendedFrame = m_d->displayedFrame;
76 if (frame !=
m_d->intendedFrame) {
77 m_d->intendedFrame = frame;
92 m_d->canvas->updateCanvas();
93 m_d->displayedFrame = frame;
98 if (
m_d->canvas->image()->tryBarrierLock(
true)) {
99 m_d->canvas->image()->unlock();
110 return m_d->intendedFrame;
115 return m_d->displayedFrame;
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
CacheStatus frameStatus(int time) const
bool shouldUploadNewFrame(int newTime, int oldTime) const
bool uploadFrame(int time)
bool shouldUploadFrame(KisAnimationFrameCacheSP cache, int from, int to)
bool displayFrame(int frame, bool forceReproject)
Tell the DisplayProxy to show a new frame.
bool needsReprojection(KisAnimationFrameCacheSP cache, int from, int to)
int activeKeyframe() const
Get the active keyframe. This is the latest unique frame that is actually visible....
KisFrameDisplayProxy(class KisCanvas2 *canvas, QObject *parent=nullptr)
QScopedPointer< struct Private > m_d
void sigFrameDisplayRefreshed()
int activeFrame() const
Gets the active frame, the frame that is intended to be shown. This should always reflect the actual ...
KisImageWSP image() const
void switchCurrentTimeAsync(int frameId, SwitchTimeAsyncFlags options=STAO_NONE)
void sigFrameRegenerationSkipped(int time)
sigFrameRegenerationSkipped notified when async frame changes are skipped.
int currentUITime() const
@ STAO_FORCE_REGENERATION
bool hasAnimation() const
void sigFrameRegenerated(int time)
sigFrameRegenerated notifies when internal frame has been fully regenerated.
KisImageAnimationInterface * animationInterface() const