+ uint8_t* __restrict__ bitmapBuffer = data.bitmapBuffer.GetBuffer();
+
+ // Offset byte value of glyph bitmap.
+ uint32_t glyphOffet = 0u;
+
+ // Allocate scanline memory for glyph bitmap if we need.
+ const bool useLocalScanline = data.glyphBitmap.compressionType != TextAbstraction::FontClient::GlyphBufferData::CompressionType::NO_COMPRESSION;
+ uint8_t* __restrict__ glyphScanline = useLocalScanline ? (uint8_t*)malloc(data.glyphBitmap.width * glyphPixelSize) : data.glyphBitmap.buffer;
+
+ // Skip basic line.
+ bitmapBuffer += (lineIndexRangeMin + yOffset) * static_cast<int32_t>(data.width);
+
+ // Skip basic line of glyph.
+ if(useLocalScanline)
+ {
+ for(int32_t lineIndex = 0; lineIndex < lineIndexRangeMin; ++lineIndex)
+ {
+ TextAbstraction::FontClient::GlyphBufferData::DecompressScanline(data.glyphBitmap, glyphScanline, glyphOffet);
+ }
+ }
+ else
+ {
+ glyphScanline += lineIndexRangeMin * static_cast<int32_t>(data.glyphBitmap.width * glyphPixelSize);
+ }