--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/VGRenderer/inc/VGSurface.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,180 @@
+/*
+* Copyright (c) 2003 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: CVGSurface header file
+ *
+*/
+
+#ifndef VGSURFACE_H
+#define VGSURFACE_H
+
+#include <e32std.h>
+#include <e32base.h>
+
+#include "MVGSurfaceImpl.h"
+
+class RWindow;
+class CFbsBitmap;
+class CVGRenderer;
+
+/**
+ * CVGSurface
+ *
+ */
+class CVGSurface : public CBase
+ {
+public:
+ enum SurfaceConfig
+ {
+ BTIMAP_HEADER = MVGSurfaceImpl::BTIMAP_HEADER,
+ ALPHA_SIZE = MVGSurfaceImpl::ALPHA_SIZE,
+ ALPHA_MASK_SIZE = MVGSurfaceImpl::ALPHA_MASK_SIZE
+ };
+
+ /**
+ * Destructor.
+ */
+ ~CVGSurface();
+
+ /*!
+ * @fn NewL()
+ * @bief Creates the renderer surface abstraction
+ * @param aVGSurfaceImpl The surface implementation
+ * @return Renderer surface abstraction
+ */
+ static CVGSurface* NewL(MVGSurfaceImpl *aVGSurfaceImpl);
+
+ /*!
+ * @fn NewL()
+ * @bief Creates the renderer surface abstraction
+ * @param aVGSurfaceImpl The surface implementation
+ * @return Renderer surface abstraction
+ */
+ static CVGSurface* NewLC(MVGSurfaceImpl *aVGSurfaceImpl);
+
+ /*!
+ * @fn InitializeSurface(TSize aSize, TInt aColorSpace)
+ * @bief Initialize the surface
+ * @param aSize The surface size
+ * @param aColorSpace This is optional with egl
+ * @return KErrNone in case of succesfull, appropriate error code otherwise
+ */
+ TInt InitializeSurface(TSize aSize, TInt aColorSpace)
+ {
+ return iImpl->InitializeSurface(aSize, aColorSpace);
+ }
+
+ /*!
+ * @fn CreateSurface(RWindow *aSurface, CFbsBitmap *aBitmap)
+ * @bief Creates the actual rendering surface
+ * @param aDisplayMode The display mode
+ * @param aSurface The window object
+ * @param aBitmap The bitmao object, is optional
+ * @return KErrNone in case of succesfull, appropriate error code otherwise
+ */
+ TInt CreateSurface(TInt aDisplayMode, RWindow *aSurface, CFbsBitmap *aBitmap)
+ {
+ return iImpl->CreateSurface(aDisplayMode, aSurface, aBitmap);
+ }
+
+ /*!
+ * @fn ResizeSurface(TSize aSize)
+ * @bief Resizes the surface
+ * @param aSize The new size
+ * @return KErrNone in case of succesfull, appropriate error code otherwise
+ */
+ TInt ResizeSurface(TSize aSize)
+ {
+ return iImpl->ResizeSurface(aSize);
+ }
+
+ /*!
+ * @fn SetConfiguration
+ * @brief sets surface/context/display configuration options
+ * @param aOption name of the option
+ * @param aValue value(s) for the option
+ */
+ void SetConfiguration(TInt aOption, const TAny* aValue)
+ {
+ return iImpl->SetConfiguration(aOption, aValue);
+ }
+ /*!
+ * @fn CopyBitmap(CFbsBitmap *aBitmap, CFbsBitmap *aMask, TInt aOption)
+ * @brief copies the bitmap from the surface to the given bitmap
+ * @param aDisplayMode The display mode
+ * @param aBitmap The bitmap where the content will be copied
+ * @param aMask Mask
+ * @param aOption Options, may be required for VGI calls
+ */
+ TInt CopyBitmap(TInt aDisplayMode,TInt aMaskMode,CFbsBitmap *aBitmap, CFbsBitmap *aMask, TSize aSize)
+ {
+ return iImpl->CopyBitmap(aDisplayMode,aMaskMode, aBitmap, aMask, aSize);
+ }
+
+ /**
+ * @fn PrepareToBindClientBuffer
+ * Prepares the renderer to bind to an image.
+ * This is added to allow some performance improvement the TLV renderer
+ * This method should be called before creating the VGImage, which should be made as the surface.
+ * No other image should be created after calling this function
+ */
+ TInt PrepareToBindClientBuffer()
+ {
+ return iImpl->PrepareToBindClientBuffer();
+ }
+ /*!
+ * @fn BindSurfaces(TInt buffer)
+ * @brief This function is used for Binding Off-Screen Rendering Surfaces To Client Buffers
+ * @param buffer is a client API reference to the buffer to be bound. buffer must be a valid VGImage handle.
+ * @return 0 if success
+ */
+ TInt BindClientBuffer(TInt buffer)
+ {
+ return iImpl->BindClientBuffer(buffer);
+ }
+
+ /*!
+ * @fn UnbindSurface(TInt surface)
+ * @brief copies the bitmap from the surface to the given bitmap
+ * @param aBitmap The bitmap where the content will be copied
+ * @param aMask Mask
+ * @param aOption Options, may be required for VGI calls
+ * @return 0 if success
+ */
+ TInt UnBindClientBuffer()
+ {
+ return iImpl->UnBindClientBuffer();
+ }
+ /*!
+ * @fn TerminateSurface()
+ * @brief Will destroy the surface
+ */
+ void TerminateSurface()
+ {
+ iImpl->TerminateSurface();
+ }
+
+
+private:
+
+ CVGSurface();
+
+ /**
+ * default constructor for performing 2nd stage construction
+ */
+ void ConstructL(MVGSurfaceImpl *aVGSurfaceImpl);
+
+ MVGSurfaceImpl *iImpl;
+ };
+
+#endif // VGSURFACE_H