--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/directgdiadaptation/inc/directgdiextensioninterfaces.h Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,104 @@
+// Copyright (c) 2007-2009 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:
+//
+
+#ifndef DIRECTGDIEXTENSIONINTERFACES_H
+#define DIRECTGDIEXTENSIONINTERFACES_H
+
+#include <e32cmn.h>
+#include <gdi.h>
+
+/**
+An interface used for testing the VGImage cache in the VG DirectGDI adaptation.
+
+@internalTechnology
+*/
+class MVgImageCache
+ {
+public:
+ virtual TBool IsInCache(TInt64 aSerialNumberList) = 0;
+ virtual TInt TouchCount(TInt64 aSerialNumberList) = 0;
+ virtual TInt NumEntries() const = 0;
+ virtual void GetOrderedCacheEntries(TInt64& aSerialNumberList, TInt aListSize) = 0;
+ virtual TInt CacheSizeInBytes() const = 0;
+ virtual TInt MaxCacheSize() const = 0;
+ virtual void ResetCache() = 0;
+ };
+
+const TUint32 KDirectGdiVgImageCacheUid = 0x10285A74;
+
+/**
+An interface for retrieving images from the storage and obtaining various glyph cache parameters .
+Many functions are intended to be used by test code only to exersize glyph image cache implementation.
+
+@internalTechnology
+*/
+class MFontGlyphImageStorage
+ {
+public:
+ virtual TInt GlyphImage(TUint32 aFontId, TChar aGlyphCode, TGlyphBitmapType aGlyphBitmapType,
+ const TUint8* aGlyphImage, const TSize& aGlyphImageSize,
+ TAny* aImageForeground, TAny* aImageShadow, TAny* aImageOutline) = 0;
+ //for test purpose
+ //current glyph cache size in bytes
+ virtual TInt GlyphCacheSize() const = 0;
+ //max glyph cache size in bytes
+ virtual TInt MaxGlyphCacheSize() const = 0;
+ //mainly for OOM testing
+ //delete all VG Images from the cache
+ virtual void CleanGlyphImageCache() = 0;
+ //Fills aFontListId parameter with font Id in order from most to least usable.
+ virtual TInt FontIdInOrder(RArray<TUint32> & aFontListId) const = 0;
+ //Enforce to emulate OOM condition. The system will use pre-allocated buffers.
+ virtual void EnforceOOMFailure(TBool aEnforce) = 0;
+ };
+
+const TUint32 KDirectGdiGetGlyphStorageUid = 0x10285A75;
+
+/**
+Interface intended for implementation by CDirectGdiDriverInternal to allow clients
+control over the maximum sizes used by an image cache and a glyph cache.
+
+@internalTechnology
+ */
+class MDirectGdiDriverCacheSize
+ {
+public:
+ /** Sets the maximum size of the image cache used by the driver
+ implementation.
+ @param aSize The maximum size in bytes that the image cache should use.
+ @return KErrNone if the maximum cache size was set successfully,
+ KErrNotSupported if this method is not supported.
+ */
+ virtual TInt SetMaxImageCacheSize(TInt aSize) = 0;
+ /** Gets the maximum size of the driver's image cache.
+ @return The current maximum size in bytes of the driver's image cache.
+ */
+ virtual TInt MaxImageCacheSize() const = 0;
+ /** Sets the maximum size of the glyph cache used by the driver
+ implementation.
+ @param aSize The maximum size in bytes that the glyph cache should use.
+ @return KErrNone if the maximum cache size was set successfully,
+ KErrNotSupported if this method is not supported.
+ */
+ virtual TInt SetMaxGlyphCacheSize(TInt aSize) = 0;
+ /** Gets the maximum size of the driver's glyph cache.
+ @return The current maximum size in bytes of the driver's glyph cache.
+ */
+ virtual TInt MaxGlyphCacheSize() const = 0;
+ };
+
+const TUint32 KDirectGdiDriverCacheSizeUid = 0x10286A32;
+
+#endif /*DIRECTGDIEXTENSIONINTERFACES_H*/