Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
9a8f125f
Kaydet (Commit)
9a8f125f
authored
May 05, 2013
tarafından
Khaled Hosny
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
[harfbuzz] Support Unicode variation selectors
Change-Id: I8c56f45505327857613c39b28da3ae7cc3ad201c
üst
26ec39fc
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
18 deletions
+21
-18
gcach_ftyp.cxx
vcl/generic/glyphs/gcach_ftyp.cxx
+19
-10
gcach_layout.cxx
vcl/generic/glyphs/gcach_layout.cxx
+1
-7
glyphcache.hxx
vcl/inc/generic/glyphcache.hxx
+1
-1
No files found.
vcl/generic/glyphs/gcach_ftyp.cxx
Dosyayı görüntüle @
9a8f125f
...
...
@@ -1177,7 +1177,7 @@ int ServerFont::ApplyGlyphTransform( int nGlyphFlags,
// -----------------------------------------------------------------------
int
ServerFont
::
GetRawGlyphIndex
(
sal_UCS4
aChar
)
const
int
ServerFont
::
GetRawGlyphIndex
(
sal_UCS4
aChar
,
sal_UCS4
aVS
)
const
{
if
(
mpFontInfo
->
IsSymbolFont
()
)
{
...
...
@@ -1216,18 +1216,27 @@ int ServerFont::GetRawGlyphIndex( sal_UCS4 aChar ) const
aChar
=
aChar
*
256
+
(
aTempArray
[
i
]
&
0xFF
);
}
// cache glyph indexes in font info to share between different sizes
int
nGlyphIndex
=
mpFontInfo
->
GetGlyphIndex
(
aChar
);
if
(
nGlyphIndex
<
0
)
int
nGlyphIndex
=
0
;
// If asked, check first for variant glyph with the given Unicode variation
// selector. This is quite uncommon so we don't bother with caching here.
if
(
aVS
)
nGlyphIndex
=
FT_Face_GetCharVariantIndex
(
maFaceFT
,
aChar
,
aVS
);
if
(
nGlyphIndex
==
0
)
{
nGlyphIndex
=
FT_Get_Char_Index
(
maFaceFT
,
aChar
);
if
(
!
nGlyphIndex
)
// cache glyph indexes in font info to share between different sizes
nGlyphIndex
=
mpFontInfo
->
GetGlyphIndex
(
aChar
);
if
(
nGlyphIndex
<
0
)
{
// check if symbol aliasing helps
if
(
(
aChar
<=
0x00FF
)
&&
mpFontInfo
->
IsSymbolFont
()
)
nGlyphIndex
=
FT_Get_Char_Index
(
maFaceFT
,
aChar
|
0xF000
);
nGlyphIndex
=
FT_Get_Char_Index
(
maFaceFT
,
aChar
);
if
(
!
nGlyphIndex
)
{
// check if symbol aliasing helps
if
(
(
aChar
<=
0x00FF
)
&&
mpFontInfo
->
IsSymbolFont
()
)
nGlyphIndex
=
FT_Get_Char_Index
(
maFaceFT
,
aChar
|
0xF000
);
}
mpFontInfo
->
CacheGlyphIndex
(
aChar
,
nGlyphIndex
);
}
mpFontInfo
->
CacheGlyphIndex
(
aChar
,
nGlyphIndex
);
}
return
nGlyphIndex
;
...
...
vcl/generic/glyphs/gcach_layout.cxx
Dosyayı görüntüle @
9a8f125f
...
...
@@ -246,13 +246,7 @@ static hb_bool_t getFontGlyph(hb_font_t* /*font*/, void* pFontData,
void
*
/*pUserData*/
)
{
ServerFont
*
pFont
=
(
ServerFont
*
)
pFontData
;
*
nGlyphIndex
=
0
;
if
(
vs
)
*
nGlyphIndex
=
pFont
->
GetRawGlyphIndex
(
ch
/*, vs*/
);
// XXX handle variation selectors
if
(
*
nGlyphIndex
==
0
)
*
nGlyphIndex
=
pFont
->
GetRawGlyphIndex
(
ch
);
*
nGlyphIndex
=
pFont
->
GetRawGlyphIndex
(
ch
,
vs
);
return
*
nGlyphIndex
!=
0
;
}
...
...
vcl/inc/generic/glyphcache.hxx
Dosyayı görüntüle @
9a8f125f
...
...
@@ -211,7 +211,7 @@ public:
#endif
int
GetGlyphIndex
(
sal_UCS4
)
const
;
int
GetRawGlyphIndex
(
sal_UCS4
)
const
;
int
GetRawGlyphIndex
(
sal_UCS4
,
sal_UCS4
=
0
)
const
;
int
FixupGlyphIndex
(
int
nGlyphIndex
,
sal_UCS4
)
const
;
bool
GetGlyphOutline
(
int
nGlyphIndex
,
::
basegfx
::
B2DPolyPolygon
&
)
const
;
bool
GetAntialiasAdvice
(
void
)
const
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment