diff -r 000000000000 -r 5d03bc08d59c graphicsdeviceinterface/directgdiadaptation/inc/directgdiextensioninterfaces.h --- /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 +#include + +/** +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 & 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*/