fbs/fontandbitmapserver/inc/FBS.H
branchRCL_3
changeset 164 25ffed67c7ef
parent 163 bbf46f59e123
child 209 5c40347c6f16
equal deleted inserted replaced
163:bbf46f59e123 164:25ffed67c7ef
     1 // Copyright (c) 1995-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    38 @publishedAll
    38 @publishedAll
    39 @released
    39 @released
    40 */
    40 */
    41 #define SYMBIAN_FBSERV_V2
    41 #define SYMBIAN_FBSERV_V2
    42 
    42 
    43 /**
       
    44 Indicates version of FBS that provides the CFbsFont extension 
       
    45 interfaces RFbsGlyphDataIterator for using hardware glyphs, and
       
    46 RFbsGlyphMetricsArray.
       
    47 @publishedAll
       
    48 @prototype
       
    49 */
       
    50 //#define SYMBIAN_FBSERV_GLYPHDATA
       
    51 
       
    52 /** 
    43 /** 
    53 Character width and adjustment information. 
    44 Character width and adjustment information. 
    54 @publishedAll
    45 @publishedAll
    55 @released
    46 @released
    56 */
    47 */
    68 	};
    59 	};
    69 
    60 
    70 class CFbsRalCache;
    61 class CFbsRalCache;
    71 class CFbsSessionHelper;
    62 class CFbsSessionHelper;
    72 class CFbsRasterizer;
    63 class CFbsRasterizer;
    73 class TGlyphCacheMetrics;
       
    74 class TFbsOogmMessage;
       
    75 
    64 
    76 /** 
    65 /** 
    77 A session with the font and bitmap server. 
    66 A session with the font and bitmap server. 
    78 @publishedAll 
    67 @publishedAll 
    79 @released
    68 @released
   110 	HBufC8* GetScanLineBuffer();
    99 	HBufC8* GetScanLineBuffer();
   111 	void SetCallBackPtr(TInt* aBitmapHandle)const;
   100 	void SetCallBackPtr(TInt* aBitmapHandle)const;
   112 	HBufC8* GetDecompressionBuffer(TInt aSize);
   101 	HBufC8* GetDecompressionBuffer(TInt aSize);
   113 	HBufC8* GetExtraBuffer(TInt aSize);
   102 	HBufC8* GetExtraBuffer(TInt aSize);
   114     TInt ServerSessionHandle() const;
   103     TInt ServerSessionHandle() const;
   115     IMPORT_C TInt GetGlyphCacheMetrics(TGlyphCacheMetrics& aGlyphCacheMetrics);
       
   116     IMPORT_C TInt ConveyOogmMessage( TFbsOogmMessage& aOogmMessage );
       
   117 
       
   118 public:
   104 public:
   119 	/** WARNING: For internal use ONLY.  Compatibility is not guaranteed in future releases.	 
   105 	/** WARNING: For internal use ONLY.  Compatibility is not guaranteed in future releases.	 
   120 	Used for testing server side out of memory failures.	
   106 	Used for testing server side out of memory failures.	
   121 	@test
   107 	@test
   122 	*/
   108 	*/
   141 	HBufC8* iDecompressionBuffer;
   127 	HBufC8* iDecompressionBuffer;
   142 	HBufC8* iScanLineBuffer;	
   128 	HBufC8* iScanLineBuffer;	
   143 	TUint32* iSpare;
   129 	TUint32* iSpare;
   144 	};
   130 	};
   145 
   131 
   146 /** forward declaration of some private classes. */
       
   147 class TGetFontTableParam;
       
   148 class TReleaseGlyphOutlineParam;
       
   149 class TGetGlyphOutlineParam;
       
   150 
       
   151 
       
   152 /** 
   132 /** 
   153 Font managed by the font and bitmap server.
   133 Font managed by the font and bitmap server.
   154 CFbsFont objects are used for screen and off-screen bitmap fonts. They are 
   134 CFbsFont objects are used for screen and off-screen bitmap fonts. They are 
   155 usually obtained by calls to the CBitmapDevice::GetNearestFontInPixels() and 
   135 usually obtained by calls to the CBitmapDevice::GetNearestFontInPixels() and 
   156 MGraphicsDeviceMap::GetNearestFontInTwips() functions.
   136 MGraphicsDeviceMap::GetNearestFontInTwips() functions.
   161 @released
   141 @released
   162 */
   142 */
   163 class CFbsFont: public CFont
   143 class CFbsFont: public CFont
   164 	{
   144 	{
   165 	friend class CFbsTypefaceStore;
   145 	friend class CFbsTypefaceStore;
   166 	friend class RFbsGlyphDataIterator;
       
   167 	friend class RFbsGlyphMetricsArray;
       
   168 
   146 
   169 private:
   147 private:
   170 	// From CFont
   148 	// From CFont
   171 	/** Gets the font's UID. 
   149 	/** Gets the font's UID. 
   172 	All CFbsFont objects have the constant UID KCFbsFontUid. It is safe to cast 
   150 	All CFbsFont objects have the constant UID KCFbsFontUid. It is safe to cast 
   213 	
   191 	
   214 private:
   192 private:
   215 	TInt DoFontGetShaping(TFontShapeFunctionParameters* aParam) const;
   193 	TInt DoFontGetShaping(TFontShapeFunctionParameters* aParam) const;
   216 	TInt DoFontDeleteShaping(TFontShapeDeleteFunctionParameters* aParam) const;
   194 	TInt DoFontDeleteShaping(TFontShapeDeleteFunctionParameters* aParam) const;
   217 	TInt DoTextWidthInPixels(const TDesC& aText,const TMeasureTextInput* aParam) const;
   195 	TInt DoTextWidthInPixels(const TDesC& aText,const TMeasureTextInput* aParam) const;
   218 	TInt DoGetFontTable(TGetFontTableParam * aParam) const;
       
   219 	TInt DoGetGlyphOutline(TGetGlyphOutlineParam *aParam) const;
       
   220 	TInt DoReleaseGlyphOutline(TReleaseGlyphOutlineParam *aParam) const;
       
   221 	TInt DoReleaseFontTable(TUint32 *aParam) const;
       
   222 
   196 
   223 protected:
   197 protected:
   224 	RFbsSession* iFbs;
   198 	RFbsSession* iFbs;
   225 	CBitmapFont* iAddressPointer;
   199 	CBitmapFont* iAddressPointer;
   226 	TInt iHandle;
   200 	TInt iHandle;
   227     TInt iServerHandle;
   201 	TInt iServerHandle;
   228 	};
   202 	};
   229 
   203 
   230 /**
   204 /**
   231 An interface for initialization of extended bitmaps. By implementing this interface, 
   205 An interface for initialization of extended bitmaps. By implementing this interface, 
   232 creators of extended bitmaps can set the contents of an extended bitmap without 
   206 creators of extended bitmaps can set the contents of an extended bitmap without 
   521 private:
   495 private:
   522 	TColor256Util* iColor256Util;
   496 	TColor256Util* iColor256Util;
   523 	CDitherColor256* iDither;
   497 	CDitherColor256* iDither;
   524 	};
   498 	};
   525 
   499 
   526 
   500 #endif
   527 /**
       
   528  A class encapsulating the current state of the glyph cache.
       
   529 
       
   530  @publishedAll
       
   531  @released
       
   532 */
       
   533 class TGlyphCacheMetrics
       
   534     {
       
   535 public:
       
   536     TInt iMaxCacheSizeInBytes;
       
   537     TInt iMaxCacheSizeHigh;
       
   538     TInt iMaxCacheSizeLow;
       
   539     TInt iCacheSizeInBytes;
       
   540     TBool iGpuCacheSizeLimitIsMax;
       
   541     };
       
   542 
       
   543 #endif // __FBS_H__
       
   544