Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2013-01-31 14:45:07 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2013-02-01 02:50:52 +0400
commit8f72635e4551c3eaa510c5c1286e657c1e5e954e (patch)
tree4c1a8a159d66fd85fa2d6bb7820d9c1019355b24 /src/thirdparty/VirtualDub/Kasumi
parentab2bf97449659d2a9f6259d3f1ca7c27ece0b955 (diff)
update VirtualDub to v1.10.4-test1
Diffstat (limited to 'src/thirdparty/VirtualDub/Kasumi')
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj3
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj.filters15
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/data/Tuffy.ttfbin0 -> 19300 bytes
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/data/Tuffy.txt12
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/h/defaultfont.inl307
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/source/text.cpp299
6 files changed, 636 insertions, 0 deletions
diff --git a/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj b/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj
index d3b03866e..7192489f3 100644
--- a/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj
+++ b/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj
@@ -116,6 +116,7 @@
</ClCompile>
<ClCompile Include="source\stretchblt_reference.cpp" />
<ClCompile Include="source\tables.cpp" />
+ <ClCompile Include="source\text.cpp" />
<ClCompile Include="source\triblt.cpp" />
<ClCompile Include="source\uberblit.cpp" />
<ClCompile Include="source\uberblit_16f.cpp" />
@@ -230,6 +231,8 @@
</YASM>
</ItemGroup>
<ItemGroup>
+ <None Include="data\Tuffy.ttf" />
+ <None Include="h\defaultfont.inl" />
<None Include="source\a_triblt.inc" />
</ItemGroup>
<ItemGroup>
diff --git a/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj.filters b/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj.filters
index 771a95161..eac3699c3 100644
--- a/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj.filters
+++ b/src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj.filters
@@ -26,6 +26,12 @@
<Filter Include="Interface Header Files">
<UniqueIdentifier>{b69f77b1-cab6-4c5c-9c28-736eb17ce889}</UniqueIdentifier>
</Filter>
+ <Filter Include="Source Data Files">
+ <UniqueIdentifier>{8d72d2d5-c182-4c11-aa60-d0a265b0f440}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Autogenerated Header Files">
+ <UniqueIdentifier>{8e7ccb0e-3ac7-4207-9c64-a24b5028014f}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="source\alphablt.cpp">
@@ -142,6 +148,9 @@
<ClCompile Include="source\stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="source\text.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="h\bitutils.h">
@@ -305,5 +314,11 @@
</ItemGroup>
<ItemGroup>
<None Include="source\a_triblt.inc" />
+ <None Include="data\Tuffy.ttf">
+ <Filter>Source Data Files</Filter>
+ </None>
+ <None Include="h\defaultfont.inl">
+ <Filter>Autogenerated Header Files</Filter>
+ </None>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/thirdparty/VirtualDub/Kasumi/data/Tuffy.ttf b/src/thirdparty/VirtualDub/Kasumi/data/Tuffy.ttf
new file mode 100644
index 000000000..8151817be
--- /dev/null
+++ b/src/thirdparty/VirtualDub/Kasumi/data/Tuffy.ttf
Binary files differ
diff --git a/src/thirdparty/VirtualDub/Kasumi/data/Tuffy.txt b/src/thirdparty/VirtualDub/Kasumi/data/Tuffy.txt
new file mode 100644
index 000000000..1986bc15c
--- /dev/null
+++ b/src/thirdparty/VirtualDub/Kasumi/data/Tuffy.txt
@@ -0,0 +1,12 @@
+Tuffy.ttf comes from the website of Thatcher Ulrich, 1/7/2007:
+http://tulrich.com/fonts/
+
+The description on the website:
+
+ Public Domain Fonts
+
+ Here are my dabblings in font design. I have placed them in the Public
+ Domain. This is all 100% my own work. Usage is totally unrestricted. If
+ you want to make derivative works for any purpose, please go ahead.
+
+ I welcome comments & constructive criticism.
diff --git a/src/thirdparty/VirtualDub/Kasumi/h/defaultfont.inl b/src/thirdparty/VirtualDub/Kasumi/h/defaultfont.inl
new file mode 100644
index 000000000..bb74eb944
--- /dev/null
+++ b/src/thirdparty/VirtualDub/Kasumi/h/defaultfont.inl
@@ -0,0 +1,307 @@
+// Created by Asuka from Tuffy.ttf. DO NOT EDIT!
+
+const uint16 g_VDDefaultFont_FontPointArray[]={
+0x6b4a,0x6b33,0xf133,0xf14a,0x452f,0x4d2f,0x5138,0x523b,0x523e,0x5248,0x4a4c,0x494d,0x474d,0x464e,0x454d,0x3c4d,
+0x3845,0x3741,0x373e,0x3734,0x3f30,0x4030,0x422f,0x432f,0x452f,0xc360,0xf25d,0xfa5d,0xfb65,0xfc66,0xfc68,0xfc68,
+0xfc68,0xfc70,0xf472,0xf373,0xf273,0xc370,0xbe6f,0xbd69,0xbd69,0xbd68,0xbd62,0xc261,0xc260,0xc360,0xc337,0xf234,
+0xfa34,0xfb3c,0xfc3d,0xfc3e,0xfc3f,0xfc47,0xf449,0xf349,0xf249,0xc346,0xbe46,0xbd40,0xbd3f,0xbd3f,0xbd38,0xc237,
+0xc237,0xc337,0x7eab,0xa9ab,0xa97a,0x7e7a,0x6cc0,0x3fc0,0x3fab,0x6cab,0x6c7a,0x3f7a,0x3f65,0x6c65,0x6c34,0x7e34,
+0x7e65,0xa965,0xa934,0xba34,0xba65,0xea65,0xea7a,0xba7a,0xbaab,0xeaab,0xeac0,0xbac0,0xbaf3,0xa9f3,0xa9c0,0x7ec0,
+0x7ef3,0x6cf3,0x6e2a,0x733b,0x6940,0x634d,0x5f56,0x5f5e,0x5f7a,0x707d,0x737e,0x767e,0x777e,0x797d,0x857a,0x8c69,
+0x8e64,0x8f5d,0x9532,0xae2c,0xb22b,0xb72b,0xca2b,0xd43f,0xda49,0xda54,0xf154,0xf169,0xdb69,0xdb77,0xcf86,0xc691,
+0xbd93,0xb882,0xc07f,0xc673,0xcb69,0xcb5e,0xcb40,0xb640,0xb340,0xb041,0xa743,0xa350,0xa255,0xa15d,0x9b81,0x878e,
+0x8291,0x7d92,0x7993,0x7693,0x6093,0x557d,0x5073,0x5069,0x3969,0x3954,0x5054,0x5047,0x5b38,0x642d,0x6e2a,0x68a0,
+0x65a0,0x63a0,0x57a3,0x55af,0x54b1,0x54b4,0x54c0,0x5ec6,0x63c9,0x68c9,0x6ac9,0x6cc8,0x76c6,0x7abb,0x7bb8,0x7bb4,
+0x7ba8,0x71a2,0x6da0,0x68a0,0x688e,0x798e,0x849e,0x8aa8,0x8ab4,0x8ac8,0x7cd4,0x76d8,0x6fda,0x6bdb,0x68db,0x56db,
+0x4ccb,0x46c0,0x46b4,0x46a0,0x5494,0x5a90,0x618e,0x648e,0x688e,0xc143,0xbe43,0xbc43,0xb146,0xae51,0xad54,0xad57,
+0xad64,0xb869,0xbc6c,0xc16c,0xc36c,0xc56b,0xcf69,0xd35e,0xd45b,0xd457,0xd44b,0xca45,0xc643,0xc143,0xc131,0xd231,
+0xdd41,0xe34b,0xe357,0xe36b,0xd577,0xcf7b,0xc87d,0xc47e,0xc17e,0xb07e,0xa56e,0x9f64,0x9f57,0x9f43,0xad38,0xb333,
+0xba31,0xbd31,0xc131,0x4a5e,0x4a49,0xdfaf,0xdfc3,0xd48f,0xdf8a,0xe37b,0xe477,0xe472,0xe463,0xd959,0xd152,0xc852,
+0xc452,0xc153,0xb257,0xac66,0xaa6c,0xaa72,0xaa8a,0x988a,0x9873,0x9859,0x874c,0x7d45,0x6f45,0x6b45,0x6746,0x544a,
+0x4b5d,0x4766,0x4771,0x4786,0x5694,0x609d,0x6c9d,0x6c7f,0x7e7f,0x7ec9,0x6cc9,0x6cb5,0x5ab5,0x49a4,0x3590,0x3571,
+0x3551,0x4a3e,0x5533,0x6330,0x692f,0x6f2f,0x872f,0x9843,0xa04d,0xa255,0xaa42,0xbe3d,0xc33c,0xc83c,0xdb3c,0xe94e,
+0xf55d,0xf572,0xf593,0xdea1,0xc337,0xf234,0xfa34,0xfb3c,0xfc3d,0xfc3e,0xfc3f,0xfc47,0xf449,0xf349,0xf249,0xc346,
+0xbe46,0xbd40,0xbd3f,0xbd3f,0xbd38,0xc237,0xc237,0xc337,0x2e49,0x4a35,0x6c2d,0x8128,0x9628,0xc228,0xec3e,0xf643,
+0xfe49,0xfe62,0xce3d,0x953d,0x843d,0x7341,0x4e4a,0x2e62,0x2d47,0x2d2f,0x554d,0x8453,0x8d54,0x9554,0xa454,0xb650,
+0xdd46,0xfd2f,0xfd47,0xe05c,0xbb64,0xa769,0x9569,0x6069,0x344c,0x304a,0x2d47,0x8176,0x6389,0x5a78,0x7865,0x5a52,
+0x6340,0x8154,0x812b,0x932b,0x9354,0xb23f,0xbb50,0x9b65,0xbc79,0xb28a,0x9376,0x939d,0x819d,0x932d,0x9358,0xba58,
+0xba6c,0x936c,0x9398,0x8198,0x816c,0x596c,0x5958,0x8158,0x812d,0x454f,0x334f,0x1e3e,0x1d3e,0x1d3d,0x2136,0x2e40,
+0x3740,0x3736,0x3f32,0x4031,0x4231,0x4331,0x4531,0x4d31,0x5139,0x523c,0x5240,0x524a,0x4a4e,0x494e,0x474e,0x464f,
+0x454f,0x9231,0x9291,0x8091,0x8031,0x4531,0x4d31,0x5139,0x523c,0x5240,0x524a,0x4a4e,0x494e,0x474e,0x464f,0x454f,
+0x3c4f,0x3846,0x3743,0x3740,0x3736,0x3f32,0x4031,0x4231,0x4331,0x4531,0x3935,0x391f,0xfc84,0xfc9a,0x9530,0xc230,
+0xde46,0xf559,0xf574,0xf595,0xd4a8,0xc8ae,0xb8b2,0xa7b6,0x95b6,0x66b6,0x4ba0,0x358e,0x3573,0x3552,0x553f,0x6238,
+0x7234,0x8230,0x9530,0x9546,0x8446,0x744a,0x5053,0x4869,0x476e,0x4773,0x478c,0x6798,0x7ba0,0x95a0,0xa7a0,0xb79c,
+0xdd93,0xe37c,0xe478,0xe474,0xe45c,0xc44f,0xaf46,0x9546,0xd774,0xc157,0xd04a,0xf174,0xf18a,0x398a,0x3974,0xc547,
+0xcc33,0xe03a,0xed50,0xf660,0xf672,0xf68a,0xe69c,0xdaaa,0xc7af,0xbeb1,0xb5b1,0x9eb1,0x8699,0x6c7e,0x6b7e,0x4b5b,
+0x4bb4,0x39b4,0x392e,0x7c76,0x8e89,0x928c,0xa49b,0xb59b,0xbd9b,0xc499,0xdd93,0xe37d,0xe478,0xe472,0xe45d,0xd44f,
+0xcd4a,0xc547,0x5935,0x5e4b,0x4f52,0x4964,0x476b,0x4772,0x478c,0x5798,0x609e,0x6c9e,0x709e,0x759d,0x8899,0x8e82,
+0x907b,0x9073,0x9068,0xa168,0xa173,0xa18a,0xb094,0xb899,0xc299,0xc799,0xcb98,0xdf93,0xe37d,0xe478,0xe472,0xe471,
+0xe45e,0xd852,0xd44f,0xd04e,0xd83a,0xeb45,0xf25c,0xf667,0xf672,0xf692,0xe2a4,0xd9ab,0xceae,0xc8af,0xc2af,0xa7af,
+0x9894,0x94a3,0x86ac,0x7fb1,0x77b3,0x72b4,0x6cb4,0x4db4,0x3e9a,0x3589,0x3572,0x355b,0x4347,0x4c3a,0x5935,0xef9c,
+0x7d9c,0x7db7,0x6bb7,0x6b9c,0x399c,0x3986,0x6b86,0x6b2e,0xf184,0xf186,0xf19c,0xf19d,0xd386,0x7d50,0x7d86,0x9f77,
+0x9f63,0x9353,0x9353,0x9352,0x9c3e,0xf14b,0xf1aa,0xdfaa,0xdf5e,0xa955,0xb061,0xb077,0xb097,0x9aa9,0x90b1,0x82b4,
+0x7bb6,0x73b6,0x56b6,0x44a2,0x3590,0x3576,0x3555,0x4c41,0x5639,0x6235,0x664b,0x4757,0x4776,0x478e,0x5a99,0x64a0,
+0x73a0,0x78a0,0x7e9f,0x919a,0x9a89,0x9f80,0x9f77,0x6c9e,0x709e,0x749d,0x8699,0x8e87,0x927e,0x9273,0x925d,0x8250,
+0x7849,0x6d49,0x6949,0x654a,0x534e,0x4c60,0x4869,0x4873,0x488a,0x5897,0x619e,0x6c9e,0xa160,0xa56a,0xa573,0xa590,
+0x92a3,0x87ae,0x78b2,0x72b3,0x6cb3,0x57b3,0x46a1,0x358e,0x3573,0x3555,0x4a42,0x5438,0x6236,0x6734,0x6c34,0x8234,
+0xa047,0xa54b,0xa74c,0xf87e,0xef90,0xf1ba,0x396c,0x3952,0xde9b,0xde31,0xf131,0x4774,0x478b,0x5699,0x61a3,0x6fa3,
+0x74a3,0x78a2,0x8a9e,0x9289,0x9680,0x9675,0x965b,0x864e,0x7c47,0x6f47,0x6b47,0x6748,0x544c,0x4b5f,0x4769,0x4774,
+0xc751,0xc351,0xbf52,0xaf56,0xaa68,0xa86e,0xa875,0xa88b,0xb794,0xbe98,0xc798,0xca98,0xce97,0xde94,0xe381,0xe47b,
+0xe474,0xe45c,0xd454,0xce51,0xc751,0xf674,0xf692,0xe4a3,0xdbab,0xd1ad,0xccaf,0xc7af,0xacaf,0x9f94,0x95ad,0x81b5,
+0x7eb7,0x79b8,0x74b9,0x6fb9,0x55b9,0x43a2,0x358e,0x3574,0x3556,0x4842,0x5436,0x6332,0x6931,0x6f31,0x8b31,0x9a4b,
+0x9d50,0x9f55,0xaa40,0xbc3c,0xc13a,0xc73a,0xde3a,0xec50,0xf65f,0xf674,0xbe4b,0xba4b,0xb64c,0xa450,0x9c62,0x986c,
+0x9876,0x988d,0xa899,0xb2a0,0xbda0,0xc1a0,0xc59f,0xd79b,0xde89,0xe280,0xe276,0xe25f,0xd252,0xc94b,0xbe4b,0x898a,
+0x857f,0x8576,0x8559,0x9846,0xa33b,0xb238,0xb836,0xbe36,0xd336,0xe448,0xf55b,0xf577,0xf595,0xe0a8,0xd6b1,0xc8b4,
+0xc3b5,0xbeb5,0xa7b5,0x8aa2,0x859e,0x839d,0x326b,0x3b59,0xa133,0xaa33,0xad3c,0xae3f,0xae42,0xae4c,0xa750,0xa551,
+0xa451,0xa252,0xa151,0x9851,0x9449,0x9346,0x9342,0x9339,0x9b35,0x9d34,0x9e34,0x9f33,0xa133,0x4533,0x4d33,0x513c,
+0x523f,0x5242,0x524c,0x4a50,0x4951,0x4751,0x4652,0x4551,0x3c51,0x3849,0x3746,0x3742,0x3739,0x3f35,0x4034,0x4234,
+0x4333,0x4533,0x4551,0x3351,0x1e41,0x1d40,0x1d40,0x2138,0x2e42,0x3742,0x3739,0x3f35,0x4034,0x4234,0x4333,0x4533,
+0x4d33,0x513c,0x523f,0x5242,0x524c,0x4a50,0x4951,0x4751,0x4652,0x4551,0xa133,0xaa33,0xad3c,0xae3f,0xae42,0xae4c,
+0xa750,0xa551,0xa451,0xa252,0xa151,0x9851,0x9449,0x9346,0x9342,0x9339,0x9b35,0x9d34,0x9e34,0x9f33,0xa133,0x3c76,
+0x892e,0xd576,0xd592,0x894a,0x3c92,0x782b,0x789c,0x669c,0x662b,0xa62b,0xa69c,0x949c,0x942b,0x3b4b,0x3b2f,0x8977,
+0xd52f,0xd54b,0x8992,0x7e73,0x6673,0x665d,0x7f5d,0x8c5d,0x986d,0xa680,0xb48f,0xc38f,0xc78f,0xcb8e,0xde8a,0xe374,
+0xe46f,0xe468,0xe453,0xd446,0xcb3f,0xc23f,0xc52a,0xdd2d,0xec43,0xf653,0xf667,0xf686,0xe498,0xdba1,0xcfa4,0xc9a6,
+0xc3a6,0xafa6,0x9c8f,0x8c7b,0x8573,0x7e73,0x455b,0x4d5b,0x5164,0x5267,0x526b,0x5274,0x4a78,0x4979,0x4779,0x467a,
+0x457a,0x3c7a,0x3871,0x376e,0x376b,0x3761,0x3f5d,0x405c,0x425c,0x435b,0x455b,0x54c8,0x47d3,0x34b7,0x3494,0x3468,
+0x4f49,0x6331,0x812a,0x8b28,0x9528,0xbc28,0xd845,0xf362,0xf58c,0xf690,0xf694,0xf6be,0xdcde,0xc8f7,0xacfd,0xa4ff,
+0x9cff,0x86ff,0x77ed,0x6ee2,0x6ed7,0x6ec9,0x78bc,0x79ba,0x7ab9,0x6baa,0x6a94,0x6a7c,0x7a6e,0x8267,0x8c64,0x9063,
+0x9563,0xaa63,0xb776,0xc083,0xc094,0xc0ab,0xafb8,0xa7be,0x9ec0,0x9ac1,0x95c1,0x93c1,0x90c2,0x85c5,0x80cf,0x7ed2,
+0x7ed6,0x7ee0,0x89e7,0x91ed,0x9ced,0xa2ed,0xa9eb,0xc3e5,0xd5ca,0xe6b2,0xe694,0xe66e,0xcd53,0xb53a,0x953a,0x8c3a,
+0x843c,0x6543,0x535f,0x4477,0x4494,0x44ac,0x51c4,0x52c6,0x54c8,0x9576,0x9276,0x8f76,0x817a,0x7c88,0x7a8e,0x7a94,
+0x7aa5,0x88ad,0x8eb0,0x95b0,0x98b0,0x9aaf,0xa7ac,0xad9f,0xb09a,0xb094,0xb084,0xa57b,0x9d76,0x9576,0xd77f,0x8763,
+0x879c,0x79a2,0x795c,0x3943,0x392c,0xf176,0xf188,0x39d2,0x39ba,0x9249,0x4b49,0x4b76,0x4b97,0x60a2,0x67a5,0x6fa5,
+0x73a5,0x77a4,0x8c9f,0x9085,0x927e,0x9276,0x924a,0xdf49,0xa449,0xa36b,0xa36b,0xa394,0xbb99,0xbe9a,0xc19a,0xc49a,
+0xc899,0xdf94,0xdf6b,0xdf4a,0xf133,0xf16b,0xf19d,0xd5ac,0xd0ae,0xcbaf,0xc6b1,0xc1b1,0xb0b1,0xa3a1,0x9c97,0x9c8d,
+0x9ca9,0x84b5,0x7eb9,0x77ba,0x72bb,0x6ebb,0x4ebb,0x41a0,0x3990,0x3976,0x3933,0x55c4,0x3cb2,0x3797,0x358f,0x3585,
+0x355a,0x5643,0x6538,0x7933,0x8630,0x9430,0xbc30,0xd947,0xf65f,0xf685,0xf6a9,0xdebd,0xdcc0,0xd8c2,0xd0b0,0xdda5,
+0xe292,0xe48c,0xe485,0xe485,0xe468,0xc856,0xb247,0x9447,0x8947,0x7e4a,0x5e52,0x4f68,0x4776,0x4785,0x479d,0x56ac,
+0x5aaf,0x5eb2,0x95ad,0xa1ad,0xacab,0xcca3,0xd989,0xdf7d,0xdf6f,0xdf49,0x4b49,0x4b6f,0x4b8d,0x639f,0x77ad,0x95ad,
+0x95c5,0x6bc5,0x51aa,0x3992,0x396f,0x3933,0xf133,0xf16f,0xf197,0xd4af,0xc4bd,0xaec2,0xa2c5,0x95c5,0xf133,0xf1b5,
+0xdfb5,0xdf49,0xa049,0xa0af,0x8eaf,0x8e49,0x4b49,0x4bb5,0x39b5,0x3933,0xf133,0xf1b5,0xdfb5,0xdf49,0xa049,0xa0af,
+0x8eaf,0x8e49,0x3949,0x3933,0x3585,0x3557,0x5b40,0x6937,0x7a33,0x8730,0x9530,0xb930,0xd544,0xf65c,0xf685,0xf6aa,
+0xdebe,0xdbc0,0xd8c3,0xcfaf,0xdfa2,0xe392,0xe48c,0xe485,0xe467,0xc655,0xb047,0x9547,0x8947,0x7e4a,0x5c52,0x4e6a,
+0x4776,0x4785,0x47a9,0x68b7,0x76bd,0x87bd,0x8785,0x9885,0x98d3,0x8ed3,0x67d3,0x4ebe,0x35a9,0x3585,0xf133,0xf149,
+0xa049,0xa0a7,0xf1a7,0xf1bd,0x39bd,0x39a7,0x8ea7,0x8e49,0x3949,0x3933,0x3938,0xf138,0xf14e,0x394e,0x7c32,0x7c46,
+0x7646,0x6f47,0x584d,0x4e5e,0x4967,0x4972,0x4989,0x5e95,0x6c9d,0x7c9d,0xf19d,0xf1b3,0x7cb3,0x58b3,0x449b,0x368a,
+0x3672,0x3652,0x4f40,0x5a38,0x6934,0x7232,0x7c32,0xf133,0xf149,0x9749,0xf1ad,0xf1c8,0x9865,0x39d0,0x39b3,0x8b57,
+0x7e49,0x3949,0x3933,0xf133,0xf149,0x4b49,0x4bb5,0x39b5,0x3933,0x3933,0xf133,0xf151,0x5392,0xf1d3,0xf1f1,0x39f1,
+0x39db,0xd1db,0x3b9e,0x3b85,0xd149,0x3949,0x3933,0xf133,0xf149,0x5eb1,0xf1b1,0xf1c7,0x39c7,0x39b3,0xcf49,0x3949,
+0x94bd,0xa3bd,0xb1ba,0xd9b0,0xe291,0xe48a,0xe481,0xe45c,0xbe4e,0xab46,0x9446,0x8646,0x794a,0x5253,0x4971,0x4779,
+0x4781,0x47a7,0x6cb5,0x7ebd,0x94bd,0x942f,0xb92f,0xd542,0xf659,0xf681,0xf6af,0xcec5,0xc1cd,0xb1d1,0xa3d4,0x94d4,
+0x70d4,0x55c1,0x35aa,0x3581,0x3554,0x5b3e,0x6936,0x7932,0x872f,0x942f,0x9b49,0x9b66,0x9b9d,0xbd9d,0xc19d,0xc59c,
+0xdf96,0xdf66,0xdf49,0xf133,0xf149,0xf166,0xf198,0xd7ab,0xd0b1,0xc8b3,0xc3b4,0xbdb4,0xa1b4,0x9399,0x8885,0x8866,
+0x8849,0x3949,0x3933,0x94be,0xa3be,0xb0bb,0xd7b1,0xe194,0xe48c,0xe481,0xe462,0xc652,0xb146,0x9446,0x8746,0x7a4a,
+0x5253,0x4972,0x477a,0x4784,0x4793,0x4e9e,0x4fa0,0x50a2,0x6287,0x7193,0x5eaf,0x70be,0x94be,0x942f,0xb82f,0xd441,
+0xf658,0xf681,0xf6af,0xcfc6,0xc1ce,0xb0d2,0xa2d5,0x94d5,0x72d5,0x59c5,0x56c3,0x53c0,0x43d8,0x35cb,0x45b3,0x37a0,
+0x358b,0x3587,0x3583,0x3555,0x5c3e,0x6936,0x7932,0x872f,0x942f,0x9b49,0x9b66,0x9b9d,0xbd9d,0xc19d,0xc59c,0xdf96,
+0xdf66,0xdf49,0x39a4,0x8868,0x8849,0x3949,0x3933,0xf133,0xf149,0xf166,0xf197,0xd8ab,0xd0b1,0xc7b3,0xc2b4,0xbdb4,
+0xa4b4,0x959d,0x8d91,0x8b81,0x39be,0x5d2b,0x673e,0x514e,0x4a60,0x4769,0x4774,0x478b,0x559a,0x5fa3,0x6ba3,0x6ea3,
+0x71a2,0x869d,0x926f,0x936e,0x936c,0x9f3b,0xbb34,0xbf34,0xc334,0xdd34,0xeb4c,0xf65e,0xf674,0xf699,0xddaf,0xdab2,
+0xd7b5,0xcda3,0xe096,0xe37c,0xe478,0xe474,0xe45d,0xd651,0xce4a,0xc34a,0xc04a,0xbe4b,0xb04e,0xa768,0xa17c,0x9896,
+0x959b,0x8ab4,0x76b9,0x71ba,0x6bba,0x51ba,0x41a1,0x358e,0x3574,0x354b,0x5631,0x592e,0x5d2b,0xf12e,0xf1c9,0xdfc9,
+0xdf88,0x3988,0x3972,0xdf72,0xdf2e,0xf1b0,0xf1c7,0x8ac7,0x56c7,0x40a6,0x3595,0x357d,0x3552,0x563f,0x6039,0x6d36,
+0x7a33,0x8a33,0xf133,0xf14a,0x8a4a,0x7d4a,0x714c,0x5154,0x496f,0x4775,0x477d,0x4798,0x5fa6,0x70b0,0x8ab0,0xf1b2,
+0xf1c9,0x398b,0x396c,0xf12d,0xf145,0x4e7c,0xf12e,0xf144,0x505e,0xec85,0xeca1,0x50c7,0xf1e1,0xf1f8,0x39d8,0x39b9,
+0xd493,0x396d,0x394e,0xf12c,0xf146,0xa479,0xf1ab,0xf1c5,0x9585,0x39c6,0x39ab,0x8379,0x3946,0x392d,0x956d,0xf12d,
+0xf144,0xa577,0xf1a9,0xf1c1,0x9782,0x3982,0x396b,0x976b,0xf134,0xf1d0,0x4b56,0x4bd2,0x39d2,0x3930,0xdfab,0xdf34,
+0x2d6c,0x2d34,0xfa34,0xfa6c,0xe86c,0xe84a,0x3e4a,0x3e6c,0x3983,0xfc1e,0xfc36,0x399b,0x2d34,0x3e34,0x3e57,0xe857,
+0xe834,0xfa34,0xfa6c,0x2d6c,0xca96,0xca7b,0xe565,0xca4f,0xca35,0xf55c,0xf56e,0x1b2e,0x2d2e,0x2dc8,0x1bc8,0xcb54,
+0xf032,0xf230,0xf430,0xfa2e,0xfd34,0xff37,0xff3a,0xff3f,0xfb43,0xd460,0xd361,0xd261,0xce62,0xcb5e,0xc95c,0xc959,
+0xc956,0xcb54,0x8567,0x8553,0x7649,0x6f43,0x6543,0x6243,0x5f44,0x4f48,0x4958,0x465f,0x4667,0x4678,0x5382,0x5c89,
+0x6589,0x6989,0x6c88,0x7b84,0x8276,0x856f,0x8567,0x9665,0x9679,0x8885,0x8687,0x8588,0x8e88,0x9488,0x9a87,0xb081,
+0xb16a,0xb168,0xb166,0xb152,0xa746,0xb43b,0xc24e,0xc266,0xc282,0xb091,0xa798,0x9c9b,0x969c,0x8e9c,0x7f9c,0x5b9c,
+0x579c,0x549d,0x47a0,0x47ad,0x36ad,0x3693,0x438c,0x458b,0x478a,0x478a,0x3f86,0x3979,0x3570,0x3565,0x354a,0x4739,
+0x5031,0x5b2f,0x602e,0x652e,0x7c2e,0x8b42,0x9652,0x9665,0xf14a,0xf134,0x3934,0x394a,0x4d4a,0x3d56,0x3862,0x3568,
+0x3571,0x3571,0x358e,0x529d,0x65a6,0x7da6,0x8aa6,0x95a3,0xb79b,0xc082,0xc37a,0xc371,0xc359,0xaa4a,0x7d90,0x5e90,
+0x4e82,0x467a,0x4671,0x4660,0x5655,0x604e,0x6c4b,0x7449,0x7d49,0x9c49,0xab5e,0xb267,0xb271,0xb281,0x9d8a,0x988c,
+0x928e,0x8890,0x7d90,0xb19c,0xa58e,0xae83,0xb07d,0xb277,0xb26f,0xb25e,0xa252,0x9345,0x7d45,0x6245,0x5155,0x4660,
+0x466e,0x4681,0x558f,0x499d,0x3d91,0x3985,0x357b,0x356e,0x3550,0x4e3e,0x622f,0x7d2f,0x9d2f,0xb245,0xc357,0xc36f,
+0xc384,0xb992,0xb696,0xb19c,0xf18f,0xf1a4,0x39a4,0x398f,0x4d8f,0x3d83,0x3877,0x3570,0x3568,0x3567,0x354a,0x523c,
+0x5a38,0x6436,0x7033,0x7d33,0xa233,0xb546,0xc353,0xc368,0xc380,0xaa8f,0x7d48,0x7148,0x674b,0x4d51,0x4760,0x4664,
+0x4668,0x4678,0x5784,0x6790,0x7d90,0x8590,0x8d8e,0xa588,0xae75,0xb26e,0xb268,0xb257,0x9d4e,0x8f48,0x7d48,0x8546,
+0x8590,0x8b90,0x908e,0xa789,0xaf78,0xb272,0xb26b,0xb257,0x9c4c,0x9247,0x8546,0x7446,0x6e47,0x6948,0x4f4e,0x4860,
+0x4665,0x466b,0x467c,0x5188,0x548c,0x578e,0x51a0,0x3e96,0x387e,0x3575,0x356b,0x354c,0x503b,0x5a35,0x6632,0x7130,
+0x7d30,0xa330,0xb646,0xc355,0xc36b,0xc38c,0xa69b,0x9e9f,0x95a2,0x89a4,0x7da4,0x74a4,0x74a4,0xaf5d,0x395d,0x3947,
+0xaf47,0xaf34,0xc034,0xc047,0xce47,0xea47,0xf25f,0xf466,0xf46f,0xf47a,0xee84,0xed87,0xec88,0xe07a,0xe374,0xe371,
+0xe35d,0xce5d,0xc05d,0xc078,0xaf78,0x7d45,0x7145,0x6748,0x4c4e,0x475f,0x4662,0x4666,0x4674,0x547f,0x648d,0x7d8d,
+0x858d,0x8d8b,0xa485,0xad74,0xb26d,0xb265,0xb254,0x9c4b,0x8f45,0x7d45,0x4d8c,0x4082,0x3c7b,0x3571,0x3566,0x3566,
+0x3565,0x3544,0x5836,0x5d34,0x6433,0x7030,0x7d30,0xa230,0xb543,0xc351,0xc365,0xc37d,0xaa8c,0xc08c,0xc0a2,0x36a2,
+0x18a2,0x098a,0x007c,0x006b,0x004b,0x183b,0x1f36,0x2734,0x2934,0x2b33,0x2b47,0x2a47,0x2948,0x1b4b,0x145b,0x1162,
+0x116a,0x117e,0x2087,0x298c,0x358c,0x394a,0x3934,0xf134,0xf14a,0xad4a,0xbb56,0xbf5f,0xc367,0xc372,0xc394,0xa69f,
+0xa3a0,0x9ea1,0x96a3,0x8ca3,0x39a3,0x398e,0x8c8e,0x958e,0x9c8c,0xb287,0xb272,0xb262,0xa555,0x9a4a,0x8c4a,0xe134,
+0xe934,0xec3c,0xed3f,0xed42,0xed4a,0xe64e,0xe54e,0xe44f,0xe34f,0xe14f,0xd94f,0xd647,0xd545,0xd542,0xd539,0xdc36,
+0xde35,0xdf35,0xe034,0xe134,0xc037,0xc04c,0x394c,0x3937,0xe134,0xe934,0xec3c,0xed3f,0xed42,0xed4a,0xe64e,0xe54e,
+0xe44f,0xe34f,0xe14f,0xd94f,0xd647,0xd545,0xd542,0xd539,0xdc36,0xde35,0xdf35,0xe034,0xe134,0x1000,0x1c0f,0x1518,
+0x141c,0x131e,0x131f,0x1330,0x2134,0x2937,0x3937,0xc037,0xc04c,0x394c,0x024c,0x021f,0x0210,0x1000,0x845e,0x39a7,
+0x398e,0x7850,0x714a,0x394a,0x3934,0xf134,0xf14a,0x894a,0xc082,0xc09b,0x534c,0x514c,0x4f4d,0x464f,0x465d,0x355d,
+0x3540,0x4639,0x4738,0x4a38,0x4e37,0x5237,0xf137,0xf14c,0x399b,0x3985,0x8c85,0x9685,0x9d83,0xb27e,0xb26f,0xb25e,
+0xa453,0x9a4a,0x8c4a,0x394a,0x3934,0xc034,0xc04a,0xad4a,0xbc54,0xc05f,0xc366,0xc36f,0xc38b,0xa996,0xbda4,0xc1b3,
+0xc3b9,0xc3c0,0xc3e2,0xa4e9,0x9aec,0x8bec,0x39ec,0x39d6,0x8bd6,0x95d6,0x9dd4,0xb2cf,0xb2c0,0xb2af,0xa4a4,0x9a9b,
+0x8c9b,0x394a,0x3934,0xc034,0xc04a,0xac4a,0xc35b,0xc373,0xc393,0xa69f,0xa3a0,0x9ea1,0x96a3,0x8ca3,0x39a3,0x398e,
+0x8c8e,0x948e,0x9b8c,0xb185,0xb273,0xb263,0xa656,0x9b4a,0x8c4a,0x7d30,0xa330,0xb647,0xc356,0xc36b,0xc38c,0xa79c,
+0x9ea1,0x93a3,0x89a6,0x7da6,0x56a6,0x4390,0x3581,0x356b,0x354b,0x513b,0x5a36,0x6533,0x7030,0x7d30,0x7d46,0x7346,
+0x6948,0x4e4f,0x4861,0x4666,0x466b,0x4683,0x628c,0x6e90,0x7d90,0x8690,0x8f8e,0xaa88,0xb075,0xb270,0xb26b,0xb256,
+0x9a4c,0x8c46,0x7d46,0xc04a,0xc034,0x0334,0x034a,0x4d4a,0x3d56,0x3862,0x3568,0x3571,0x3571,0x358e,0x529d,0x65a6,
+0x7da6,0x8aa6,0x95a3,0xb79b,0xc082,0xc37a,0xc371,0xc359,0xaa4a,0x7d90,0x5e90,0x4e82,0x467a,0x4671,0x4660,0x5655,
+0x604e,0x6c4b,0x7449,0x7d49,0x9c49,0xab5e,0xb267,0xb271,0xb281,0x9d8a,0x988c,0x928e,0x8890,0x7d90,0x7d45,0x7145,
+0x6748,0x4e4e,0x485d,0x4661,0x4665,0x4673,0x547f,0x648d,0x7d8d,0x858d,0x8d8b,0xa585,0xae73,0xb26b,0xb264,0xb255,
+0x9e4c,0x9045,0x7d45,0x20a2,0x1ca2,0x1aa2,0x11a4,0x11b2,0x00b2,0x0092,0x158d,0x1a8c,0x1f8c,0x4d8c,0x357c,0x3565,
+0x3546,0x5438,0x5b35,0x6433,0x7030,0x7d30,0xa130,0xb543,0xc350,0xc364,0xc379,0xaf89,0xad8a,0xaa8c,0xc08c,0xc0a2,
+0xad7f,0xb276,0xb26b,0xb25c,0xa452,0x9a4a,0x8a4a,0x394a,0x3934,0xc034,0xc04a,0xad4a,0xb950,0xc05d,0xc464,0xc46b,
+0xc47c,0xbd88,0x7764,0x8045,0x8b3b,0x9035,0x9734,0x9a33,0x9e33,0xb333,0xbd49,0xc355,0xc364,0xc365,0xc365,0xc381,
+0xb390,0xad95,0xa796,0xa382,0xb27d,0xb264,0xb255,0xa94d,0xa449,0x9e49,0x9d49,0x9b49,0x914c,0x8b5e,0x8964,0x7f83,
+0x748e,0x6e96,0x6598,0x6299,0x5e99,0x4a99,0x3e85,0x3576,0x3565,0x353d,0x4f31,0x5130,0x542f,0x5843,0x4648,0x4664,
+0x4677,0x537f,0x5983,0x5e83,0x6083,0x6283,0x6f7f,0x7764,0xaf44,0xaf30,0xc030,0xc044,0xe044,0xe05a,0xc05a,0xc076,
+0xaf76,0xaf5a,0x545a,0x515a,0x4f5a,0x455d,0x456a,0x4574,0x3574,0x356a,0x354d,0x4447,0x4646,0x4945,0x4d44,0x5344,
+0xc08c,0xc0a2,0x39a2,0x398c,0x4a8c,0x3f85,0x3977,0x3670,0x3669,0x3651,0x4841,0x5337,0x6034,0x6733,0x6d33,0xc033,
+0xc048,0x6d48,0x6748,0x6249,0x4f4e,0x495f,0x4764,0x4769,0x477a,0x5484,0x5e8c,0x6d8c,0x3961,0xc02d,0xc044,0x516c,
+0xc094,0xc0aa,0x3976,0xa685,0x3964,0x3954,0xc02b,0xc041,0x585c,0xbf7a,0xbf8f,0x58ad,0xc0c8,0xc0de,0x39b5,0x39a4,
+0x399d,0x3985,0x7063,0x3942,0x3929,0x7d56,0xc02a,0xc042,0x8963,0xc084,0xc09c,0x7d70,0x1638,0x2147,0x1552,0x125d,
+0x1162,0x1168,0x117c,0x1f86,0x288c,0x358c,0x4b8c,0x3e85,0x3876,0x3670,0x3669,0x3652,0x4741,0x5238,0x6034,0x6733,
+0x6f33,0xc033,0xc048,0x6f48,0x6848,0x624a,0x4d4e,0x4861,0x4765,0x4769,0x477a,0x5584,0x5f8c,0x6e8c,0xc08c,0xc0a2,
+0x36a2,0x19a2,0x0a8a,0x007b,0x0068,0x004f,0x123c,0x143a,0x1638,0x4b52,0x4b9e,0x399e,0x392f,0xae7e,0xae34,0xc034,
+0xc0a2,0x952f,0x9c46,0xbf4a,0xe34b,0xe74c,0xea4d,0xf755,0xf96b,0xfa70,0xfa7c,0xe97c,0xea78,0xea76,0xea68,0xe361,
+0xe361,0xe260,0xdf5e,0xd55e,0xcf5e,0xb25e,0xa056,0x9752,0x954d,0x9255,0x7e5a,0x6c5e,0x575e,0x515e,0x4a5e,0x465f,
+0x4560,0x4460,0x3d67,0x3c76,0x3c78,0x3d7c,0x2c7c,0x2d63,0x305a,0x3451,0x3c4d,0x3d4c,0x3f4c,0x434b,0x5d4a,0x6e4a,
+0x7847,0x9041,0x952f,0x3934,0xf134,0xf148,0x3948,0x9582,0x8e6a,0x6967,0x4365,0x3f64,0x3d63,0x2f5c,0x2d45,0x2d41,
+0x2d35,0x3e35,0x3d39,0x3d3b,0x3d48,0x434f,0x4450,0x4550,0x4752,0x5252,0x5852,0x7752,0x895a,0x935e,0x9564,0x985b,
+0xac56,0xbd52,0xcf52,0xd552,0xdc52,0xdf51,0xe151,0xe250,0xe949,0xea3b,0xea39,0xe935,0xfa35,0xf94d,0xf656,0xf25f,
+0xea63,0xe864,0xe664,0xe365,0xca66,0xbb67,0xb269,0x9a6f,0x9582,0x992b,0xa236,0xa43b,0xa540,0xa545,0xa54c,0x9c57,
+0x9364,0x926a,0x9273,0x9c80,0x9e84,0x9f85,0x8c85,0x8378,0x8274,0x806f,0x806a,0x8062,0x8a55,0x934a,0x9344,0x933b,
+0x8a2f,0x872c,0x872b,
+};
+
+const uint8 g_VDDefaultFont_FontCommandArray[]={
+0x8a,0xa7,0x02,0x13,0x02,0x8f,0x02,0x07,0x02,0x07,0x02,0x8f,0x8a,0xea,0x02,0x2b,
+0x0a,0x07,0x02,0x2b,0x0a,0x87,0xa7,0xa7,0xa7,0xa7,0x8a,0x1b,0x0a,0x1b,0x12,0xaf,
+0x02,0x07,0x02,0x07,0x02,0x8f,0x0f,0x02,0x8b,0x02,0x0f,0x02,0x8f,0xc2,0xaa,0x07,
+0x02,0xa3,0x8a,0xa7,0x8a,0xa7,0xa7,0x96,0x02,0x17,0x1a,0x9b,0x02,0x1b,0x0a,0x13,
+0x02,0x07,0x02,0xb3,0xae,0x86,0x07,0x16,0x1f,0x02,0x97,0xa7,0x2b,0x86,0x92,0xa7,
+0xa7,0xc7,0xa7,0x2b,0x86,0xa7,0xa7,0x07,0x02,0xa3,0xa7,0x92,0x8a,0x8a,0x92,0x0a,
+0x03,0x02,0x17,0x02,0x17,0x02,0x83,0xa7,0x02,0x7f,0x97,0xa7,0x86,0x9a,0x06,0x13,
+0x82,0x0a,0x0f,0x82,0x02,0x27,0x82,0x23,0x02,0x07,0x02,0x9b,0x0b,0x0a,0x87,0x07,
+0x0a,0x8b,0xaa,0xa2,0x1b,0x02,0x23,0x0e,0x87,0xaa,0x8a,0x02,0x13,0x0a,0x93,0xaa,
+0x92,0xae,0xa2,0xa7,0xa7,0x02,0x0b,0x82,0x06,0x13,0x8a,0x27,0x0a,0x83,0x1b,0x0a,
+0x93,0x02,0x0b,0x82,0x1a,0x13,0x82,0x02,0x33,0x02,0x17,0x02,0x9b,0x9a,0x06,0x13,
+0x0a,0x93,0x96,0xae,0xaa,0x9e,0x9a,0x9a,0x8a,0x9a,0x96,0x8a,0x02,0x0f,0x02,0x8f,
+0xa7,0x07,0x02,0x0f,0x02,0x0f,0x06,0x07,0x02,0x07,0x02,0x9b,0x0e,0x07,0x02,0x97,
+0xa7,0x02,0x1b,0x02,0x9f,0x0e,0x07,0x02,0x97,0xa7,0x02,0x93,0x13,0x02,0x27,0x86,
+0x1a,0x0f,0x02,0x07,0x8a,0xa7,0x07,0x06,0x17,0x0a,0x13,0x02,0x93,0x0e,0x13,0x0a,
+0x8f,0xa7,0x8a,0xa7,0x02,0x0f,0x0a,0x87,0xaa,0x07,0x02,0x0b,0x86,0x06,0x0f,0x12,
+0x1b,0x0a,0x8f,0x0e,0x0f,0x0a,0x8f,0xa7,0xa7,0x0e,0x07,0x02,0x97,0xa7,0xa7,0x07,
+0x02,0x07,0x02,0x1f,0x86,0x0b,0x12,0x8b,0x1f,0x02,0x13,0x02,0x1b,0x02,0x93,0x26,
+0x07,0x0a,0x8b,0x0e,0x13,0x0a,0x93,0x96,0xae,0xaa,0x02,0x0f,0x02,0x13,0x0a,0x13,
+0x0a,0x8f,0x9a,0x03,0x02,0x0b,0x02,0x0f,0x02,0x0f,0x02,0x0f,0x02,0x97,0x8a,0x03,
+0x02,0x0b,0x02,0x0f,0x02,0x0f,0x02,0x0f,0x02,0x97,0x17,0x02,0x97,
+};
+
+const VDOutlineFontGlyphInfo g_VDDefaultFont_FontGlyphArray[]={
+{ 0, 0, 0, 1, 268 },
+{ 0, 0, 42, 89, 42 },
+{ 25, 2, 57, 181, 61 },
+{ 66, 12, 57, 553, 58 },
+{ 98, 14, 29, 304, 44 },
+{ 159, 22, 47, 493, 51 },
+{ 247, 27, 41, 446, 38 },
+{ 308, 32, 57, 61, 56 },
+{ 328, 38, 21, 170, 51 },
+{ 344, 41, 41, 170, 26 },
+{ 363, 45, 32, 329, 30 },
+{ 381, 46, 36, 310, 37 },
+{ 393, 47, 47, 88, 45 },
+{ 417, 50, 49, 277, 46 },
+{ 421, 51, 47, 88, 48 },
+{ 442, 52, -5, 358, -5 },
+{ 446, 53, 45, 389, 48 },
+{ 488, 55, 120, 187, 175 },
+{ 495, 56, 40, 389, 53 },
+{ 530, 60, 59, 370, 53 },
+{ 591, 68, 40, 395, 47 },
+{ 607, 70, 60, 374, 48 },
+{ 647, 75, 57, 368, 57 },
+{ 693, 78, 49, 397, 36 },
+{ 699, 79, 47, 396, 39 },
+{ 778, 82, 63, 368, 51 },
+{ 824, 85, 55, 88, 36 },
+{ 866, 87, 55, 88, 36 },
+{ 911, 91, 39, 289, 34 },
+{ 917, 92, 31, 328, 29 },
+{ 925, 94, 42, 289, 36 },
+{ 931, 95, 28, 358, 34 },
+{ 987, 104, 21, 624, 37 },
+{ 1086, 108, 34, 481, 35 },
+{ 1097, 110, 54, 395, 51 },
+{ 1147, 119, 45, 430, 42 },
+{ 1186, 124, 54, 423, 40 },
+{ 1214, 130, 54, 377, 54 },
+{ 1226, 131, 54, 377, 56 },
+{ 1236, 132, 45, 473, 58 },
+{ 1278, 137, 54, 400, 54 },
+{ 1290, 138, 67, 65, 67 },
+{ 1294, 139, 50, 375, 59 },
+{ 1319, 143, 54, 456, 14 },
+{ 1331, 144, 54, 378, 38 },
+{ 1337, 145, 54, 549, 54 },
+{ 1350, 146, 54, 430, 54 },
+{ 1360, 147, 42, 479, 42 },
+{ 1402, 149, 54, 373, 40 },
+{ 1427, 155, 42, 490, 46 },
+{ 1481, 161, 54, 402, 12 },
+{ 1509, 167, 31, 414, 47 },
+{ 1565, 173, 40, 447, 39 },
+{ 1573, 174, 54, 428, 53 },
+{ 1599, 178, 37, 453, 37 },
+{ 1606, 179, 39, 586, 38 },
+{ 1619, 180, 34, 446, 34 },
+{ 1631, 181, 35, 430, 35 },
+{ 1640, 182, 45, 469, 46 },
+{ 1648, 183, 58, 162, 53 },
+{ 1656, 184, -8, 365, -8 },
+{ 1660, 185, 57, 162, 60 },
+{ 1668, 186, 59, 282, 56 },
+{ 1675, 187, 40, 447, 38 },
+{ 1679, 188, 40, 150, 38 },
+{ 1698, 192, 39, 367, 18 },
+{ 1768, 204, 57, 330, 41 },
+{ 1811, 209, 44, 318, 32 },
+{ 1844, 213, 53, 330, 45 },
+{ 1887, 218, 44, 339, 49 },
+{ 1933, 224, 55, 245, 10 },
+{ 1957, 229, 44, 330, 54 },
+{ 2021, 237, 57, 322, 57 },
+{ 2047, 241, 58, 77, 58 },
+{ 2072, 243, -94, 229, 58 },
+{ 2110, 248, 57, 332, 15 },
+{ 2122, 249, 65, 111, 17 },
+{ 2136, 253, 57, 532, 56 },
+{ 2177, 259, 57, 322, 57 },
+{ 2201, 263, 46, 341, 45 },
+{ 2243, 265, 57, 330, 41 },
+{ 2286, 270, 44, 379, 7 },
+{ 2336, 277, 57, 244, 14 },
+{ 2354, 280, 44, 304, 46 },
+{ 2408, 287, 46, 201, 55 },
+{ 2432, 291, 53, 322, 61 },
+{ 2460, 295, 38, 362, 36 },
+{ 2467, 296, 32, 517, 31 },
+{ 2480, 297, 26, 335, 25 },
+{ 2492, 298, 53, 322, 44 },
+{ 2537, 306, 41, 335, 35 },
+{ 2545, 307, 41, 223, 59 },
+{ 2595, 318, 55, 59, 54 },
+{ 2599, 319, 59, 223, 41 },
+{ 2649, 330, 30, 261, 27 },
+{ 2675, 333, 0, 0, 0 },
+};
+
+const VDOutlineFontInfo g_VDDefaultFont_FontInfo={
+ g_VDDefaultFont_FontPointArray,
+ g_VDDefaultFont_FontCommandArray,
+ g_VDDefaultFont_FontGlyphArray,
+ 32, 127,
+ -6158336, -12041216, 42283008, 42118144, // bounds (16:16)
+ 1000, // em square
+ 654, // ascent
+ -185, // descent
+ 78, // line gap
+};
diff --git a/src/thirdparty/VirtualDub/Kasumi/source/text.cpp b/src/thirdparty/VirtualDub/Kasumi/source/text.cpp
new file mode 100644
index 000000000..101ac8b8e
--- /dev/null
+++ b/src/thirdparty/VirtualDub/Kasumi/source/text.cpp
@@ -0,0 +1,299 @@
+// VirtualDub - Video processing and capture application
+// Graphics support library
+// Copyright (C) 1998-2009 Avery Lee
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+#include <stdafx.h>
+#include <vd2/system/math.h>
+#include <vd2/Kasumi/region.h>
+#include <vd2/Kasumi/text.h>
+
+#include "defaultfont.inl"
+
+void VDPixmapGetTextExtents(const VDOutlineFontInfo *font, float size, const char *pText, VDTextLayoutMetrics& out_Metrics) {
+ if (!font)
+ font = &g_VDDefaultFont_FontInfo;
+
+ float invEmSquare = 1.0f / (float)font->mEmSquare;
+ float scale = 1.0f / (255.0f * 65536.0f);
+ float xscale = (float)(font->mMaxX - font->mMinX) * scale;
+ float yscale = (float)(font->mMaxY - font->mMinY) * scale;
+
+ float xinitstep = font->mMinX * 255.0f * scale;
+ float yinitstep = -(font->mMaxY * scale + font->mDescent);
+
+ float xoffset = xinitstep;
+ float yoffset = yinitstep;
+
+ vdrect32f bounds;
+ bounds.invalidate();
+
+ while(const char c = *pText++) {
+ int index = (unsigned char)c - font->mStartGlyph;
+
+ if ((unsigned)index >= (unsigned)(font->mEndGlyph - font->mStartGlyph))
+ continue;
+
+ const VDOutlineFontGlyphInfo& glyph = font->mpGlyphArray[index];
+ const VDOutlineFontGlyphInfo& glyphNext = font->mpGlyphArray[index + 1];
+ int nPoints = glyphNext.mPointArrayStart - glyph.mPointArrayStart;
+
+ if (nPoints) {
+ vdrect32 localBounds;
+ localBounds.invalidate();
+
+ const uint16 *pPoints = font->mpPointArray + glyph.mPointArrayStart;
+ for(int i=0; i<nPoints; ++i) {
+ uint16 pt = *pPoints++;
+
+ localBounds.add(pt & 255, pt >> 8);
+ }
+
+ vdrect32f localBoundsF((float)localBounds.left, -(float)localBounds.bottom, (float)localBounds.right, -(float)localBounds.top);
+ localBoundsF.scale(xscale, yscale);
+ localBoundsF.translate(xoffset, yoffset);
+ bounds.add(localBoundsF);
+ }
+
+ xoffset += glyph.mAWidth + glyph.mBWidth + glyph.mCWidth;
+ }
+
+ if (bounds.valid())
+ bounds.scale(size * invEmSquare, size * invEmSquare);
+
+ out_Metrics.mExtents = bounds;
+ out_Metrics.mAdvance = (xoffset - xinitstep) * size * invEmSquare;
+}
+
+void VDPixmapConvertTextToPath(VDPixmapPathRasterizer& rast, const VDOutlineFontInfo *pFont, float size, float x, float y, const char *pText, const float transform[2][2]) {
+ if (!pFont)
+ pFont = &g_VDDefaultFont_FontInfo;
+
+ vdfastfixedvector<vdint2, 256> points;
+
+ float scale = size / ((float)pFont->mEmSquare * 255.0f * 65536.0f);
+ float xscale = (float)(pFont->mMaxX - pFont->mMinX) * scale;
+ float yscale = -(float)(pFont->mMaxY - pFont->mMinY) * scale;
+
+ float xinitstep = pFont->mMinX * 255.0f * scale;
+ float yinitstep = -pFont->mMaxY * scale - pFont->mDescent * size / (float)pFont->mEmSquare;
+
+ static const float kIdentity[2][2]={1,0,0,1};
+
+ if (!transform)
+ transform = kIdentity;
+
+ float xoffset = x + xinitstep * transform[0][0] + yinitstep * transform[0][1];
+ float yoffset = y + xinitstep * transform[1][0] + yinitstep * transform[1][1];
+
+ while(const char c = *pText++) {
+ int index = (unsigned char)c - pFont->mStartGlyph;
+
+ if ((unsigned)index >= (unsigned)(pFont->mEndGlyph - pFont->mStartGlyph))
+ continue;
+
+ const VDOutlineFontGlyphInfo& glyph = pFont->mpGlyphArray[index];
+ const VDOutlineFontGlyphInfo& glyphNext = pFont->mpGlyphArray[index + 1];
+ const uint16 *pPoints = pFont->mpPointArray + glyph.mPointArrayStart;
+ const uint8 *pCommands = pFont->mpCommandArray + glyph.mCommandArrayStart;
+ int nPoints = glyphNext.mPointArrayStart - glyph.mPointArrayStart;
+ int nCommands = glyphNext.mCommandArrayStart - glyph.mCommandArrayStart;
+
+ points.clear();
+ points.resize(nPoints);
+
+ for(int i=0; i<nPoints; ++i) {
+ uint16 pt = *pPoints++;
+ float fx1 = (pt & 255) * xscale;
+ float fy1 = (pt >> 8) * yscale;
+ points[i].set(VDRoundToInt(fx1*transform[0][0] + fy1*transform[0][1] + xoffset), VDRoundToInt(fx1*transform[1][0] + fy1*transform[1][1] + yoffset));
+ }
+
+ const vdint2 *srcpt = points.data();
+ const vdint2 *startpt = points.data();
+
+ while(nCommands--) {
+ uint8 cmd = *pCommands++;
+ int countm1 = (cmd & 0x7f) >> 2;
+
+ for(int i=0; i<=countm1; ++i) {
+ switch(cmd & 3) {
+ case 2:
+ rast.Line(srcpt[0], srcpt[1]);
+ ++srcpt;
+ break;
+
+ case 3:
+ rast.QuadraticBezier(srcpt);
+ srcpt += 2;
+ break;
+ }
+ }
+
+ if (cmd & 0x80) {
+ rast.Line(*srcpt, *startpt);
+ startpt = ++srcpt;
+ }
+ }
+
+ float step = (glyph.mAWidth + glyph.mBWidth + glyph.mCWidth) * (size / (float)pFont->mEmSquare);
+ xoffset += step * transform[0][0];
+ yoffset += step * transform[1][0];
+ }
+}
+
+namespace {
+ void Fill(const VDPixmap& pxdst, int x, int y, int w, int h, uint32 c) {
+ if (x >= pxdst.w || y >= pxdst.h)
+ return;
+
+ if (x < 0) {
+ w += x;
+ x = 0;
+ }
+
+ if (y < 0) {
+ h += y;
+ y = 0;
+ }
+
+ if (w > pxdst.w - x)
+ w = pxdst.w - x;
+
+ if (h > pxdst.h - y)
+ h = pxdst.h - y;
+
+ if (w <= 0 || h <= 0)
+ return;
+
+ switch(pxdst.format) {
+ case nsVDPixmap::kPixFormat_Pal8:
+ VDMemset8Rect((uint8 *)pxdst.data + pxdst.pitch * y + x, pxdst.pitch, (uint8)c, w, h);
+ break;
+
+ case nsVDPixmap::kPixFormat_XRGB8888:
+ VDMemset32Rect((uint8 *)pxdst.data + pxdst.pitch * y + x * 4, pxdst.pitch, c, w, h);
+ break;
+ }
+ }
+}
+
+void VDPixmapDrawText(const VDPixmap& pxdst, const VDBitmapFontInfo *font, int x, int y, uint32 fore, uint32 back, const char *pText) {
+ if (pxdst.format != nsVDPixmap::kPixFormat_Pal8 && pxdst.format != nsVDPixmap::kPixFormat_XRGB8888)
+ return;
+
+ int textWidth = 0;
+
+ for(const char *s = pText; *s; ++s) {
+ uint8 c = *s;
+
+ if (c < font->mStartChar || c > font->mEndChar)
+ textWidth += font->mCellWidth;
+ else
+ textWidth += font->mpPosArray[c - font->mStartChar] & 15;
+
+ textWidth += font->mCellAdvance;
+ }
+
+ Fill(pxdst, x, y, textWidth + font->mCellAdvance, font->mCellHeight + 1, back);
+
+ x += font->mCellAdvance;
+ ++y;
+
+ if (x >= pxdst.w || y >= pxdst.h)
+ return;
+
+ if (font->mStartChar > font->mEndChar)
+ return;
+
+ const uint8 *bits = font->mpBitsArray;
+ while(uint8 c = (uint8)*pText++) {
+ if (x >= pxdst.w)
+ break;
+
+ if (c < font->mStartChar || c > font->mEndChar) {
+ x += font->mCellWidth;
+ x += font->mCellAdvance;
+ continue;
+ }
+
+ uint32 posInfo = font->mpPosArray[c - font->mStartChar];
+ int cx = x;
+ int cw = posInfo & 15;
+ int cy = y;
+ int ch = font->mCellHeight;
+
+ x += cw;
+ x += font->mCellAdvance;
+
+ if (posInfo < 16)
+ continue;
+
+ uint32 bitOffset = ((posInfo >> 4) - 1) * font->mCellHeight;
+
+ if (cy < 0) {
+ if (cy < -ch)
+ continue;
+
+ ch += cy;
+ bitOffset += -cy * font->mCellWidth;
+ }
+
+ if (cy + ch > pxdst.h)
+ ch = pxdst.h - cy;
+
+ int cskip = 0;
+ if (cx < 0) {
+ if (cx < -(int)pxdst.w)
+ continue;
+
+ bitOffset += -cx;
+ cskip += -cx;
+ cx = 0;
+ }
+
+ if (cx + cw > pxdst.w) {
+ cskip += cx + cw - pxdst.w;
+ cw = pxdst.w - cx;
+ }
+
+ uint8 *dstrow = (uint8 *)pxdst.data + pxdst.pitch * cy;
+ for(int yi = 0; yi < ch; ++yi) {
+ if (pxdst.format == nsVDPixmap::kPixFormat_Pal8) {
+ uint8 *dst8 = dstrow + cx;
+ for(int xi = 0; xi < cw; ++xi) {
+ if ((sint8)(bits[bitOffset >> 3] << (bitOffset & 7)) < 0)
+ *dst8 = (uint8)fore;
+
+ ++dst8;
+ ++bitOffset;
+ }
+ } else if (pxdst.format == nsVDPixmap::kPixFormat_XRGB8888) {
+ uint32 *dst32 = (uint32 *)dstrow + cx;
+ for(int xi = 0; xi < cw; ++xi) {
+ if ((sint8)(bits[bitOffset >> 3] << (bitOffset & 7)) < 0)
+ *dst32 = fore;
+
+ ++dst32;
+ ++bitOffset;
+ }
+ }
+
+ bitOffset += cskip;
+ dstrow += pxdst.pitch;
+ }
+ }
+}