diff -r 000000000000 -r 88edb906c587 svgtopt/VGRenderer/PseudoVG/inc/NVGIconHeader.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svgtopt/VGRenderer/PseudoVG/inc/NVGIconHeader.h Wed Nov 03 18:56:10 2010 +0200 @@ -0,0 +1,111 @@ +/* +* 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: NvgIconHeader header file + * +*/ + + +#ifndef _NVGICONHEADER_H_ +#define _NVGICONHEADER_H_ + +#include + +/** +* TNVGHeaderData +* +* Datastructure to hold NVG Icon Header information +*/ +struct TNVGHeaderData // be aware of padding! +{ + TUint16 sign; + TUint8 version; + TUint8 headerSize; + TUint32 reserved1; + TUint16 reserved2; + TUint8 reserved3; + TUint8 reserved4:4; // flag + TUint8 isMarginCorrection:1; // flag + TUint8 isMask:1; // flag + TUint8 aspectRatio:2; // flag + TInt32 rotation; + TInt32 iconColor; + TInt32 bitmapid; +}; + + + +// CONSTANTS +static const TInt KIconHeaderLength = sizeof(TNVGHeaderData); + +// FIXME: find an appropriate place for me. + +/** +* Class TNVGIconHeader +* +* Class to hold NVG Icon Header information & operations +*/ +class TNVGIconHeader + { + +public: + /** + * Constructor + * + * @param aData Descriptor to store the icon header data + */ + inline TNVGIconHeader(TDes8 &aData) + { + __ASSERT_ALWAYS(aData.Length() >= KIconHeaderLength, User::Panic(_L("not sufficient size"), KErrBadDescriptor)); + iHeader = (TNVGHeaderData *)(aData.LeftTPtr(KIconHeaderLength).Ptr()); + } + + /** + * Initializes icon header before writing any data + * + * @param None + */ + inline void Initialize() + { + Mem::FillZ(iHeader,KIconHeaderLength); + iHeader->headerSize = KIconHeaderLength; + } + + + /** + * Set the mask flag in icon header + * + * @param isMask Flag to turn mask on/off + */ + inline void SetIsMask(TBool isMask) + { + iHeader->isMask = isMask; + } + + /** + * Get the mask flag from icon header + * + * @param None + */ + inline TBool IsMask() const + { + return iHeader->isMask; + } + +private: + + TNVGHeaderData *iHeader; + }; + +#endif +