7 #include "sdlepocapi.h"
11 typedef void (*TCopyFunction
)(const CDsa
& aDsa
, TUint32
* aTarget
, const TUint8
* aSource
, TInt aBytes
, TInt aLineLen
);
13 NONSHARABLE_CLASS(CDsa
) : public CBase
18 ELastDsaRequest
= EpocSdlEnv::ELastService
,
21 inline TBool
IsDsaAvailable() const;
23 static CDsa
* CreateL(RWsSession
& aSession
);
27 TUint8
* LockHwSurface();
28 TInt
AllocSurface(const TSize
& aSize
, TDisplayMode aMode
);
29 inline TDisplayMode
DisplayMode() const;
31 TInt
SetPalette(TInt aFirst
, TInt aCount
, TUint32
* aPalette
);
32 void LockPalette(TBool aLock
);
33 TBool
AddUpdateRect(const TUint8
* aBits
, const TRect
& aUpdateRect
, const TRect
& aRect
);
34 void UpdateSwSurface();
35 TSize
WindowSize() const;
39 TBool
Stopped() const;
40 RWsSession
& Session();
42 CDsa
* CreateGlesDsaL();
48 virtual void ConstructL(RWindow
& aWindow
, CWsScreenDevice
& aDevice
);
49 virtual void SetUpdating(TBool aUpdate
);
51 virtual TUint8
* LockSurface() = 0;
52 virtual void UnlockHwSurface() = 0;
53 virtual void Resume() = 0;
55 virtual void DoBlt(CFbsBitmap
& aBmp
);
57 bool m_updateWholeScreen
;
61 inline const TSize
& SwSize() const;
62 inline const TRect
& HwRect() const;
64 inline const TRect
& ScreenRect() const;
66 CDsa(RWsSession
& aSession
);
76 ESdlThreadSuspend
= 0x100,
77 ESdlThreadExplicitStop
= 0x200
81 virtual void CreateSurfaceL() = 0;
83 void ClipCopy(TUint8
* aTarget
, const TUint8
* aSource
, const TRect
& aUpdateRect
, const TRect
& aSourceRect
) const;
84 static void Copy256(const CDsa
& aDsa
, TUint32
* aTarget
, const TUint8
* aSource
, TInt aBytes
, TInt
);
85 static void CopySlow(const CDsa
& aDsa
, TUint32
* aTarget
, const TUint8
* aSource
, TInt aBytes
, TInt
);
86 static void CopyMem(const CDsa
& aDsa
, TUint32
* aTarget
, const TUint8
* aSource
, TInt aBytes
, TInt
);
88 void SetCopyFunction();
96 TDisplayMode iSourceMode
;
97 TDisplayMode iTargetMode
;
99 TCopyFunction iCopyFunction
;
101 TCopyFunction iCFTable
[3];
109 inline TDisplayMode
CDsa::DisplayMode() const
114 inline const TRect
& CDsa::HwRect() const
119 inline const TSize
& CDsa::SwSize() const
124 inline TBool
CDsa::IsDsaAvailable() const
126 return iStateFlags
& ERunning
;
129 inline const TRect
& CDsa::ScreenRect() const