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();
38 TBool
Stopped() const;
39 RWsSession
& Session();
41 CDsa
* CreateGlesDsaL();
47 virtual void ConstructL(RWindow
& aWindow
, CWsScreenDevice
& aDevice
);
48 virtual void SetUpdating(TBool aUpdate
);
50 virtual TUint8
* LockSurface() = 0;
51 virtual void UnlockHwSurface() = 0;
52 virtual void Resume() = 0;
54 virtual void DoBlt(CFbsBitmap
& aBmp
);
56 bool m_updateWholeScreen
;
59 CDsa(RWsSession
& aSession
);
68 ESdlThreadSuspend
= 0x100,
69 ESdlThreadExplicitStop
= 0x200
73 virtual void CreateSurfaceL(const TSize
& aSize
) = 0;
75 void ClipCopy(TUint8
* aTarget
, const TUint8
* aSource
, const TRect
& aUpdateRect
, const TRect
& aSourceRect
) const;
76 static void Copy256(const CDsa
& aDsa
, TUint32
* aTarget
, const TUint8
* aSource
, TInt aBytes
, TInt
);
77 static void CopySlow(const CDsa
& aDsa
, TUint32
* aTarget
, const TUint8
* aSource
, TInt aBytes
, TInt
);
78 static void CopyMem(const CDsa
& aDsa
, TUint32
* aTarget
, const TUint8
* aSource
, TInt aBytes
, TInt
);
80 void SetCopyFunction();
87 TDisplayMode iSourceMode
;
88 TDisplayMode iTargetMode
;
90 TCopyFunction iCopyFunction
;
92 TCopyFunction iCFTable
[3];
98 inline TDisplayMode
CDsa::DisplayMode() const
103 inline TBool
CDsa::IsDsaAvailable() const
105 return iStateFlags
& ERunning
;