svgtopt/gfx2d/inc/Gfx2dGcInterface.h
changeset 0 d46562c3d99d
child 26 796196dd6e68
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/gfx2d/inc/Gfx2dGcInterface.h	Thu Jan 07 16:19:02 2010 +0200
@@ -0,0 +1,945 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Graphics Extension Library header file
+*
+*/
+
+
+#ifndef GFX2DGCINT_H
+#define GFX2DGCINT_H
+
+
+#include <w32std.h>
+#include <e32std.h>
+#include <bitstd.h>
+#include <badesca.h>
+#include <fbs.h>
+#include <gdi.h>
+
+#include "GfxRenderingHints.h"
+#include "GfxStroke.h"
+#include "GfxColor.h"
+
+#include "SvgBitmapFontProvider.h"
+class MGfxShape;
+class MGfxPaint;
+
+typedef enum
+{
+    SVG_CAP_BUTT                    = 0,
+    SVG_CAP_ROUND                   = 1,
+    SVG_CAP_SQUARE                  = 2,
+    SVG_INVALID_LINE_CAP            = -1
+} SVGLineCap;
+
+typedef enum
+{
+    SVG_JOIN_MITER                  = 0,
+    SVG_JOIN_ROUND                  = 1,
+    SVG_JOIN_BEVEL                  = 2,
+    SVG_INVALID_LINE_JOIN           = -1
+} SVGLineJoin;
+
+/**
+ * This class provides the interface create a graphics context.
+ *
+ *  @lib Gfx2D.lib
+ *  @since 1.0
+ */
+class CGfx2dGc : public CBase
+    {
+    public:
+
+        /**
+         * Draw the given shape.
+         *
+         * @since 1.0
+         * @param aShape : shape to draw.
+         * @return
+         */
+        virtual void                   DrawL( MGfxShape* aShape )=0;
+
+        /**
+         * Draw the given string starting at the given context coordinate,
+         * and stylized by the given parameters.
+         *
+         * @since 1.0
+         * @param aDesc : string to draw
+         * @param aX : x coordinate
+         * @param aTextAnchor : text anchor
+         * @param aTextDecoration : text decoration
+         * @param aFamilies : font family names
+         * @param aWordSpacing : spacing description for each word
+         * @param aLetterSpacing : spacing description for each letter
+         * @param aArrayRotate : angle of rotation
+         * @param aArrayX : array of x coordinates
+         * @param aArrayY : array of x coordinates
+         * @return
+         */
+        virtual void                   DrawStringL( const TDesC& aDesc,
+                                                     TFloatFixPt aX,
+                                                     TFloatFixPt aY,
+                                                     TInt8 aTextAnchor,
+                                                     TInt8 aTextDecoration,
+                                                     CDesCArrayFlat* aFamilies,
+                                                     TReal aWordSpacing,
+                                                     TReal aLetterSpacing,
+                                                     CArrayFix<TReal32>* aArrayRotate,
+                                                     CArrayFix<TFloatFixPt>* aArrayX,
+                                                     CArrayFix<TFloatFixPt>* aArrayY,
+                                                     TSize& aBoundingBoxResult,
+						     CFont*& aFont,
+						     TFontSpec& aFontSpec )=0;
+
+        /**
+         * Draw the given bitmap at the given top-left coordinates.
+         *
+         * @since 1.0
+         * @param aDesc : bitmap image to draw
+         * @param aX : x coordinate
+         * @param aY : y coordinate
+         * @return
+         */
+        virtual void                   DrawImage( CFbsBitmap* aImage,
+                                                  const TGfxRectangle2D& aImageRect,
+                                                  TBool aHasAlpha = EFalse )=0;
+
+        /**
+         * Clear the whole graphics context.
+         *
+         * @since 1.0
+         * @param
+         * @return
+         */
+        virtual void                   Clear(TUint32 aRGBA8888Color)=0;
+
+        /**
+         * Get the foreground color setting.
+         *
+         * @since 1.0
+         * @param
+         * @return foreground color.
+         */
+        virtual TGfxColor              ForegroundColor()=0;
+
+        /**
+         * Get the paint setting.
+         *
+         * @since 1.0
+         * @param
+         * @return paint.
+         */
+        virtual MGfxPaint*             Paint()=0;
+
+        /**
+         * Get the rendering hints setting.
+         *
+         * @since 1.0
+         * @param
+         * @return rendering hints.
+         */
+        virtual TGfxRenderingHints*    RenderingHints()=0;
+
+        /**
+         * Get the stroke setting.
+         *
+         * @since 1.0
+         * @param
+         * @return stroke.
+         */
+        virtual TGfxStroke             Stroke()=0;
+
+        /**
+         * Get the boundary setting.
+         *
+         * @since 1.0
+         * @param
+         * @return boundary.
+         */
+        virtual TSize                  DeviceBounds()=0;
+        /**
+         * Get the font setting.
+         *
+         * @since 1.0
+         * @param
+         * @return font.
+         */
+
+        virtual CFont*                 Font()=0;
+
+
+        /**
+         * Set the foreground color.
+         *
+         * @since 1.0
+         * @param aColor : foreground color
+         * @return
+         */
+        virtual void                   SetForegroundColor( const TGfxColor& aColor )=0;
+
+
+        /**
+         * Set the background color.
+         *
+         * @since 1.0
+         * @param aColor : background color
+         * @return
+         */
+        virtual void                   SetBackgroundColor( const TGfxColor& aColor )=0;
+
+		
+        /**
+         * Set the stroke-width.
+         *
+         * @since 3.2
+         * @param aWidth : stroke-width
+         * @return none.
+         */
+		virtual void SetStrokeWidth( const TFloatFixPt& aWidth )=0;
+        
+        
+        /**
+         * Set the paint info.
+         *
+         * @since 1.0
+         * @param aPaint : paint info
+         * @return
+         */
+        virtual void                   SetPaint( MGfxPaint* aPaint )=0;
+
+        /**
+         * Set the stroke info.
+         *
+         * @since 1.0
+         * @param aStroke : stroke info
+         * @return
+         */
+        virtual void                   SetStroke( TGfxStroke aStroke )=0;
+
+        /**
+         * Set the rendering hints.
+         *
+         * @since 1.0
+         * @param aRenderingHints : rendering hints
+         * @return
+         */
+        virtual void                   SetRenderingHints( const TGfxRenderingHints& aRenderingHints )=0;
+
+        /**
+         * Set the transform info.
+         *
+         * @since 1.0
+         * @param aTransform : transform info
+         * @return
+         */
+        virtual void                   SetTransform( const TGfxAffineTransform& aTransform )=0;
+
+        /**
+         * Set the clipping info.
+         *
+         * @since 1.0
+         * @param aClip : clipping rectangle
+         * @return
+         */
+        virtual void                   SetClip( const TGfxRectangle2D& aClip )=0;
+
+        /**
+         * Set the dash array info.
+         *
+         * @since 1.0
+         * @param aArray : array of points
+         * @param aOffset : offset point
+         * @return
+         */
+        virtual void                   SetDashArrayL( CArrayFix<TFloatFixPt>* aArray)=0;
+		virtual void					SetDashOffset( TFloatFixPt aDashOffset ) =0;
+        /**
+         * Set the font size.
+         *
+         * @since 1.0
+         * @param aFontSize : font size
+         * @return
+         */
+        virtual void                   SetFontSize( const TFloatFixPt aFontSize )=0;
+
+        /**
+         * Set the winding rule.
+         *
+         * @since 1.0
+         * @param aRule : winding rule
+         * @return
+         */
+        virtual void                   SetWindingRule( TGfxWindingRule aRule )=0;
+
+        /**
+         * Set the font weight.
+         *
+         * @since 1.0
+         * @param aFontWeight : font weight value
+         * @return
+         */
+        virtual void                   SetFontWeight( const TInt32 aFontWeight )=0;
+
+        /**
+         * Set the font style.
+         *
+         * @since 1.0
+         * @param aFontStyle : font style
+         * @return
+         */
+        virtual void                   SetFontStyle( const TInt32 aFontStyle )=0;
+
+        /**
+         * Set the font family.
+         *
+         * @since 1.0
+         * @param aFamilies : font family names
+         * @return
+         */
+        virtual void                   SetFontFamily( CDesCArrayFlat* aFamilies )=0;
+
+        /**
+         * Set the text anchor
+         *
+         * @since 1.0
+         * @param aTextAnchor : text anchor value
+         * @return
+         */
+        virtual void                   SetTextanchor( const TInt32 aTextAnchor )=0;
+
+        /**
+         * Set the text decoration
+         *
+         * @since 1.0
+         * @param aTextDecoration : text decoration value
+         * @return
+         */
+        virtual void                   SetTextDecoration( const TInt32 aTextDecoration )=0;
+
+        /**
+         * Set the anti-alias mode
+         *
+         * @since 1.0
+         * @param aTextDecoration : anti-alias mode value
+         * @return
+         */
+        virtual void                   SetAntialiasingMode( const TInt32 aAntialiasingEnable )=0;
+
+        /**
+         * This method copies the internal RGBA8888 framebuffer to CfbsBitmap that
+         * is specified in constructor. The CfbsBitmap could be 4k color (RGB0444),
+         * 64k color (RGB565), or 16M color (RGB888).
+         *
+         * @since
+         * @param
+         * @return
+         */
+        virtual void UpdateFramebufferL( CFbsBitmap* aFrameBuffer, CFbsBitmap* aMask ) = 0;
+        virtual void UpdateFramebufferL( CFbsBitmap* aFrameBuffer, CFbsBitmap* aMask,TSize aFrameBufferSize,TDisplayMode aFrameBufferMode,TDisplayMode aMaskDspMode ) =0;
+        /**
+         * Blend aFrameBuffer with background buffer using the opacity value
+         *
+         * @since 1.0
+         * @param aFrameBuffer: Buffer to be blended with background
+         *        aOpacity: opacity value (0<=aOpacity<=1.0)
+         * @return
+         */
+         virtual void BlendWithBackground(TUint32* aFrameBuffer, TReal32 aOpacity)=0;
+
+         /**
+          * Generate mask
+          *
+          * @since
+          * @param aMask: pointer to the mask
+          * @return
+          */
+		virtual void GenerateMask(CFbsBitmap* aMask)=0;
+
+		  /**
+         * Set the fill opacity value
+        *
+         * @since 1.0
+         * @param aFillOpacity : opacity value (0<=aFillOpacity<=1.0)
+         * @return
+         */
+        virtual void                   SetFillOpacity(TFloatFixPt aFillOpacity)=0;
+
+        /**
+         * Set the stroke opacity value
+         *
+         * @since 1.0
+         * @param aStrokeOpacity : opacity value (0<=aStrokeOpacity<=1.0)
+         * @return
+         */
+        virtual void                   SetStrokeOpacity(TFloatFixPt aStrokeOpacity)=0;
+
+        /**
+         * Set the flag to do or ignore dithering.
+         *
+         * @since 1.0
+         * @param aDoDithering : TRUE or False
+         * @return
+         */
+        virtual void                   SetDoDithering( TBool aDoDithering )=0;
+
+        /**
+         * Request to change the buffer size.
+         *
+         * @since 1.0
+         * @param aSize : size of new buffer
+         * @return
+         */
+        virtual void                   ChangeBufferSizeL( const TSize aSize ) = 0;
+
+        // Rasterizer methods for group-opacity
+        virtual TUint32* ColorBuffer() { return NULL; };
+        virtual void UpdateColorBuffer() {};
+
+        // OpenVG methods for group-opacity
+        virtual void BindToImageL() {};
+        virtual void UnbindFromImageL( TReal32 /*aOpacity*/ ) {};
+
+        virtual void GetFontScaled( TFloatFixPt aHeight,
+			     const TDesC& aTypefaceName,
+                             CFont*& aFont,
+                             TFontSpec& aFontSpec ) = 0;
+
+        // This is for work-around for OpenVG to simulate multiple contexts
+        // VGR does not need to do anything.
+        virtual void SetupContextL() {};
+        virtual void Flush() {};
+        virtual void DestroyContext()=0;
+        /**
+          * Get the NVG-TLV Encoded data.
+          *
+          * @since 1.0
+          * @return : pointer to the NVG-TLV data
+        */
+        virtual const TPtrC8 TLVEncodedData() const=0;
+
+		protected:
+		
+		//Stores Font Type information as passed by CSvgEngineInterfaceImpl
+        CSvgBitmapFontProvider *iSvgBitmapFontProvider;
+    };
+
+/**
+ * DUMMY placeholder to prevent BC break in SVGEngine - deprecated and not used.
+ * 
+ *  @since 1.0
+ */
+class CGfx2dGcVGR : public CGfx2dGc
+    {
+
+    /**
+     * Two-phase constructor.
+     *
+     * @since 1.0
+     * @param
+     * @return
+     */
+     static CGfx2dGcVGR*       NewL( const TSize aBufferSize, TFontSpec& aFontSpec, CSvgBitmapFontProvider *aSvgBitmapFontProvider );
+
+    /**
+     * Destructor
+     */
+     virtual                ~CGfx2dGcVGR();
+
+    //old  CFont*               GetFontScaled( TFixPt aHeight, const TDesC& aTypefaceName );
+     void       GetFontScaled( TFloatFixPt aHeight, 
+                         const TDesC& aTypefaceName,
+                         CFont*& aFont,
+                         TFontSpec& aFontSpec );
+
+    /**
+     * Adjust the shape complexity.
+     *
+     * @since 1.0
+     * @param aVertexSize : size of vertices to render.
+     * @return
+     */
+     void                   AdjustShapeComplexityL( TInt32 aVertexSize );
+
+    /**
+     * Draw the given shape.
+     *
+     * @since 1.0
+     * @param aShape : shape to draw.
+     * @return
+     */
+     void                   DrawL( MGfxShape* aShape );
+
+    /**
+     * Determine if given string should be drawn right to left
+     *
+     * @since 1.0
+     * @param aDesc : string to check if right to left
+     * @return true if right to left false otherwise
+     */
+    TBool                   IsRightToLeft(const TDesC& aDesc );
+
+    /**
+     * Draw the given string starting at the given context coordinate,
+     * and stylized by the given parameters.
+     *
+     * @since 1.0
+     * @param aDesc : string to draw
+     * @param aX : x coordinate
+     * @param aTextAnchor : text anchor
+     * @param aTextDecoration : text decoration
+     * @param aFamilies : font family names
+     * @param aWordSpacing : spacing description for each word
+     * @param aLetterSpacing : spacing description for each letter
+     * @param aArrayRotate : angle of rotation
+     * @param aArrayX : array of x coordinates
+     * @param aArrayY : array of x coordinates
+     * @return
+     */
+     void                   DrawStringL( const TDesC& aDesc,
+                                                 TFloatFixPt aX,
+                                                 TFloatFixPt aY,
+                                                 TInt8 aTextAnchor,
+                                                 TInt8 aTextDecoration,
+                                                 CDesCArrayFlat* aFamilies,
+                                                 TReal aWordSpacing,
+                                                 TReal aLetterSpacing,
+                                                 CArrayFix<TReal32>* aArrayRotate,
+                                                 CArrayFix<TFloatFixPt>* aArrayX,
+                                                 CArrayFix<TFloatFixPt>* aArrayY,
+                                                 TSize& aBboxSizeResult, 
+                         CFont*& aFont, 
+                         TFontSpec& aFontSpec);
+
+    /**
+     * Draw the given bitmap at the given top-left coordinates.
+     *
+     * @since 1.0
+     * @param aDesc : bitmap image to draw
+     * @param aX : x coordinate
+     * @param aY : y coordinate
+     * @return
+     */
+     void                   DrawImage( CFbsBitmap* aImage,
+                                               const TGfxRectangle2D& aImageRect,
+                                               TBool aHasAlpha = EFalse );
+
+    /**
+     * Clear the whole graphics context.
+     *
+     * @since 1.0
+     * @param
+     * @return
+     */
+     void                   Clear(TUint32 aRGBA8888Color);
+
+    /**
+     * Get the composite setting.
+     *
+     * @since 1.0
+     * @param
+     * @return composite value.
+     */
+     TUint8                 Composite();
+
+    /**
+     * Get the foreground color setting.
+     *
+     * @since 1.0
+     * @param
+     * @return foreground color.
+     */
+     TGfxColor              ForegroundColor() ;
+
+    /**
+     * Get the background color setting.
+     *
+     * @since 1.0
+     * @param
+     * @return background color.
+     */
+     TGfxColor              BackgroundColor();
+
+    /**
+     * Get the paint setting.
+     *
+     * @since 1.0
+     * @param
+     * @return paint.
+     */
+     MGfxPaint*             Paint();
+
+    /**
+     * Get the rendering hints setting.
+     *
+     * @since 1.0
+     * @param
+     * @return rendering hints.
+     */
+     TGfxRenderingHints*    RenderingHints();
+
+    /**
+     * Get the stroke setting.
+     *
+     * @since 1.0
+     * @param
+     * @return stroke.
+     */
+     TGfxStroke             Stroke();
+
+    /**
+     * Get the transform setting.
+     *
+     * @since 1.0
+     * @param
+     * @return transform.
+     */
+     TGfxAffineTransform    Transform();
+
+    /**
+     * Get the clipping area setting.
+     *
+     * @since 1.0
+     * @param
+     * @return clipping area.
+     */
+     MGfxShape*             Clip();
+
+    /**
+     * Get the boundary setting.
+     *
+     * @since 1.0
+     * @param
+     * @return boundary.
+     */
+     TSize                  DeviceBounds();
+    /**
+     * Get the font setting.
+     *
+     * @since 1.0
+     * @param
+     * @return font.
+     */
+
+     CFont*                 Font();
+
+    /**
+     * Get the stroke setting.
+     *
+     * @since 1.0
+     * @param aArray : array of points to store dash array info
+     * @param aOffset : offset point dash array offset info
+     * @return
+     */
+     void                   GetDashArray( CArrayFix<TFloatFixPt>*& aArray,
+                                                  TFloatFixPt& aOffset );
+
+    /**
+     * Set the composite info.
+     *
+     * @since 1.0
+     * @param aComposite : composite info
+     * @return
+     */
+     void                   SetComposite( const TUint8 aComposite );
+
+    /**
+     * Set the foreground color.
+     *
+     * @since 1.0
+     * @param aColor : foreground color
+     * @return
+     */
+     void                   SetForegroundColor( const TGfxColor& aColor );
+
+    /**
+     * Set the background color.
+     *
+     * @since 1.0
+     * @param aColor : background color
+     * @return
+     */
+     void                   SetBackgroundColor( const TGfxColor& aColor );
+
+    /**
+     * Set the paint info.
+     *
+     * @since 1.0
+     * @param aPaint : paint info
+     * @return
+     */
+     void                   SetPaint( MGfxPaint* aPaint );
+
+    /**
+     * Set the stroke info.
+     *
+     * @since 1.0
+     * @param aStroke : stroke info
+     * @return
+     */
+     void                   SetStroke( TGfxStroke aStroke );
+
+    /**
+     * Set the rendering hints.
+     *
+     * @since 1.0
+     * @param aRenderingHints : rendering hints
+     * @return
+     */
+     void                   SetRenderingHints( const TGfxRenderingHints& aRenderingHints );
+
+    /**
+     * Set the transform info.
+     *
+     * @since 1.0
+     * @param aTransform : transform info
+     * @return
+     */
+     void                   SetTransform( const TGfxAffineTransform& aTransform );
+
+    /**
+     * Set the clipping info.
+     *
+     * @since 1.0
+     * @param aClip : clipping rectangle
+     * @return
+     */
+     void                   SetClip( const TGfxRectangle2D& aClip );
+
+    /**
+     * Set the font.
+     *
+     * @since 1.0
+     * @param aFont : font
+     * @return
+     */
+
+     void                   SetFont( const CFont* aFont );
+
+    /**
+     * Set the dash array info.
+     *
+     * @since 1.0
+     * @param aArray : array of points
+     * @param aOffset : offset point
+     * @return
+     */
+     void                   SetDashArrayL( CArrayFix<TFloatFixPt>* aArray);
+     void                   SetDashOffset( TFloatFixPt aDashOffset );
+    /**
+     * Set the font size.
+     *
+     * @since 1.0
+     * @param aFontSize : font size
+     * @return
+     */
+     void                   SetFontSize( const TFloatFixPt aFontSize );
+
+    /**
+     * Set the winding rule.
+     *
+     * @since 1.0
+     * @param aRule : winding rule
+     * @return
+     */
+     void                   SetWindingRule( TGfxWindingRule aRule );
+
+    /**
+     * Set the font weight.
+     *
+     * @since 1.0
+     * @param aFontWeight : font weight value
+     * @return
+     */
+     void                   SetFontWeight( const TInt32 aFontWeight );
+
+    /**
+     * Set the font style.
+     *
+     * @since 1.0
+     * @param aFontStyle : font style
+     * @return
+     */
+     void                   SetFontStyle( const TInt32 aFontStyle );
+
+    /**
+     * Set the font family.
+     *
+     * @since 1.0
+     * @param aFamilies : font family names
+     * @return
+     */
+     void                   SetFontFamily( CDesCArrayFlat* aFamilies );
+
+    /**
+     * Set the text anchor
+     *
+     * @since 1.0
+     * @param aTextAnchor : text anchor value
+     * @return
+     */
+     void                   SetTextanchor( const TInt32 aTextAnchor );
+
+    /**
+     * Set the text decoration
+     *
+     * @since 1.0
+     * @param aTextDecoration : text decoration value
+     * @return
+     */
+     void                   SetTextDecoration( const TInt32 aTextDecoration );
+
+    /**
+     * Set the anti-alias mode
+     *
+     * @since 1.0
+     * @param aTextDecoration : anti-alias mode value
+     * @return
+     */
+     void                   SetAntialiasingMode( const TInt32 aAntialiasingEnable );
+
+    /**
+     * This method copies the internal RGBA8888 framebuffer to CfbsBitmap that
+     * is specified in constructor. The CfbsBitmap could be 4k color (RGB0444),
+     * 64k color (RGB565), or 16M color (RGB888).
+     *
+     * @since
+     * @param
+     * @return
+     */
+
+    void UpdateFramebufferL( CFbsBitmap* aBitmap, CFbsBitmap* aMask );
+    void UpdateFramebufferL( CFbsBitmap* aFrameBuffer, CFbsBitmap* aMask,TSize aFrameBufferSize,TDisplayMode aFrameBufferMode,TDisplayMode aMaskDspMode );
+        
+    /**
+     * Blend aFrameBuffer with background buffer using the opacity value
+     *
+     * @since 1.0
+     * @param aFrameBuffer: Buffer to be blended with background
+     *        aOpacity: opacity value (0<=aOpacity<=1.0)
+     * @return
+     */
+     void BlendWithBackground(TUint32* aFrameBuffer, TReal32 aOpacity);
+
+    /**
+     * return ibuffer
+     *
+     * @since 1.0
+     * @param
+     *
+     * @return pointer
+     */
+
+    void GenerateMask(CFbsBitmap* aMask);
+
+      /**
+     * Set the fill opacity value
+     *
+     * @since 1.0
+     * @param aFillOpacity : opacity value (0<=aFillOpacity<=1.0)
+     * @return
+     */
+    void                   SetFillOpacity(TFloatFixPt aFillOpacity);
+
+    /**
+     * Set the stroke opacity value
+     *
+     * @since 1.0
+     * @param aStrokeOpacity : opacity value (0<=aStrokeOpacity<=1.0)
+     * @return
+     */
+    void                   SetStrokeOpacity(TFloatFixPt aStrokeOpacity);
+
+    /**
+     * Set the flag to do or ignore dithering.
+     *
+     * @since 1.0
+     * @param aDoDithering : TRUE or False
+     * @return
+     */
+    void                   SetDoDithering( TBool aDoDithering );
+
+    /**
+     * Request to change the buffer size.
+     *
+     * @since 1.0
+     * @param aSize : size of new buffer
+     * @return
+     */
+     void                   ChangeBufferSizeL( const TSize aBufferSize );
+
+    /**
+     * Request to update the context color buffer.
+     *
+     * @since 1.0
+     * @return
+     */
+     void                   UpdateColorBuffer();
+
+    /**
+     * Get the 32-bit color buffer for this gfx context.
+     *
+     * @since 1.0
+     * @return
+     */
+      TUint32* ColorBuffer();
+
+private:
+
+    /**
+     * Constructor
+     */
+                                    CGfx2dGcVGR();
+
+    /**
+     * Two-phase constructor
+     */
+    void                            ConstructL( const TSize aBufferSize, TFontSpec& aFontSpec, CSvgBitmapFontProvider *aSvgBitmapFontProvider);
+
+    /**
+     * Perform the drawing operations of the given shape.
+     *
+     * @since 1.0
+     * @param aShape : shape to draw
+     * @return
+     */
+    void                            DoDrawL( MGfxShape* aShape );
+
+
+    /**
+     * Clear context routine in assembly for performance.
+     * @since 1.0
+     * @param pBitmap : pointer to bitmap
+     * @param aColor : color to clear background
+     * @param aSize : number of pixels to clear
+     * @return
+     */
+    void                            ClearAsm( TInt* pBitmap,
+                                              TInt aColor,
+                                              TInt aSize );
+
+    /**
+     * Activate this context with the given graphics device.
+     *
+     * @since 1.0
+     * @param : aDevice -- graphics device.
+     * @return
+     */
+    void                   ActivateL();
+
+
+    void ColorConvertTo64K( TUint32* aDestAddress, const TSize& aSize );
+
+    void PostDraw();
+    };
+#endif      // GFX2DGCINT_H