You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
48 KiB
68 lines
48 KiB
9 months ago
|
#include "verasansmono_compressed.h"
|
||
|
|
||
|
#include <string>
|
||
|
#include <iostream>
|
||
|
#include <cassert>
|
||
|
|
||
|
namespace igl
|
||
|
{
|
||
|
namespace opengl
|
||
|
{
|
||
|
|
||
|
// The string below is a compression of a 256x256x256 font atlas where each pixel's grayscale value is represented by a byte.
|
||
|
// Source font atlas: https://github.com/prideout/recipes/blob/master/verasansmono.png
|
||
|
// The compression below is a pair: hex_value_of_pixel-recurrence_in_hex. If recurrence_in_hex==1,
|
||
|
// it was not appended to the pair and only the pixel value constitutes the item in the list.
|
||
|
// The method below can be used to recover the original format.
|
||
|
// For example, 0-d1e compresses to 3358 neighbouring pixels with value 0x00.
|
||
|
static char verasansmono_compressed_atlas[] = "0-d1e,66-4,0-4,66-4,0-17,44-2,0-8,44-2,0-9,22,66,0-18,1b,46,66,22,0-7,11,5d,1a,0-2,1b,46,66,22,0-4,24,55,5c,30,0-92,72-2,81,a0,0-4,72-2,81,a0,0-17,4c-2,0-8,6b-2,0-3,33,9a,0-4,35,a0,0-18,8e,7d,a0,35,0-6,4,5a,6e,b,0-2,8e,7d,a0,35,0-2,1,31,97,83,75,86,0-94,35,a0,0-6,35,a0,0-21,6b-2,0-3,35,a0,0-4,35,a0,0-18,2d,11,a0,35,0-6,1e,89,2f,0-3,2d,11,a0,35,0-2,e,75,77,1a,5,1f,0-83,12,63,8b-2,5c,0-3,13,67,8e,86,4a,3,0-3,35,a0,0-6,35,a0,0-c,84,49,0-4,49,84,0,64,97-2,64,0-3,1,1f,7a,92,57,77,6b,0,32,97,9a,a0,97-2,64,0,35,a0,2d,7a,90,64,8,0-4,1d-2,0-f,a0,35,0-6,5c,78,1,0-5,a0,35,0-2,27,92,32,0-85,b,66,8b,53,48,71,0-2,b,66,7a,48,5d,92,2a,0-3,35,a0,0-6,35,a0,0-c,6d,6e,0-4,6e,6c,0,2b,41,80,6b,0-3,10,73,7f,49,64,95,6b,0,15,41,61,a0,41-2,2b,0,35,a0,6c,4b,5e,97,3a,0-4,6b-2,0-f,a0,35,0-5,10,8e,38,0-6,a0,35,0-2,31,9c,25,4e,53,24,0-82,28,93,2d,3,1,6,0-2,28,92,3a,29,2e,7e,5e,0-3,35,a0,0-6,35,a0,0-c,46,92,5,5d,5c,4,93,46,0-3,6b-2,0-3,2b,95,22,1,13,7c,6b,0-3,35,a0,0-4,35,a0,21,1,9,73,62,0-4,50-2,0-f,a0,35,0-4,3,56,70,c,0-6,a0,35,0-2,35,9f,69,79,85,93,1e,0-81,33,9e,6,0-5,33,9e,9f-2,a0-2,6a,0-3,35,a0,0-6,35,a0,0-c,2d,97,29,6e-2,29,97,2c,0-3,6b-2,0-3,33,9e,4,0,2,6d,6b,0-3,35,a0,0-4,35,a0,3,0-2,6b,6a,0-15,a0,35,0-4,1d,88,32,0-7,a0,35,0-2,32,9d,33,5,1d,81,57,0-81,30,9a,13,0-5,2f,98,17,10-3,a,0-3,35,9f,2,0-5,35,9f,2,0-b,19,84,68,59-2,67,83,18,0-3,6b-2,0-3,30,9b,e,0,7,72,6b,0-3,35,a0,1,0-3,35,a0,0-3,6b-2,0-15,a0,35,0-4,58,7a,3,0-7,a0,35,0-2,28,92,8,0,3,6e,66,0-81,1c,86,5c,11,6,2c,0-2,1a,85,4f,10,4,1b,2e,0-3,2d,98,26,1,0-4,2d,98,26,1,0-a,8,72,94,3d,3f,94,71,8,0-3,6b-2,0-3,1f,8a,4a,8,30,8d,6b,0-3,31,9c,1e,1,0-2,35,a0,0-3,6b-2,0-4,3c-2,0-f,a0,35,0-3,f,8d,3a,0-8,a0,35,0-2,14,7f,3d,6,23,84,52,0-81,2,3d,8c,8e,8b,84,0-2,2,38,89,8d-2,89,57,0-3,10,6c,91,8e,5e,0-3,10,6c,91,8e,5e,0-a,53,8d,23-2,8e,53,0,2f,8e-2,9a-2,8e-2,2f,4,4e,90,8e,77,88,6b,0-3,19,79,90,8e,5e,0,35,a0,0-3,6b-2,0-4,6b-2,0-d,8e-2,a0,93,8e,2f,3,53,73,e,0-6,8e-2,a0,93,8e,2f,1,3b,8b,8d,8f,84,13,0-83,27,43-2,22,0-4,23,41,46,33,b,0-4,12,41,49,31,0-4,12,41,49,31,0-a,1c,3b,9,a,3b,1c,0,18,4a-6,18,0,4,36,46,21,32,31,0-3,1,1b,43,49,31,0,18,4a,0-3,31-2,0-4,31-2,0-d,4a-5,18,1c,86,33,0-7,4a-5,18,0,1,2c,45,3f,19,0-ea,6,13,4,0-5a5,15-4,0-4,15-4,0-c,7,15,0-11,e-2,0-b,7,15,0-22,d,6,0-2,1,9,12,15,10,5,0-4,d,14,10,3,0-4,d,14,10,3,0-7,4,14,6,1,9,12,15,10,5,0-3,3,10,15,12,8,0-6,e,15,0-4,6,d,0-9,4,14,6,0-2,8,12,13,a,0-52,a0-4,0-4,a0-4,0-c,35,a0,0-11,6b-2,0-b,35,a0,0-8,18,4a,0-17,4,6d,21,0-2,1e,6e,93,9d,8a,5a,8,0-2,1b,7c,9a,88,3f,0-3,1b,7c,9a,88,3f,0-7,33,86,1c,1e,6e,93,9d,8a,5a,8,0,6,43,8c,9d,92,68,d,0-4,6,83,a0,0-4,21,6d,4,0-8,33,86,1c,0,e,68,92,98,72,0-52,22-2,4c,a0,0-4,22-2,4c,a0,0-c,35,a0,0-11,17-2,0-b,35,a0,0-8,35,a0,0-17,32,6c,7,0-2,28,5d,30,25,4d,90,43,0,9,68,7b,30,61,92,10,0,9,68,7b,30,61,92,10,0-5,e,73,53,3,28,5d,30,25,4d,90,43,0,26,90,59,28,44,8e,4b,0-3,2,42,81,a0,0-4,7,6d,33,0-7,e,73,53,3,4,58,90,4c,2a,57,0-44,25,3f-2,20,0-3,1,28,41,3c,16,0-4,35,a0,0-6,35,a0,0-c,35,a0,b,34,43,26,0-3,1,28,41,3c,16,0-3,2f,47-2,2f,0-4,4,33,43,20,30,2f,0,35,a0,b,34,43,26,0-2,18,47,64,a0,47-2,2f,0-13,7,6d,44,0-7,5,70,65,0,21,8b,2f,0,18,83,41,0,21,8b,2f,0,18,83,41,0-5,3a,8d,f,0-5,5,70,65,0,32,9d,8,0,4,6f,64,0-3,1c,75,40,a0,0-5,45,6d,7,0-6,3a,8d,f,0,1c,87,50,2,0-44,2,3a,8b,90,8e,84,0-2,2,3a,89,8f,90,7e,d,0-3,35,a0,0-6,35,a0,0-c,35,a0,58,88,93,8d,1c,0,2,3a,89,8f,90,7e,d,0-2,61,90,9b,6b,0-3,3,4b,91,90,77,88,6b,0,35,a0,58,88,93,8d,1c,0,30,90,96,a0,90-2,61,0-4,52-2,0-d,1c,86,24,0-5,5,10,35,85,3f,0,2e,99,e,8,10,72,5c,0,2e,99,e,8,10,72,5c,0-4,3,7a,58,0-4,5,10,35,85,3f,0,1b,7f,44,15,30,82,35,0-2,1,58,4a,35,a0,0-5,24,86,1c,0-5,3,7a,58,0-2,2d,97,23,d,e,6,0-42,1b,86,5d,12,8,2e,0-2,1a,85,3f,8,1e,81,4c,0-3,35,a0,0-6,35,a0,0-c,35,a0,4d,a,20,84,56,0,1a,85,3f,8,1e,81,4c,0-4,6b-2,0-3,1f,89,4e,9,2f,8d,6b,0,35,a0,4d,a,20,84,56,0-3,35,a0,0-7,6b-2,0-d,2d,97,c,0-5,35,a0,9d,67,1,0,34,9f,2,53-2,6c,68,0,34,9f,2,53-2,6c,68,0-4,32,88,1d,0-4,35,a0,9d,67,1,0-2,30,97,a0,9b,5f,0-3,1d,78,14,35,a0,0-5,d,97,2d,0-5,32,88,1d,0-2,34,9f,4b,90,95,65,8,0-41,2f,9a,13,0-5,2f,9a,7b,77,79,94,66,0-3,35,a0,0-6,35,a0,0-c,35,a0,d,0,3,6
|
||
|
"f2,f3,ff,8d,0-4,1,44,fb,ff,dc,3d,bd,fe,fd,94,2,0-8,71,ff-4,b1,e,0-7,1b,e2,ff,f0,5e,0-e,61,ff,fb,51,0-c,55,ff,aa,0-d,51,fb,ff,61,0-28,55,ff-3,73,5,0-2,4,6f,ff-2,71,1,0-2,39,e2,ff,c0,8,0-3,43,e2,ff-2,aa,0-5,55,ff-2,55,0-a,2b,4e,1,0-4,3,b2,ff,e6,3c,0-7,82,ff-2,48,0-9,31,db,ff,d1,6,0-3,8f,fb,ff-2,0-6,6,a0,ff,fd-2,ff,a2,6,0-6,5b,fb,ff-2,8d,1,2,8f,ff-2,fc,5d,0-4,25,c6,ff-2,66,5,3a,db,ff,f5,49,0-8,1c,f9,ff-3,6b,0-7,a,93,ff-2,9d,e,0-e,56,ff-2,55,0-c,55,ff,aa,0-d,55,ff-2,56,0-28,55,ff-2,db,f9,b6,63,62,b3,f9,fd,bf,4,0-3,2,6d,fa,ff,d0,77,5e,8a,f5,d7,ff-2,aa,0-5,55,ff-2,55,0-a,55,ff,dc,9a,65,58,75,c5,ff-2,91,a,0-7,31,f8,ff,e3,85,58,55-2,1c,0-4,8,9b,ff-2,bf,6a,66,ad,df,e1,ff-2,0-7,43,ff-4,45,0-7,35,df,ff-2,3f,0-2,41,ff-2,e0,36,0-3,a,b7,ff,fa,9a,0-3,4a,f6,ff,da,39,0-8,a4,ff-2,f3,10,0-7,4c,f6,ff,f7,62,55-6,1c,0-8,55,ff-2,55,0-c,55,ff,aa,0-d,55,ff-2,55,0-28,55,ff-2,6d,c1,fe,ff-4,b7,2d,0-5,9,8f,f3,ff-4,da,49,ff-2,aa,0-5,55,ff-2,55,0-a,55,ff-7,f8,a8,17,0-8,3,93,f7,ff-5,55,0-5,26,e0,ff-4,f6,5c,b0,ff-2,0-7,9,ea,ff-2,eb,a,0-7,1b,c5,ff,f4,a,0-2,b,f4,ff,c6,1c,0-2,2,6a,fd,ff,c7,23,0-3,2,95,fd,fe,bb,4,0-7,5b,fa,ff,b1,0-8,55,ff-a,55,0-8,55,ff-2,55,0-c,55,ff,aa,0-d,55,ff-2,55,0-28,55,ff-2,55,9,48,93,a2,89,4c,1,0-8,26,7d,9f,99,6b,10,0,ff-2,aa,0-5,39,aa-2,39,0-a,6,2c,62,84,a0,a7,99,76,27,1,0-a,2,2c,7c,9b,a9,aa-2,39,0-6,16,69,a2,a3,73,22,0,71,aa-2,0-8,6d,aa-2,6e,0-8,2,70,aa,7f,0-4,80,aa,72,2,0-2,24,95,aa-2,2b,0-5,15,87,aa-2,47,0-7,8c,ff,f5,54,0-8,39,aa-a,39,0-8,54,fe,ff,57,0-c,55,ff,aa,0-d,57,ff,fe,54,0-28,55,ff-2,55,0-16,ff-2,aa,0-76,4,e0,ff,d0,26,0-1c,4e,f8,ff,68,0-c,55,ff,aa,0-d,6a,ff,f8,4e,0-28,55,ff-2,55,0-16,ff-2,aa,0-75,1,60,ff-2,88,1,0-1c,37,e1,ff,bf,1f,7,0-a,55,ff,aa,0-b,8,20,c2,ff,e1,37,0-28,55,ff-2,55,0-16,ff-2,aa,0-74,1,3e,cd,ff,fd,2c,0-1d,13,b8,ff,fd,c9,b1,aa,39,0-8,55,ff,aa,0-9,39,aa,b2,ca,fd,ff,b6,12,0-28,55,ff-2,55,0-16,ff-2,aa,0-73,55,ff-3,f5,83,0-1f,20,af,d9,f1,fa,ff,55,0-8,55,ff,aa,0-9,55,ff,fa,f1,d9,ae,1e,0-29,55,ff-2,55,0-16,ff-2,aa,0-73,55,ff,fa,dd,70,13,0-20,e,2f,47,50,55,1c,0-8,55,ff,aa,0-9,1c,55,50,47,2f,e,0-ee,55,ff,aa,0-fd,1c,55,39,0-43a,20,55,52,8,0-fc,21,dc,fc,66,2,0-fc,34,d2,e9,53,0-1a,55,ff-2,55,0-25,aa,ff-2,0-19,9,63,b6,ed,fc,ff-2,aa,0-13,55,ff-2,55,0-11,aa,ff-2,0-e,ff-2,aa,0-8,aa,ff-2,0-b,aa,ff-6,aa,0-3b,2,45,f7,d5,12,0-19,55,ff-2,55,0-25,aa,ff-2,0-18,3,70,f6,ff-5,aa,0-13,55,ff-2,55,0-11,aa,ff-2,0-e,ff-2,aa,0-8,aa,ff-2,0-b,aa,ff-6,aa,0-3d,5c,eb,aa,14,0-18,55,ff-2,55,0-25,aa,ff-2,0-18,30,da,ff,cc,2b,6,0-16,55,ff-2,55,0-11,aa,ff-2,0-e,ff-2,aa,0-8,aa,ff-2,0-10,ff-2,aa,0-3d,a,42,4a,12,0-18,55,ff-2,55,0-25,aa,ff-2,0-18,4a,f4,ff,6c,0-18,55,ff-2,55,0-11,39,55-2,0-e,55-2,39,0-8,aa,ff-2,0-10,ff-2,aa,0-4a,6,21,35,47,50,54,4d,35,13,0-6,55,ff-2,55,4,23,49,51,44,26,1,0-9,9,2a,48,52,51,48,30,14,0-6,a,2f,4c,50,3e,18,0,aa,ff-2,0-6,1,18,40,50,52,43,1a,1,0-a,54,fe,ff,55,0-a,a,2f,4d,50,3d,17,0-8,55,ff-2,55,2,1a,45,51,47,25,0-27,aa,ff-2,0-10,ff-2,aa,0-b,9,38,51,36,1,4,3c,52,3d,d,0-8,2,1d,47,53,49,28,0-9,10,3a,4e,53,4a,2a,7,0-17,77,cb,df,f1,fa,fe,f7,df,ba,40,2,0-4,55,ff-2,55,6e,cb,f3,fb,ee,d0,65,a,0-7,21,a2,d4,f2,fc,fb,f2,da,be,0-5,13,9c,d9,f6,fa,e8,bf,33,aa,ff-2,0-6,60,bd,ea,fa,fc,ed,bf,5a,0-6,39,aa-3,c6,ff-2,c6,aa-4,71,0-4,10,99,d9,f7,fa,e7,bd,2c,71,aa-2,0-4,55,ff-2,55,4e,be,ef,fb,f1,cf,49,0-6,71,aa-6,0-a,aa-6,71,0-8,aa,ff-2,0-5,1b,a4,aa-2,75,0-6,ff-2,aa,0-8,71,aa-2,69,e2,fb,e0,4a,66,e6,fc,e7,85,0-4,39,aa-2,39,54,c2,f1,fd,f3,d2,4d,1,0-6,3c,ad,e4,f8,fd,f4,d4,97,10,0-16,aa,fc,e5,c1,b1,ad,b9,e5,fe,f2,71,0-4,55,ff-2,bb,fc,db,b1-2,da,fc,fb,95,2,0-5,56,e4,ff,f4,c3,af,b0,c0,e8,fe,0-4,24,c4,ff,f9,c3,af,bd,ea,dd-2,ff-2,0-4,f,8a,ff,fc,ca,b0,b4,d6,ff-2,6d,6,0-4,55,ff-b,aa,0-3,20,bd,ff,fb,c7,af,ba,e7,d7-2,ff-2,0-4,55,ff-2,98,f4,cc,ae,bc,f6,ff,e2,3d,0-5,aa,ff-6,0-a,ff-6,aa,0-8,aa,ff-2,0-4,39,cf,ff-2,aa,1d,0-6,ff-2,aa,0-8,aa,ff-2,d5,b3,f4,ff,ee,e6,b5,d9,ff,fe,26,0-3,55,ff-2,9e,f4,cc,ae,bc,f6,ff,e4,3f,0-4,2,49,f7,ff,e7,ba,ad,c2,f9,ff,c4,26,0-15,8f,74,3b,17,7,3,f,48,cf,ff,eb,17,0-3,55,ff-2,fd,ba,36,7-2,35,b9,ff,f8,3d,0-4,1a,e1,ff,e3,67,19,5,6,16,44,a5,0-4,8e,fb,f7,88,19,5,13,4b,f1,fe,ff-2,0-4,62,f1,f8,92,20,6,a,2c,c3,ff,de,34,0-4,1c,55-3,8e,ff-2,8e,5
|
||
|
"10,0-6,11,ff-2,94,0-3,ff-2,aa,0-5,2a,d4,ff,bb,0-4,73,fa,ff,f5,b6,79,30,7,0-c,55,ff-2,55,0-8,ff-2,aa,0-6,aa,ff-2,0-4,3a,e4,ff,a9,0-4,a7,ff,e5,3b,0-2,1c,c6,ff,d0,0-2,d3,ff-2,d2,0-2,d0,ff,c6,1c,0-5,2d,f7,ff-3,9b,c,0-8,40,e3,ff,df,e0,ff,e3,3f,0-c,7f,f8,ff,b5,6,0-9,ff-2,aa,0-b,55,f2,f9,68,0-f,aa,ff-2,0-6,11,4a,50,1b,0-7,3,4b,55,22,0-13,55,ff-2,55,0-2,1,a,31,99,ff-2,9d,a,0,a2,ff-2,5,0-6,6,ff-2,a1,0-3,ff-2,aa,0-2,1,c,2b,b1,ff,e9,4b,0-4,e,84,f3,ff-4,f0,a5,57,e,0-9,55,ff-2,55,0-8,ff-2,aa,0-6,aa,ff-2,0-4,11,b9,ff,f2,a,0-2,a,f1,ff,ba,12,0-2,8,b0,ff,f6,4,11,fd,d7-2,fd,10,4,f6,ff,b0,8,0-6,80,fb,ff,e6,13,0-9,3,80,ff-4,80,3,0-b,39,fa,ff,d2,2b,0-a,ff-2,aa,0-b,12,b4,ff,db,8,0-e,aa,ff-2,0-28,55,ff-2,c6,aa-2,ab,b4,da,fb,ff,df,24,0-2,a7,ff-2,2,0-6,2,ff-2,a7,0-3,ff-2,e3,aa-2,ab,b6,d5,ff,f3,64,a,0-5,a,5b,b6,fd,ff-4,f4,9c,1d,0-8,55,ff-2,55,0-8,ff-2,aa,0-6,aa,ff-2,0-4,1,86,ff-2,41,0-2,3e,ff-2,87,1,0-3,96,ff-2,1d,40,ff,a3-2,ff,3f,1d,ff-2,96,0-7,6e,fb,ff,df,8,0-a,17,eb,ff-2,ea,17,0-b,17,b3,ff-2,64,3,0-a,ff-2,aa,0-c,60,ff-2,4b,0-e,aa,ff-2,0-28,55,ff-5,fe,f9,e9,d0,86,1a,0-3,9e,ff-2,8,0-6,a,ff-2,a1,0-3,ff-8,b8,32,0-a,15,4c,8d,ba,ef,ff-2,c1,7,0-7,55,ff-2,55,0-8,ff-2,aa,0-6,aa,ff-2,0-5,33,ff-2,93,2-2,91,ff-2,34,0-4,6c,ff-2,47,7c,fd,64-2,fd,7b,47,ff-2,6c,0-6,1c,ec,ff-3,83,6,0-a,73,ff-2,73,0-c,89,fc,fd,ac,0-c,ff-2,aa,0-c,4,da,ff,b9,13,0-d,aa,ff-2,0-28,55,ff-2,8e,55-2,54,4f,3f,26,2,0-4,92,ff-2,13,0-6,14,ff-2,93,0-3,ff-2,c7,5a,62,75,c0,fb,f8,bc,d,0-b,1,12,58,d7,ff,fe,42,0-7,55,ff-2,55,0-8,ff-2,aa,0-6,aa,ff-2,0-5,6,e9,ff,c1,18,16,bf,ff,ea,6,0-4,49,ff-2,6e,a7,eb,41-2,eb,a6,6e,ff-2,4a,0-5,6,8c,ff-4,df,38,0-a,55,ff-2,55,0-b,2d,f0,ff,db,38,0-c,ff-2,aa,0-d,79,fd,ec,46,0-d,aa,ff-2,0-28,55,ff-2,55,0-b,6f,ff-2,2f,0-6,30,ff-2,76,0-3,ff-2,aa,0-3,5,6f,fe,ff,99,b,0-d,46,ff-2,8d,0-7,55,ff-2,55,0-8,fc,ff,aa,0-6,aa,ff,fb,0-6,9b,ff,eb,42,40,e9,ff,9c,0-5,1f,ff-2,b3,c9,cb,21-2,cb,c8,b2,ff-2,20,0-5,51,ec,ff,d5,70,f4,ff,c0,7,0-9,55,ff-2,55,0-a,1b,bf,ff,fc,5a,0-d,ff-2,aa,0-d,26,cf,ff,b4,0-d,aa,ff-2,0-28,55,ff-2,55,0-b,4b,ff-2,53,0-6,53,ff-2,51,0-3,ff-2,aa,0-4,a,ca,ff,e7,40,0-d,d,ff-2,a4,0-7,55,ff-2,55,0-8,f4,ff,aa,0-5,1,ab,ff,f3,0-6,5c,fa,fe,73,6f,fd,fa,5d,0-5,5,f7,ff,e6,e8,b0,8-2,af,e7,e5,ff,f8,5,0-4,3,c4,ff,f3,61,16,b8,ff,fd,58,0-9,55,ff-2,55,0-a,79,f7,ff,ba,7,0-d,ff-2,aa,0-d,4,8a,ff,f7,24,0-c,aa,ff-2,0-28,55,ff-2,55,0-b,d,f5,ff,94,4,0-4,4,94,ff,f9,16,0-3,ff-2,aa,0-5,4c,ee,ff,b8,1,0-c,14,ff-2,98,0-7,55,ff-2,55,0-8,dc,ff,b0,6,0-4,7,b1,ff,dd,0-6,2c,d6,ff,c6,c2,ff,d7,2d,0-6,d2,ff-3,78,0-2,76,ff-3,d3,0-4,3,70,ff-2,9e,c,0,2b,f1,ff,d6,2f,0-8,55,ff-2,55,0-9,34,f8,ff,d5,2e,0-e,ff-2,aa,0-e,1a,f2,ff,97,6,0-b,aa,ff-2,0-28,55,ff-2,55,0-c,b5,ff,cf,25,0-4,25,ce,ff,c5,0-4,ff-2,aa,0-5,13,b9,ff,f9,2c,0-3,57,7,0-7,5c,ff-2,6e,0-7,55,ff-2,55,0-8,b7,ff,c6,1c,0-4,1d,c7,ff,b7,0-6,c,b3,ff,f7,f6,ff,b4,d,0-6,b0,ff-3,43,0-2,42,ff-3,b1,0-4,2a,d2,ff,f6,29,0-3,90,fe,fc,97,0-8,55,ff-2,55,0-8,15,ae,ff-2,6a,4,0-e,ff-2,aa,0-f,a5,ff,d7,2d,0-b,aa,ff-2,0-28,55,ff-2,55,0-c,3f,e6,ff,b4,28,9-2,28,b3,ff,ef,51,0-4,ff-2,aa,0-6,48,fe,ff,a3,a,0-2,fd,ca,58,2c,d,3,8,1e,6c,e5,ff,e7,15,0-7,55,ff-2,55,0-8,59,f4,fc,9a,21,7,8,21,9d,fc,f4,59,0-7,6b,ff-4,6d,0-7,85,ff-2,f7,a,0-2,a,f7,ff-2,87,0-3,2,a6,ff,f9,7a,0-4,1e,c0,ff,fe,46,0-7,55,ff-2,55,0-8,83,fb,fe,b1,0-10,ff-2,aa,0-f,3d,e6,ff,86,0-b,aa,ff-2,0-28,55,ff-2,55,0-c,9,77,ff-2,d2,b3-2,d2,ff-2,94,e,0-4,ff-2,aa,0-6,7,d4,ff,e1,37,0-2,ff-2,f5,d6,b7,ad,b2,c8,f6,ff,ed,65,0-8,55,ff-2,55,0-8,13,a3,ff,fd,cb,b1,b2,cb,fd,ff,a5,14,0-7,28,ff-4,2a,0-7,64,ff-2,ce,0-4,cc,ff-2,65,0-3,3a,f7,ff,ca,21,0-4,1,50,ff-2,b9,19,0-6,55,ff-2,55,0-8,ed,ff,fe,cd,aa-9,39,0-6,ff-2,aa,0-f,e,af,ff,e4,9,0-a,aa,ff-2,0-28,55,ff-2,55,0-e,5a,bc,ea,f8,ff-2,fc,99,2,0-5,ff-2,aa,0-7,5d,f6,ff,a1,0-2,3a,90,c8,e1,f6,fd,f9,ef,d3,a9,2d,0-9,55,ff-2,55,0-9,3,78,c7,ed,fa-2,ed,c7,7a,3,0-9,d3,ff-2,d5,0-8,47,f1,ff,8d,0-4,8b,ff,f2,48,0-2,1b,c1,ff,fa,45,0-7,a1,fd,fc,86,0-6,55,ff-2,55,0-8,ff-d,55,0-6,ff-2,aa,0-10,3e,fd,ff,6d,1,0-9,aa,ff-2,0-28,1c,55-2,1c,0-e,2,17,40,4e,7e,ed,fd,c2,13,0-5,55-2,39,0-7,13,4c,55,48,0-3,1,1e,37,4c,53,4f,45,29,9,0-a,1c,55-2,1c,0-a,3,1e,43,50-2,43,1e,3,0-a,3b,55-2,3c,0-8,15,4d,55,26,0-4,25,55,4e,15,0-2,14,
|
||
|
"ff-2,ad,13,0-2,55,ff-2,8e,55-8,39,0-2,aa,ff-2,0-8,55,ff-2,55,0-2,ff-2,aa,0-5,a9,ff-3,aa,0-3,14,a2,ff-2,a5,67-2,a5,ff-2,9e,12,0-3,23,fb,f6,3d,0-b,24,ce,ff,d5,1,0-7,41,ea,ff,9e,0-2,ff-9,fb,8f,1e,0-6,10,67,ef,ff-5,f6,a6,0-4,ff-8,bc,4f,1,0-5,55,ff-b,aa,0-3,55,ff-2,55,0-e,3c,b3,ff-6,f3,9f,20,0-3,ff-2,aa,0-7,ff-2,aa,0-3,55,ff-a,55,0-3,52,d7,fe,ff-6,a5,20,0-6,ff-2,aa,0-6,f,d0,ff,f3,67,0-2,55,ff-b,aa,0-2,aa,ff-2,0-8,55,ff-2,55,0-2,ff-2,aa,0-5,57,f4,ff-2,aa,0-4,1c,b2,fb,ff-4,fa,ae,1a,0-5,86,f8,d6,40,0-a,30,a1,aa,60,0-8,14,85,aa,99,0-2,aa-6,a0,8e,5c,1c,0-a,11,52,8e,a2,9a,74,20,0-5,aa-4,a1,91,67,2d,0-8,39,aa-b,71,0-3,39,aa-2,39,0-10,32,73,98,a4,8f,65,19,0-5,aa-2,71,0-7,aa-2,71,0-3,39,aa-a,39,0-4,3,2c,73,96,a6,9c,75,35,0-8,aa-2,71,0-7,36,a2,aa,9d,6,0,39,aa-b,71,0-2,71,aa-2,0-8,39,aa-2,39,0-2,aa-2,71,0-5,16,88,aa-2,71,0-5,4,30,82,9d,9c,80,2e,3,0-6,1e,be,fe,d8,4c,5,0-fb,14,ba,f8,fc,d6,86,67,5c,7c,b2,32,0-f6,1b,75,ec,ff-5,f9,56,0-f8,c,45,84,9e,a6,91,4f,e,0-9f6,c,4f,b6,e6,f6,df,8e,38,0-6,2,e,23,33,48,53,55-2,0-8,1c,48,8f,c2,ec,fa,f1,d6,94,4c,8,0-5,22,7b,af,d1,ef,fb,f0,d0,83,36,0-c,17,4f,55-2,0-6,1c,55-a,1c,0-6,1,1b,72,ba,e9,f9,ee,cf,90,25,0-4,55-c,39,0-5,1e,6d,c8,ed,f9,e7,a7,56,7,0-7,2f,82,d3,f2,f4,db,8c,3b,1,0-56,d,48,87,cb,ec,fa,ee,b8,69,11,0-7,83,ed,ff-4,fe,dc,3c,0-5,3b,b8,cd,dd,f2,fd,ff-2,0-8,c6,f0,ff-7,ee,87,12,0-4,55,ff-7,fd,dd,4d,1,0-a,80,f9,ff-2,0-6,55,ff-a,55,0-6,33,b9,fd,ff-6,55,0-4,ff-c,a7,0-4,12,c0,f9,ff-5,f2,79,9,0-5,34,d7,fc,ff-4,fe,df,49,0-56,7e,ed,ff-6,fa,96,14,0-4,1,5e,ff-2,a1,2f,d,46,d7,ff,d7,2f,0-4,53,f1,dd,cd,b8,e5,ff-2,0-8,ff,eb,ae,6d,27,c,e,37,aa,f4,fe,a8,3,0-3,4f,d4,90,4f,18,6,16,54,d6,ff,e7,48,0-9,34,f9,ff-3,0-6,55,ff-2,c6,aa-7,39,0-5,21,e3,ff,e3,86,26,9,19,50,bd,4b,0-4,aa-8,ab,e2,ff-2,5c,0-3,c,a6,ff,fb,81,21,8,31,bf,fd,f6,64,0-4,27,d1,ff,eb,6b,1c,9,33,b7,f9,e1,3e,0-55,aa,ea,aa,49,16,2,1d,9a,f4,fd,81,0-4,1a,c0,ff,d6,13,0-3,53,eb,fc,86,0-4,1a,47,33,23,e,ac,ff-2,0-8,b2,4c,d,0-5,13,a2,ff,f9,35,0-3,16,2a,1,0-5,4d,e6,ff,a2,0-8,12,aa,e8-2,ff-2,0-6,55,ff-2,55,0-c,7,92,ff,fb,51,6,0-4,17,13,0-c,18,c0,ff,f1,11,0-3,34,de,ff,bc,6,0-3,3a,dd,ff,bc,0-4,71,fb,f9,77,0-4,21,c3,fe,9b,0-55,84,48,d,0-4,1a,c4,ff,d5,0-4,52,f5,fa,63,0-4,a,aa,ff,ea,6,0-8,aa,ff-2,0-11,29,ff-2,8a,0-b,d,b7,ff,ea,0-8,75,f9,86,ae,ff-2,0-6,55,ff-2,55,0-c,3a,e4,fe,92,0-14,54,f3,ff,94,0-4,4f,f9,ff,68,0-4,a,b4,ff,f3,0-4,c3,ff,ce,24,0-5,55,ff,f5,d,0-5b,8,b2,ff,f7,0-4,87,ff,e3,39,0-5,72,ff-2,31,0-8,aa,ff-2,0-11,8,ff-2,a4,1,0-a,4,ae,ff,f9,0-7,18,e6,eb,19,aa,ff-2,0-6,55,ff-2,55,0-c,6e,fc,ed,47,0-14,a1,ff,ef,4b,0-4,51,fb,ff,5a,0-4,3,ad,ff,f7,0-4,e9,ff,b6,c,0-5,1c,ff-2,3d,0-2e,6,5b,2e,0-11,5b,31,3,0-16,30,d9,ff,e2,0-4,bb,ff,c7,1d,0-5,3b,ff-2,65,0-8,aa,ff-2,0-11,23,ff-2,af,5,0-a,1c,c6,ff,d4,0-6,e,a4,f5,67,0,aa,ff-2,0-6,55,ff-2,55,0-c,ac,ff,ca,20,f,38,51,4f,39,13,0-d,18,f8,ff,b8,13,0-4,38,e2,ff,7d,0-4,15,bf,ff,c5,0-4,fa,ff,ac,2,0-5,5,ff-2,70,0-7,55,ff-3,0-c,55,ff-3,0-10,f,3a,90,e4,ff,55,0-11,aa,fc,d0,67,2f,3,0-12,1d,ca,ff,fa,80,0-4,dc,ff,ba,10,0-5,21,ff-2,86,0-8,aa,ff-2,0-11,6a,ff-2,96,1,0-a,77,f4,fc,80,0-6,53,ee,be,18,0,aa,ff-2,0-6,55,ff-2,98,91,a5,9b,7f,38,6,0-6,d3,ff,b8,1f,a8,e2,fb,f9,e3,b9,34,0-c,6a,ff-2,72,1,0-4,f,a9,ff,d4,b,0-3,4b,ea,f7,6a,0-4,f3,ff,af,5,0-5,d,ff-2,8b,0-7,55,ff-3,0-c,55,ff-3,0-e,d,53,b5,e4,ff-2,f5,4b,0-11,97,ff-2,fa,d9,93,3c,0-10,1f,ad,ff-2,c3,22,0-4,f0,ff,af,5,6,33,4c,21,0,b,ff-2,9a,0-8,aa,ff-2,0-10,30,d5,ff,fc,3c,0-6,39,55,57,74,b9,ff,f3,8c,12,0-5,14,df,f7,37,0-2,aa,ff-2,0-6,55,ff-7,fe,d2,3e,5,0-4,ed,ff,c8,c0,e8,bc,ae,be,f2,ff,e7,4f,0-a,17,c1,ff,f1,11,0-6,13,bb,f6,ce,75,5c,85,f2,ed,78,a,0-4,d1,ff,c5,1b,0-5,42,ff-2,9f,0-7,55,ff-3,0-c,55,ff-3,0-b,e,43,89,eb,ff-2,ef,bb,79,18,0-2,aa,ff-d,55,0-2,39,8d,d2,f7,ff-2,cb,73,2b,7,0-b,15,ca,ff,fd,ca,18,0-5,f9,ff,ac,2,37,d5,f6,bb,0,4,ff-2,a4,0-8,aa,ff-2,0-f,3,ae,fc,ff,bb,4,0-6,aa,ff-4,dc,64,c,0-5,4,7f,ff,a6,1,0-2,aa,ff-2,0-6,4d,c7,8b,6b,5a,5d,81,c7,ff-2,db,45,0-4,f8,ff,f7,df,44,12,4,14,6e,eb,ff,cc,1,0-9,45,ed,ff,aa,0-8,1d,89,fc,ff-3,df,66,6,0-5,99,ff,e9,42,0-4,7,95,ff-2,a7,0-7,55,ff-3,0-c,55,ff-3,0-9,8,62,ae,e9,fe,ff,ef,92,4b,14,1,0-3,aa,ff-d,55,0-3,2,28,59,bc,f7,ff,fd,d5,9e,36,4,0-8,4,85,ff-2,c7,31,0-6,fa,f
|
||
|
|
||
|
IGL_INLINE void decompress_verasansmono_atlas(unsigned char* _fontatlas)
|
||
|
{
|
||
|
std::string s = verasansmono_compressed_atlas; // Make a copy so that we can erase pieces as we parse the atlas
|
||
|
std::string delim_atlas = ",";
|
||
|
std::string delim_item = "-";
|
||
|
size_t atlas_split = 0; // Locations found with delims above
|
||
|
size_t item_split = 0;
|
||
|
std::string curr_item; // Current element of the atlas string
|
||
|
int full_res = 0; // Running sum of the total bytes (256*256*1)
|
||
|
|
||
|
while ((atlas_split = s.find(delim_atlas)) != std::string::npos) {
|
||
|
curr_item = s.substr(0, atlas_split);
|
||
|
if(curr_item.find(delim_item) != std::string::npos)
|
||
|
{
|
||
|
item_split = curr_item.find(delim_item);
|
||
|
unsigned int occurences = (unsigned int)std::stoi(curr_item.substr(item_split+1, curr_item.length()-1), 0, 16);
|
||
|
for(int i=0; i<occurences;i++)
|
||
|
{
|
||
|
_fontatlas[full_res+i] = std::stoi(curr_item.substr(0, item_split), 0, 16);
|
||
|
}
|
||
|
full_res += occurences;
|
||
|
}
|
||
|
else {
|
||
|
_fontatlas[full_res] = std::stoi(curr_item, 0, 16);
|
||
|
full_res+=1;
|
||
|
}
|
||
|
s.erase(0, atlas_split + delim_atlas.length());
|
||
|
}
|
||
|
// Catch last value in compressed atlas string
|
||
|
item_split = s.find(delim_item);
|
||
|
if(item_split != std::string::npos)
|
||
|
{
|
||
|
unsigned int occurences = std::stoi(s.substr(item_split+1, s.length()-1), 0, 16);
|
||
|
for(int i=0; i<occurences;i++)
|
||
|
{
|
||
|
_fontatlas[full_res+i] = std::stoi(s.substr(0, item_split), 0, 16);
|
||
|
}
|
||
|
full_res += occurences;
|
||
|
}
|
||
|
assert(full_res == 256*256);
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|