]>
git.saurik.com Git - iphone-api.git/blob - WebCore/FontCache.h
2 * Copyright (C) 2006, 2008 Apple Computer, Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14 * its contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 #include <wtf/Vector.h>
34 #include <wtf/unicode/Unicode.h>
46 class FontPlatformData
;
48 class FontDescription
;
54 friend FontCache
* fontCache();
56 const FontData
* getFontData(const Font
&, int& familyIndex
, FontSelector
*);
57 void releaseFontData(const SimpleFontData
*);
59 // This method is implemented by the platform.
60 // FIXME: Font data returned by this method never go inactive because callers don't track and release them.
61 const SimpleFontData
* getFontDataForCharacters(const Font
&, const UChar
* characters
, int length
);
63 // Also implemented by the platform.
67 IMLangFontLink2
* getFontLinkInterface();
70 void getTraitsInFamily(const AtomicString
&, Vector
<unsigned>&);
72 FontPlatformData
* getCachedFontPlatformData(const FontDescription
&, const AtomicString
& family
, bool checkingAlternateName
= false);
73 SimpleFontData
* getCachedFontData(const FontPlatformData
*);
74 FontPlatformData
* getLastResortFallbackFont(const FontDescription
&);
76 void addClient(FontSelector
*);
77 void removeClient(FontSelector
*);
79 unsigned generation();
82 size_t fontDataCount();
83 size_t inactiveFontDataCount();
84 void purgeInactiveFontData(int count
= INT_MAX
);
89 // These methods are implemented by each platform.
90 FontPlatformData
* getSimilarFontPlatformData(const Font
&);
91 FontPlatformData
* getCustomFallbackFont(const UInt32 c
, const Font
&);
92 bool requiresCustomFallbackFont(const UInt32 c
);
93 FontPlatformData
* createFontPlatformData(const FontDescription
&, const AtomicString
& family
);
95 friend class SimpleFontData
;
96 friend class FontFallbackList
;
99 // Get the global fontCache.
100 FontCache
* fontCache();