From 8f72635e4551c3eaa510c5c1286e657c1e5e954e Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Thu, 31 Jan 2013 12:45:07 +0200 Subject: update VirtualDub to v1.10.4-test1 --- src/thirdparty/VirtualDub/Kasumi/Kasumi.vcxproj | 3 + .../VirtualDub/Kasumi/Kasumi.vcxproj.filters | 15 + src/thirdparty/VirtualDub/Kasumi/data/Tuffy.ttf | Bin 0 -> 19300 bytes src/thirdparty/VirtualDub/Kasumi/data/Tuffy.txt | 12 + src/thirdparty/VirtualDub/Kasumi/h/defaultfont.inl | 307 +++++++++++++++++++++ src/thirdparty/VirtualDub/Kasumi/source/text.cpp | 299 ++++++++++++++++++++ 6 files changed, 636 insertions(+) create mode 100644 src/thirdparty/VirtualDub/Kasumi/data/Tuffy.ttf create mode 100644 src/thirdparty/VirtualDub/Kasumi/data/Tuffy.txt create mode 100644 src/thirdparty/VirtualDub/Kasumi/h/defaultfont.inl create mode 100644 src/thirdparty/VirtualDub/Kasumi/source/text.cpp (limited to 'src/thirdparty/VirtualDub/Kasumi') 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 @@ + @@ -230,6 +231,8 @@ + + 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 @@ {b69f77b1-cab6-4c5c-9c28-736eb17ce889} + + {8d72d2d5-c182-4c11-aa60-d0a265b0f440} + + + {8e7ccb0e-3ac7-4207-9c64-a24b5028014f} + @@ -142,6 +148,9 @@ Source Files + + Source Files + @@ -305,5 +314,11 @@ + + Source Data Files + + + Autogenerated Header Files + \ 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 Binary files /dev/null and b/src/thirdparty/VirtualDub/Kasumi/data/Tuffy.ttf 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 +#include +#include +#include + +#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> 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 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> 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; + } + } +} -- cgit v1.2.3