RaspGetUnscaledGlyphData
INT64 __fastcall RaspGetUnscaledGlyphData(INT64 rcx0, UINT16 a2, INT64 *a3, INT64 *a4, INT64 Workspace){
UINT64 *v7;
__int64 v8;
unsigned __int16 v10;
int v11;
_QWORD *v12;
int GlyphData;
int Bearings;
INT64 a1[2];
INT64 v17;
INT64 v18;
LOWORD(v17) = 0;
v7 = *(UINT64 **)(rcx0 + 24);
v8 = 0i64;
LODWORD(v18) = 0;
a1[0] = 0i64;
v10 = 0;
if( (int)RaspMapCharacterCodeToGlyphIndex(v7, a2, &v17) >= 0 )
v10 = v17;
v11 = RaspMapGlyphIndexToLocation(rcx0, v10, &v18);
v12 = (_QWORD *)Workspace;
if( v11 >= 0 || (v10 = 0, Bearings = RaspMapGlyphIndexToLocation(rcx0, 0, &v18), Bearings >= 0) )
{
LOWORD(v17) = v10;
GlyphData = RaspLoadGlyphData(rcx0, (unsigned int)v18, (INT64)&v17, (INT64)a1, (INT64)v12);
v8 = a1[0];
Bearings = GlyphData;
if( GlyphData >= 0 )
{
Bearings = RaspConvertDeltas(a1[0]);
if( Bearings >= 0 )
Bearings = RaspLoadBearings(rcx0, (unsigned __int16)v17, v8, (int *)a4);
}
}
if( a3 )
{
*a3 = v8;
v8 = 0i64;
}
if( v8 )
RaspFreeMemory(v8, v12);
return(unsigned int)Bearings;
}Referenced by:
RaspRasterize