--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiaccelerator_plat/alf_core_toolkit_api/inc/uiacceltk/HuiTextureIf.h Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,176 @@
+/*
+* 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 MHuiTexture interface. MHuiTexture is the most
+* generic interface that all textures need to implement.
+*
+*/
+
+
+
+#ifndef __HUITEXTUREIF_H__
+#define __HUITEXTUREIF_H__
+
+
+/* Forward declarations. */
+class MHuiSegmentedTexture;
+class MHuiShadowedTexture;
+
+
+/** Data buffer formats for uploading textures. */
+enum THuiTextureFormat
+ {
+ /** RGB, 5-6-5 bits per channel. */
+ EHuiTextureFormatRgb565,
+
+ /** RGB, 8 bits per channel. */
+ EHuiTextureFormatRgb888,
+
+ /** RGBA, 8 bits per channel. */
+ EHuiTextureFormatRgba8888,
+
+ /** Luminance + Alpha, 8 bits per channel. */
+ EHuiTextureFormatLa88,
+
+ /** RGB, PVRTC 4 bpp. */
+ EHuiTextureFormatRgbPVRTC4,
+
+ /** RGBA, PVRTC 4 bpp. */
+ EHuiTextureFormatRgbaPVRTC4,
+
+ /** RGB, PVRTC 2 bpp. */
+ EHuiTextureFormatRgbPVRTC2,
+
+ /** RGBA, PVRTC 2 bpp. */
+ EHuiTextureFormatRgbaPVRTC2
+ };
+
+
+/** Flags for texture uploading. */
+enum THuiTextureUploadFlags
+ {
+ /** No special actions/behavior needed. */
+ EHuiTextureUploadFlagDefault = 0,
+
+ /**
+ * @deprecated This is default functionality
+ */
+ EHuiTextureUploadFlagRetainResolution = 1,
+
+ /**
+ * Automatically generates a shadow for the texture in texture upload
+ * phase.
+ */
+ EHuiTextureUploadFlagGenerateShadow = 2,
+
+ /**
+ * Use to retain the color depth of the
+ * ((up)loaded) image as well as possible. Otherwise
+ * the toolkit may reduce the color depth of the texture
+ * to conserve memory.
+ */
+ EHuiTextureUploadFlagRetainColorDepth = 4,
+
+ // note: value 0x8 is reserved in client server model so we leave hole here
+
+ /**
+ * Set if it is not necessary to retain the
+ * full resolution of the bitmap (tries to match texture resolution
+ * with bitmap resolution).
+ * This may save some memory with hardware acceleration, but image quality changes to worse
+ */
+ EHuiTextureUploadFlagDoNotRetainResolution = 0x10,
+
+ /**
+ * Use the provided bitmap directly for the texture, without conversion or copying. The bitmaps
+ * should be in the correct format and they shall not be compressed or have duplicated handle.
+ * If the direct bitmap cannot be used, this flag is ignored internally.
+ */
+ EHuiTextureFlagAllowDirectBitmapUsage = 0x20,
+
+ /**
+ * If given to texture's SegmentUpload() while bitmap being uploaded is in NVG format,
+ * the texture will have NVG ObjectCached data created for quicker drawing.
+ *
+ * By default if no flags is given as parameters, the NVG data will be rasterized
+ * into PBuffer (=VGImage) during upload, since using VGImages is the fastet way.
+ */
+ EHuiTextureUploadFlagUsePureNvg = 0x40
+ };
+
+
+/**
+ * MHuiTexture is the most generic interface that all texture classes need to
+ * implement. Using MHuiTexture, it is possible to determine which interfaces
+ * a specific texture supports.
+ */
+class MHuiTexture
+ {
+public:
+
+ /* Destructor. */
+
+ /**
+ * Virtual destructor.
+ */
+ IMPORT_C virtual ~MHuiTexture();
+
+
+ /* Interface methods. */
+
+ /**
+ * @return The texture as a MHuiSegmentedTexture interface, or NULL is
+ * the texture does not implement the segmented texture interface.
+ */
+ virtual MHuiSegmentedTexture* SegmentedTexture() = 0;
+
+ virtual const MHuiSegmentedTexture* SegmentedTexture() const = 0;
+
+ /**
+ * @return The texture as a MHuiShadowedTexture interface, or NULL is
+ * the texture does not implement the shadowed texture interface.
+ */
+ virtual MHuiShadowedTexture* ShadowedTexture() = 0;
+
+ virtual const MHuiShadowedTexture* ShadowedTexture() const = 0;
+
+ /**
+ * Returns true if the texture has changed since the last change
+ * notification. Changed means that the bitmap data of the texture
+ * has been modified, and must be re-uploaded to texture memory.
+ */
+ virtual TBool TextureChanged() const = 0;
+
+ /**
+ * Clears the changed status of the visual.
+ */
+ virtual void TextureClearChanged() const = 0;
+
+ /**
+ * Determines whether the texture has content. Only textures that
+ * have content can be drawn.
+ *
+ * Note that a texture that has not finished loading will return EFalse
+ * here, because its content will only become available after it has
+ * been fully loaded.
+ *
+ * @return ETrue, if this texture has content.
+ */
+ virtual TBool HasContent() const = 0;
+
+ virtual void TextureExtension(const TUid& aExtensionUid, TAny** aExtensionParameters) = 0;
+
+ };
+
+
+#endif // __HUITEXTUREIF_H__