|
1 /* |
|
2 * Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Definition of MHuiCanvasWsGc. |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 #ifndef __HUICANVASWSGC_H__ |
|
21 #define __HUICANVASWSGC_H__ |
|
22 |
|
23 |
|
24 #include <e32cmn.h> |
|
25 #include <e32std.h> |
|
26 #include <e32base.h> |
|
27 #include <e32def.h> |
|
28 #include "huicanvastexturecache.h" |
|
29 #include "uiacceltk/HuiCanvasVisual.h" |
|
30 #include "HuiRenderPlugin.h" |
|
31 #include "uiacceltk/HuiGc.h" |
|
32 #include "uiacceltk/HuiPanic.h" |
|
33 #include "uiacceltk/HuiUtil.h" |
|
34 #include "uiacceltk/HuiStatic.h" |
|
35 #include "uiacceltk/HuiEnv.h" |
|
36 #include "uiacceltk/HuiControl.h" |
|
37 #include "uiacceltk/HuiVisual.h" |
|
38 #include "uiacceltk/HuiTextMesh.h" |
|
39 #include "uiacceltk/HuiCanvasCmdBufferReader.h" |
|
40 #include "huicanvasgc.h" |
|
41 #include "HuiRenderSurface.h" |
|
42 #include "huicanvastexturecache.h" |
|
43 #include "huicanvasbackground.h" |
|
44 #include <graphics/wsgraphicscontext.h> |
|
45 #include <e32cmn.h> |
|
46 #include <AknLayoutFont.h> |
|
47 |
|
48 enum THuiCanvasWsGcType |
|
49 { |
|
50 /** HW accelerated. All window drawing utilizes HW acceleration. */ |
|
51 EHuiCanvasWsHw, |
|
52 /** SW/HW accelerated. Window internal drawing is done with SW, window "composition" with HW */ |
|
53 EHuiCanvasWsSw, |
|
54 /** Not accelerated. Drawing is done to internal bitmaps, use SetCapturingBufferL() to get window content */ |
|
55 EHuiCanvasWsBit |
|
56 }; |
|
57 |
|
58 /** |
|
59 * This class is used internally by the toolkit and thus should |
|
60 * not be used by the applications directly. |
|
61 */ |
|
62 class CHuiCanvasWsGc : public CBase |
|
63 { |
|
64 |
|
65 public: |
|
66 virtual void WsBitBltL(TInt aBitmapHandle, TPoint aPoint)= 0; |
|
67 virtual void WsBitBltRectL(TInt aBitmapHandle, TPoint aPoint, TRect aRect) = 0; |
|
68 virtual void WsBitBltMaskedL(TInt aBitmapHandle, TInt aMaskHandle, TInt aInvertMask, TPoint aPoint, TRect aRect) = 0; |
|
69 virtual void WsBitBltMaskedPointL(TInt aBitmapHandle, TInt aMaskHandle, TPoint aPoint1, TPoint aPoint2, TRect aRect) = 0; |
|
70 |
|
71 virtual void WsResetClippingRegionL() = 0; |
|
72 virtual void WsClearL()=0; |
|
73 virtual void WsClearRectL(TRect& aRect) =0 ; |
|
74 virtual void WsResetBrushPatternL() = 0; |
|
75 virtual void WsResetFontL() = 0; |
|
76 virtual void WsDrawArcL(TPoint aPoint1, TPoint aPoint2, TRect aRect) = 0; |
|
77 virtual void WsDrawPieL(TPoint aPoint1, TPoint aPoint2, TRect aRect) = 0; |
|
78 virtual void WsDrawBitmap1L(TInt aBitmapHandle, TRect aRect) = 0; |
|
79 virtual void WsDrawBitmap2L(TInt aBitmapHandle, TRect aRect1, TRect aRect2) = 0; |
|
80 virtual void WsDrawBitmap3L(TInt aBitmapHandle, TPoint aPoint) = 0; //XXX_CFbsBitGc_Hack Remove!!! |
|
81 virtual void WsDrawBitmapMaskedL(TInt aBitmapHandle, TInt aMaskHandle, TInt aInvertMask, TRect& aRect1, TRect& aRect2) = 0; |
|
82 virtual void WsDrawRoundRectL(TPoint aPoint, TRect& aRect) = 0; |
|
83 virtual void WsDrawPolyLineL(CArrayFix<TPoint>* aPointerArray) = 0; |
|
84 virtual void WsDrawPolyLineNoEndPointL(TPoint* aPointerArray, TInt aCount)= 0; |
|
85 virtual void WsDrawPolygonL(CArrayFix<TPoint>* aPointerArray, TInt aFillRule ) = 0; |
|
86 virtual void WsDrawEllipseL(TRect& aRect) = 0; |
|
87 virtual void WsDrawLineL(TPoint& aStart, TPoint& aEnd) = 0; |
|
88 virtual void WsDrawLineToL(TPoint& aPoint) = 0; |
|
89 virtual void WsDrawLineByL(TPoint& aPoint) = 0; |
|
90 virtual void WsDrawRectL(TRect& aRect) = 0; |
|
91 virtual void WsDrawText1L(TPtr& aTextValue, THuiCanvasTextParameters& aTextParameters) = 0; |
|
92 virtual void WsDrawText2L(TPtr& aTextValue, TPoint& aPoint,THuiCanvasTextParameters& aTextParameters) = 0; |
|
93 virtual void WsDrawText3L(TPtr& aTextValue, TRect& aRect, THuiCanvasTextParameters& aTextParameters) = 0; |
|
94 virtual void WsDrawText4L(TPtr& aTextValue, TRect& aRect, TInt aBaselineOffset, TInt aTextAlign , TInt aTextMargin ,THuiCanvasTextParameters& aTextParameters) = 0; |
|
95 virtual void WsDrawText5L(TPtr& aTextValue, TRect& aRect, TInt aBaselineOffset, TInt aTextAlign , TInt aTextMargin ,TInt aTextWidth, THuiCanvasTextParameters& aTextParameters) = 0; //XXX_CFbsBitGc_Hack Remove!!! |
|
96 virtual void WsDrawTextVertical1L(TPtr& aTextValue, TInt aTextUp, THuiCanvasTextParameters& aTextParameters) = 0; |
|
97 virtual void WsDrawTextVertical2L(TPtr& aTextValue, TInt aTextUp,TPoint& aPoint, THuiCanvasTextParameters& aTextParameters) = 0; |
|
98 virtual void WsDrawTextVertical3L(TPtr& aTextValue, TInt aTextUp, TRect& aRect, THuiCanvasTextParameters& aTextParameters) = 0; |
|
99 virtual void WsDrawTextVertical4L(TPtr& aTextValue, TRect& aRect, TInt aBaselineOffset, TInt aTextUp, TInt aTextAlign, TInt aTextMargin, THuiCanvasTextParameters& aTextParameters) = 0; |
|
100 virtual void WsDrawTextVertical5L(TPtr& aTextValue, TRect& aRect, TInt aBaselineOffset, TInt aTextUp, TInt aTextAlign, TInt aTextMargin, TInt aTextWidth, THuiCanvasTextParameters& aTextParameters) = 0; |
|
101 virtual void WsMoveToL(TPoint& aPoint) = 0; |
|
102 virtual void WsMoveByL(TPoint& aPoint) = 0; |
|
103 virtual void WsPlotL(TPoint& aPoint) = 0; |
|
104 virtual void WsResetL() = 0; |
|
105 virtual void WsSetBrushColorL(TRgb aColor) = 0; |
|
106 virtual void WsSetBrushOriginL(TPoint& aPoint) = 0; |
|
107 virtual void WsSetBrushStyleL(TInt aStyle) = 0; |
|
108 virtual void WsSetClippingRegionL(RRegion& aRegion) = 0; |
|
109 virtual void WsSetDrawModeL(TInt aDrawModew) = 0; |
|
110 virtual void WsSetOriginL(TPoint& aOrigin)= 0; |
|
111 virtual void WsSetPenColorL(TRgb aColor) = 0; |
|
112 virtual void WsSetPenStyleL(TInt aStyle) = 0; |
|
113 virtual void WsSetPenSizeL(TInt aWidth, TInt aHeight) = 0; |
|
114 virtual void WsSetTextShadowColorL(TRgb aColor) = 0; |
|
115 virtual void WsSetCharJustificationL(TInt aExcessiveWidth, TInt aNumGap) = 0; |
|
116 virtual void WsSetWordJustificationL(TInt aExcessiveWidth, TInt aNumGap) = 0; |
|
117 virtual void WsSetUnderlineStyleL(TInt aValue) = 0; |
|
118 virtual void WsSetBrushPatternL(TInt aValue) = 0; |
|
119 // virtual void SetBrushPattern(TInt aFbsBitmapHandle) = 0; |
|
120 virtual void WsSetFontL(TInt aFontId) = 0; |
|
121 |
|
122 // CFbsBitGc functionality used by Wserv for its internal operations |
|
123 virtual void WsCopyRectL(TPoint& aPoint, TRect& aRect) = 0; |
|
124 virtual void WsCopySettingsL() = 0; |
|
125 virtual void WsUpdateJustificationL(TPtr& aTextValue) = 0; |
|
126 virtual void WsUpdateJustificationVerticalL(TInt aValue, TPtr& aTextValue) = 0; |
|
127 virtual void WsSetFontNoDuplicateL(TInt aCurrentFont) = 0; |
|
128 |
|
129 virtual void WsSetClippingRectL(TRect& aRect) = 0; |
|
130 virtual void WsCancelClippingRectL() = 0; |
|
131 virtual void WsSetFadedL(TInt& aFaded) = 0; |
|
132 virtual void WsSetFadingParametersL(TInt aFaded1, TInt aFaded2) = 0; |
|
133 virtual void WsFadeAreaL(RRegion& aRegion) = 0; |
|
134 virtual void WsMapColorsL() = 0; |
|
135 virtual void WsSetUserDisplayModeL(TInt aMode) = 0; |
|
136 virtual void WsUseFontL(TInt aCurrentFont) = 0; |
|
137 |
|
138 // Custom gc commands |
|
139 virtual void WsCombinedBitBltMaskedL(TRect aDestinationRect, const RArray<THuiCachedCombinedImageParams>& aBlits) = 0; |
|
140 |
|
141 // WS painter functionality |
|
142 virtual void BeginActionL(TInt aAction, TRect aDisplayRect,const CHuiCanvasVisual& aUser, TBool aIsCachePrepared, const TRegion& aUpdateRegion)= 0; |
|
143 virtual void EnableUpdateRegion(const TRegion& aUpdateRegion, TBool aClear)=0; |
|
144 virtual void DisableUpdateRegion() = 0; |
|
145 virtual void EndActionL(const TRegion& aUpdateRegion, TBool aUpdateDisplay)= 0; |
|
146 virtual TInt SetCapturingBufferL(CFbsBitmap* aTarget) = 0; |
|
147 virtual CHuiCanvasGc& CanvasGc() const = 0; |
|
148 virtual void SetPositionDelta( TPoint& aPoint ) = 0; |
|
149 virtual void ClearCache() = 0; |
|
150 |
|
151 virtual void SetRelativeOrientation(CHuiGc::TOrientation aOrientation) = 0; |
|
152 |
|
153 virtual TBool IsRenderBufferEnabled() const = 0; |
|
154 virtual TBool IsRenderBufferPrepared() const = 0; |
|
155 virtual TBool IsRenderBufferInitialized() const = 0; |
|
156 |
|
157 virtual TInt EnableRenderbuffer(TBool aEnable = ETrue) = 0; |
|
158 virtual THuiCanvasWsGcType Type() const = 0; |
|
159 |
|
160 |
|
161 ~CHuiCanvasWsGc(){} |
|
162 }; |
|
163 #endif // __HUICANVASWSGC_H__ |