Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_animation_frame_cache.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2015 Jouni Pentikäinen <joupent@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#ifndef KIS_ANIMATION_FRAME_CACHE_H
8
#define KIS_ANIMATION_FRAME_CACHE_H
9
10
#include <QImage>
11
#include <QObject>
12
13
#include "kritaui_export.h"
14
#include "
kis_types.h
"
15
#include "
kis_shared.h
"
16
17
class
KisImage
;
18
class
KisImageAnimationInterface
;
19
class
KisTimeSpan
;
20
class
KisRegion
;
21
22
class
KisOpenGLImageTextures
;
23
typedef
KisSharedPtr<KisOpenGLImageTextures>
KisOpenGLImageTexturesSP
;
24
25
class
KisOpenGLUpdateInfo
;
26
typedef
KisSharedPtr<KisOpenGLUpdateInfo>
KisOpenGLUpdateInfoSP
;
27
28
class
KRITAUI_EXPORT
KisAnimationFrameCache
:
public
QObject,
public
KisShared
29
{
30
Q_OBJECT
31
32
public
:
33
34
static
KisAnimationFrameCacheSP
getFrameCache(
KisOpenGLImageTexturesSP
textures);
35
static
const
QList<KisAnimationFrameCache*>
caches();
36
static
const
KisAnimationFrameCacheSP
cacheForImage(
KisImageWSP
image);
37
38
KisAnimationFrameCache
(
KisOpenGLImageTexturesSP
textures);
39
~KisAnimationFrameCache
()
override
;
40
41
QImage
getFrame
(
int
time);
42
bool
uploadFrame(
int
time);
43
44
bool
shouldUploadNewFrame(
int
newTime,
int
oldTime)
const
;
45
46
enum
CacheStatus
{
47
Cached
,
48
Uncached
,
49
};
50
51
CacheStatus frameStatus(
int
time)
const
;
52
bool
tryGlueSameFrames(
const
KisTimeSpan
&range);
53
54
55
KisImageWSP
image();
56
57
KisOpenGLUpdateInfoSP
fetchFrameData(
int
time,
KisImageSP
image,
const
KisRegion
&requestedRegion)
const
;
58
void
addConvertedFrameData(
KisOpenGLUpdateInfoSP
info,
int
time);
59
64
void
dropLowQualityFrames(
const
KisTimeSpan
&range,
const
QRect ®ionOfInterest,
const
QRect &minimalRect);
65
66
bool
framesHaveValidRoi(
const
KisTimeSpan
&range,
const
QRect ®ionOfInterest);
67
68
Q_SIGNALS:
69
void
changed
();
70
71
private
:
72
73
struct
Private
;
74
QScopedPointer<Private>
m_d
;
75
76
private
Q_SLOTS:
77
void
framesChanged(
const
KisTimeSpan
&range,
const
QRect &
rect
);
78
void
slotConfigChanged();
79
};
80
81
#endif
KisAnimationFrameCache
Definition
kis_animation_frame_cache.h:29
KisAnimationFrameCache::getFrame
QImage getFrame(int time)
KisAnimationFrameCache::m_d
QScopedPointer< Private > m_d
Definition
kis_animation_frame_cache.h:74
KisAnimationFrameCache::changed
void changed()
KisAnimationFrameCache::CacheStatus
CacheStatus
Definition
kis_animation_frame_cache.h:46
KisAnimationFrameCache::Uncached
@ Uncached
Definition
kis_animation_frame_cache.h:48
KisAnimationFrameCache::Cached
@ Cached
Definition
kis_animation_frame_cache.h:47
KisImageAnimationInterface
Definition
kis_image_animation_interface.h:28
KisImage
Definition
kis_image.h:64
KisOpenGLImageTextures
Definition
kis_opengl_image_textures.h:37
KisOpenGLUpdateInfo
Definition
kis_update_info.h:57
KisRegion
Definition
KisRegion.h:28
KisSharedPtr
Definition
kis_shared_ptr.h:57
KisShared
Definition
kis_shared.h:14
KisTimeSpan
Definition
kis_time_span.h:20
KisWeakSharedPtr< KisImage >
QList
Definition
KisQStringListFwd.h:16
KisOpenGLUpdateInfoSP
KisSharedPtr< KisOpenGLUpdateInfo > KisOpenGLUpdateInfoSP
Definition
kis_animation_frame_cache.h:26
KisOpenGLImageTexturesSP
KisSharedPtr< KisOpenGLImageTextures > KisOpenGLImageTexturesSP
Definition
kis_animation_frame_cache.h:23
kis_shared.h
kis_types.h
Private
Definition
SvgTransformParser.cpp:20
rect
Definition
xcftools.h:129
libs
ui
kis_animation_frame_cache.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52