11 #include "guilib/DirtyRegion.h" 12 #include "threads/CriticalSection.h" 13 #include "utils/ColorUtils.h" 23 enum DISPLAY_EFFECT { EFFECT_NONE = 0, EFFECT_FLOAT, EFFECT_ZOOM, EFFECT_RANDOM, EFFECT_PANORAMA, EFFECT_NO_TIMEOUT };
24 enum TRANSITION_EFFECT { TRANSITION_NONE = 0, FADEIN_FADEOUT, CROSSFADE, TRANSITION_ZOOM, TRANSITION_ROTATE };
28 TRANSITION_EFFECT type = TRANSITION_NONE;
33 static std::unique_ptr<CSlideShowPic> CreateSlideShowPicture();
38 void SetTexture(
int iSlideNumber,
39 std::unique_ptr<CTexture> pTexture,
40 DISPLAY_EFFECT dispEffect = EFFECT_RANDOM,
41 TRANSITION_EFFECT transEffect = FADEIN_FADEOUT);
42 void UpdateTexture(std::unique_ptr<CTexture> pTexture);
44 bool IsLoaded()
const {
return m_bIsLoaded; }
45 void UnLoad() { m_bIsLoaded =
false; }
46 void Process(
unsigned int currentTime, CDirtyRegionList &dirtyregions);
49 void Reset(DISPLAY_EFFECT dispEffect = EFFECT_RANDOM, TRANSITION_EFFECT transEffect = FADEIN_FADEOUT);
50 DISPLAY_EFFECT DisplayEffect()
const {
return m_displayEffect; }
51 bool DisplayEffectNeedChange(DISPLAY_EFFECT newDispEffect)
const;
52 bool IsStarted()
const {
return m_iCounter > 0; }
53 bool IsFinished()
const {
return m_bIsFinished; }
54 bool DrawNextImage()
const {
return m_bDrawNextImage; }
56 int GetWidth()
const {
return (
int)m_fWidth; }
57 int GetHeight()
const {
return (
int)m_fHeight; }
60 bool StartTransition();
61 int GetTransitionTime(
int iType)
const;
62 void SetTransitionTime(
int iType,
int iTime);
64 int SlideNumber()
const {
return m_iSlideNumber; }
66 void Zoom(
float fZoomAmount,
bool immediate =
false);
67 void Rotate(
float fRotateAngle,
bool immediate =
false);
68 void Pause(
bool bPause);
69 void SetInSlideshow(
bool slideshow);
70 void SetOriginalSize(
int iOriginalWidth,
int iOriginalHeight,
bool bFullSize);
71 bool FullSize()
const {
return m_bFullSize; }
72 int GetOriginalWidth();
73 int GetOriginalHeight();
75 void Move(
float dX,
float dY);
76 float GetZoom()
const {
return m_fZoomAmount; }
79 bool m_bCanMoveHorizontally;
80 bool m_bCanMoveVertically;
83 virtual void Render(
float* x,
float* y,
CTexture* pTexture, UTILS::COLOR::Color color) = 0;
86 void SetTexture_Internal(
int iSlideNumber,
87 std::unique_ptr<CTexture> pTexture,
88 DISPLAY_EFFECT dispEffect = EFFECT_RANDOM,
89 TRANSITION_EFFECT transEffect = FADEIN_FADEOUT);
90 void UpdateVertices(
float cur_x[4],
float cur_y[4],
const float new_x[4],
const float new_y[4], CDirtyRegionList &dirtyregions);
92 std::unique_ptr<CTexture> m_pImage;
95 int m_iOriginalHeight;
99 bool m_bDrawNextImage;
101 std::string m_strFileName;
104 UTILS::COLOR::Color m_alpha = 0;
115 float m_ax[4]{}, m_ay[4]{};
116 float m_sx[4]{}, m_sy[4]{};
117 float m_bx[4]{}, m_by[4]{};
118 float m_ox[4]{}, m_oy[4]{};
121 DISPLAY_EFFECT m_displayEffect = EFFECT_NONE;
126 float m_fTransitionAngle;
127 float m_fTransitionZoom;
133 bool m_bTransitionImmediately;
135 CCriticalSection m_textureAccess;
Definition: SlideShowPicture.h:20
void Process(unsigned int currentTime, CDirtyRegionList &dirtyregions)
Definition: SlideShowPicture.cpp:273
Base texture class, subclasses of which depend on the render spec (DX, GL etc.)
Definition: Texture.h:34
Definition: SlideShowPicture.h:26