--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/coretoolkit/inc/HuiTargetBitmap.h Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,150 @@
+/*
+* Copyright (c) 2006-2007 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: Declares the MHuiTargetBitmap interface. MHuiTargetBitmap is
+* an interface for a writable bitmap in raw format.
+*
+*/
+
+
+
+#ifndef __HUITARGETBITMAP_H__
+#define __HUITARGETBITMAP_H__
+
+
+#include <e32base.h>
+
+
+/**
+ * Interface for a bitmap that can be drawn on as a raw bitmap. CHuiBitgdiGc
+ * uses this interface for accessing the target bitmap where drawing is
+ * being done.
+ */
+class MHuiTargetBitmap
+ {
+public:
+
+ virtual ~MHuiTargetBitmap() {}
+
+ /**
+ * Determines the size of the bitmap.
+ *
+ * @return Size of the bitmap in pixels.
+ */
+ virtual TSize Size() const = 0;
+
+ /**
+ * Determines the pixel format of the bitmap.
+ *
+ * @return Format of the bitmap as a TDisplayMode.
+ *
+ * @see TDisplayMode in the platform documentation.
+ */
+ virtual TDisplayMode DisplayMode() const = 0;
+
+ /**
+ * Locks the heap so that the memory buffer of the bitmap can be
+ * accessed directly. Prevents heap compression done by other threads.
+ * The heap must be unlocked with UnlockHeap() after the buffer
+ * processing has been completed.
+ *
+ * @see CFbsBitmap::LockHeap()
+ */
+ virtual void LockHeap() = 0;
+
+ /**
+ * Unlocks the heap. Must be called after the heap has been locked
+ * and operated on.
+ */
+ virtual void UnlockHeap() = 0;
+
+ /**
+ * Provides access to the memory buffer of the bitmap.
+ *
+ * @return Pointer to the beginning of the pixel data.
+ *
+ * @see LockHeap()
+ * @see UnlockHeap()
+ */
+ virtual TAny* DataAddress() = 0;
+
+ /**
+ * Sets the clipping rectangle for the bitmap. All drawing operations
+ * (FillRect(), BitBlt(), BitBltMasked()) are confined into this
+ * rectangle when drawn.
+ *
+ * @param aRect Clipping rectangle.
+ */
+ virtual void SetClippingRect(const TRect& aRect) = 0;
+
+ /**
+ * Sets the clipping region for the bitmap. All drawing operations
+ * (FillRect(), BitBlt(), BitBltMasked()) are confined into this
+ * region when drawn.
+ *
+ * @param aRegion Region containing clipping rectangles.
+ */
+ virtual void SetClippingRegion(const TRegion& aRegion) = 0;
+
+ /**
+ * Draws a solid-colored rectangle. Affected by the clipping rectangle.
+ *
+ * @param aRect Rectangle to fill with a solid color.
+ * @param aColor RGBA color to use for filling. Note that the alpha
+ * component of the TRgb is also valid.
+ */
+ virtual void FillRect(const TRect& aRect, const TRgb& aColor) = 0;
+
+ /**
+ * Draws a bitmap. Affected by the clipping rectangle. Analogous to
+ * the corresponding CFbsBitGc::BitBlt() method.
+ *
+ * @param aPoint Position where to draw.
+ * @param aBitmap Bitmap to draw.
+ * @param aSourceRect Rectangle within the source bitmap where to draw from.
+ */
+ virtual void BitBlt(const TPoint& aPoint, const CFbsBitmap *aBitmap, const TRect &aSourceRect) = 0;
+
+ /**
+ * Draws a masked bitmap. Affected by the clipping rectangle.
+ * Analogous to the corresponding CFbsBitGc::BitBltMasked() method.
+ *
+ * @param aPoint Position where to draw.
+ * @param aBitmap Bitmap to draw.
+ * @param aSourceRect Rectangle within the source bitmap where to draw from.
+ * @param aMaskBitmap Mask bitmap.
+ * @param aInvertMask ETrue if the mask should be inverted.
+ */
+ virtual void BitBltMasked(const TPoint &aPoint, const CFbsBitmap *aBitmap, const TRect &aSourceRect, const CFbsBitmap *aMaskBitmap, TBool aInvertMask) = 0;
+
+ /**
+ * Returns pointer to the bitmap. If the class do not have CFbsBitmap this methdod returns NULL.
+ *
+ * @return Pointer to the bitmap.
+ */
+ virtual CFbsBitmap* FbsBitmap() = 0;
+
+ /**
+ * Returns the BITGDI graphics context that is used for drawing in
+ * the back buffer.
+ *
+ * Writing a real implementation for this might not be needed if the renderer
+ * does not support symbian graphics context.
+ *
+ * @return BITGDI graphics context.
+ */
+ virtual CFbsBitGc* Gc() = 0;
+ };
+
+
+#endif // __HUITARGETBITMAP_H__