Shader "CrispyPin/Quine" { // https://git.crispypin.cc/CrispyPin/cvr-props/src/branch/main/Assets/test/quine.shader SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" #define ROWS 100 #define COLS ROWS*2 struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; UNITY_VERTEX_OUTPUT_STEREO }; v2f vert (appdata v) { v2f o; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_OUTPUT(v2f, o); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } float3 frag (v2f i) : SV_Target { // write as 'const uint text[] = {?};' before export const uint text[] = {0x33484144,0x45520002,0x23524953,0x50593049,0x4e0f3155,0x494e4502,0x005b5f0f,0x0f004854,0x5450531a,0x0f0f4749,0x540e4352,0x49535059,0x50494e0e,0x43430f23,0x52495350,0x5930494e,0x0f435652,0x0d50524f,0x50530f53,0x52430f42,0x52414e43,0x480f4d41,0x494e0f21,0x53534554,0x530f5445,0x53540f51,0x55494e45,0x0e534841,0x4445525f,0x33554233,0x48414445,0x52005b00,0x30415353,0x005b5f23,0x2730322f,0x2732212d,0x5f600350,0x5241474d,0x41005645,0x52544558,0x00564552,0x545f6003,0x50524147,0x4d410046,0x5241474d,0x454e5400,0x46524147,0x5f600349,0x4e434c55,0x44450002,0x354e4954,0x5923270e,0x4347494e,0x43025f60,0x03444546,0x494e4500,0x322f3733,0x00111010,0x5f600344,0x4546494e,0x4500232f,0x2c330032,0x2f37330a,0x125f5f60,0x53545255,0x43540041,0x50504441,0x5441005b,0x5f606046,0x4c4f4154,0x14005645,0x52544558,0x001a0030,0x2f332934,0x292f2e1b,0x5f606046,0x4c4f4154,0x12005556,0x001a0034,0x2538232f,0x2f322410,0x1b5f6060,0x352e2934,0x393f3625,0x32342538,0x3f292e30,0x35343f29,0x2e333421,0x2e23253f,0x29245f60,0x5d1b5f60,0x53545255,0x43540056,0x1246005b,0x5f606046,0x4c4f4154,0x12005556,0x001a0034,0x2538232f,0x2f322410,0x1b5f6060,0x464c4f41,0x54140056,0x45525445,0x58001a00,0x33363f30,0x2f332934,0x292f2e1b,0x5f606035,0x2e293439,0x3f362532,0x3425383f,0x2f353430,0x35343f33,0x34253225,0x2f5f605d,0x1b5f5f60,0x56124600,0x56455254,0x00084150,0x50444154,0x41005609,0x005b5f60,0x60561246,0x004f1b5f,0x6060352e,0x2934393f,0x33253435,0x303f292e,0x3334212e,0x23253f29,0x24085609,0x1b5f6060,0x352e2934,0x393f292e,0x29342921,0x2c293a25,0x3f2f3534,0x30353408,0x5612460c,0x004f091b,0x5f606035,0x2e293439,0x3f292e29,0x3429212c,0x293a253f,0x36253234,0x25383f2f,0x35343035,0x343f3334,0x2532252f,0x084f091b,0x5f60604f,0x0e564552,0x54455800,0x1d00354e,0x4954592f,0x424a4543,0x54344f23,0x4c495030,0x4f530856,0x0e564552,0x54455809,0x1b5f6060,0x4f0e5556,0x001d0056,0x0e55561b,0x5f606052,0x45545552,0x4e004f1b,0x5f605d5f,0x5f60464c,0x4f415413,0x00465241,0x47000856,0x12460049,0x09001a00,0x33363f34,0x41524745,0x54005b5f,0x60600f0f,0x00575249,0x54450041,0x53000743,0x4f4e5354,0x0055494e,0x54005445,0x58543b3d,0x001d005b,0x1f5d1b07,0x00424546,0x4f524500,0x4558504f,0x52545f60,0x60434f4e,0x53540055,0x494e5400,0x54455854,0x3b3d001d,0x005b1f5d,0x1b5f6060,0x434f4e53,0x54005549,0x4e540054,0x4558543f,0x4c454e00,0x1d001112,0x19191b5f,0x6060434f,0x4e535400,0x55494e54,0x00424c4f,0x423f5354,0x41525400,0x1d001719,0x181b5f60,0x60434f4e,0x53540055,0x494e5400,0x464f4e54,0x3b19173d,0x3b143d00,0x1d005b5b,0x100c100c,0x100c105d,0x0c5b100c,0x14101216,0x15191315,0x120c1110,0x11101517,0x11121818,0x0c161210,0x145d0c5b,0x100c100c,0x16101319,0x17191717,0x160c1617,0x11101818,0x165d0c5b,0x100c1911,0x14131016,0x1611140c,0x19111413,0x10161611,0x140c1514,0x5d0c5b14,0x10141212,0x16101418,0x0c111611,0x16191915,0x1113140c,0x11111214,0x12181610,0x14180c14,0x10141214,0x12101119,0x5d0c5b10,0x0c121011,0x17141512,0x14190c11,0x11131015,0x17131814,0x180c105d,0x0c5b100c,0x18151819,0x19131511,0x180c1910,0x17181312,0x1819110c,0x17121212,0x5d0c5b10,0x0c100c11,0x10101616,0x13121916,0x0c171819,0x1511165d,0x0c5b100c,0x12101211,0x11191211,0x160c1210,0x12111116,0x1110180c,0x11121311,0x125d0c5b,0x100c1810,0x18141518,0x1215120c,0x18101814,0x16141413,0x120c1310,0x19165d0c,0x5b100c11,0x10111313,0x11171613,0x120c1617,0x10101218,0x170c105d,0x0c5b100c,0x14101412,0x12161014,0x180c1115,0x17191113,0x140c105d,0x0c5b1210,0x11131216,0x1519120c,0x11151719,0x1013120c,0x100c105d,0x0c5b100c,0x100c1112,0x170c105d,0x0c5b100c,0x16111618,0x0c100c10,0x5d0c5b10,0x0c121011,0x17121015,0x17170c11,0x10181010,0x14151519,0x120c105d,0x0c5b100c,0x11161617,0x14141613,0x10100c11,0x16161714,0x15191914,0x170c1712,0x12125d0c,0x5b100c14,0x10141213,0x12131118,0x0c151014,0x18191515,0x11120c16,0x1117125d,0x0c5b100c,0x11101018,0x18151317,0x150c1116,0x11131716,0x14161210,0x0c111519,0x17115d0c,0x5b100c11,0x16111619,0x12191519,0x180c1116,0x11161911,0x19161418,0x0c111519,0x17115d0c,0x5b100c18,0x10181416,0x14151014,0x0c111011,0x10111815,0x1018170c,0x11121314,0x145d0c5b,0x100c1116,0x11161912,0x19151918,0x0c151015,0x14141418,0x100c1312,0x1511155d,0x0c5b100c,0x11161617,0x14151718,0x15140c15,0x10151414,0x1418130c,0x17111714,0x5d0c5b10,0x0c121012,0x11111611,0x10180c11,0x16111619,0x11161510,0x140c1312,0x1611115d,0x0c5b100c,0x11161617,0x14151718,0x15140c11,0x16161714,0x14181411,0x190c1115,0x1917115d,0x0c5b100c,0x11161116,0x19111615,0x11100c11,0x16161714,0x16141810,0x100c1115,0x1917115d,0x0c5b100c,0x11151719,0x1010180c,0x14101412,0x12161014,0x180c105d,0x0c5b100c,0x11151719,0x1012100c,0x14101412,0x12161014,0x180c105d,0x0c5b100c,0x12101219,0x11111814,0x100c1810,0x16181812,0x1311100c,0x19165d0c,0x5b100c12,0x11111319,0x12191211,0x160c1812,0x15171513,0x160c105d,0x0c5b100c,0x18101618,0x18121311,0x100c1210,0x12191111,0x1814100c,0x165d0c5b,0x100c1410,0x12161519,0x1315120c,0x11161614,0x10191612,0x18100c11,0x15191711,0x5d0c5b10,0x0c121016,0x17141615,0x1012120c,0x11161617,0x14161410,0x15190c16,0x125d0c5b,0x100c1116,0x16171415,0x17181911,0x0c191112,0x14181311,0x19190c12,0x1017165d,0x0c5b100c,0x11171117,0x19181618,0x17190c11,0x17111719,0x17161617,0x180c1116,0x1213105d,0x0c5b100c,0x15141714,0x18171312,0x0c111112,0x14121710,0x1815110c,0x11151416,0x125d0c5b,0x100c1117,0x11171917,0x14151519,0x0c111711,0x17191816,0x1911180c,0x17191910,0x5d0c5b10,0x0c111015,0x12171710,0x15150c11,0x11171518,0x15141611,0x140c1312,0x1611145d,0x0c5b100c,0x11101110,0x15181016,0x130c1111,0x17151815,0x14161114,0x0c131216,0x11145d0c,0x5b100c11,0x16161714,0x15181615,0x120c1111,0x12141217,0x10191711,0x0c111514,0x16125d0c,0x5b100c11,0x16161714,0x15171819,0x110c1116,0x16171416,0x15101519,0x0c121514,0x14135d0c,0x5b100c14,0x10141213,0x12121512,0x0c141014,0x12131212,0x11160c11,0x15131814,0x5d0c5b10,0x0c181518,0x19191314,0x13180c18,0x10181416,0x14141312,0x0c131017,0x16185d0c,0x5b100c19,0x11121618,0x10151511,0x0c111711,0x14181212,0x1618160c,0x12161417,0x105d0c5b,0x100c1110,0x15121717,0x1015150c,0x11101110,0x15181015,0x140c1318,0x14165d0c,0x5b100c11,0x16161714,0x15171819,0x110c1211,0x13191015,0x16191915,0x0c121514,0x16135d0c,0x5b100c11,0x16161714,0x15171819,0x110c1118,0x17101612,0x15161511,0x0c121514,0x14175d0c,0x5b100c11,0x16161714,0x15171815,0x140c1116,0x16171415,0x17181911,0x0c111519,0x17115d0c,0x5b100c11,0x10111015,0x18101613,0x0c111711,0x17191716,0x1518120c,0x11161213,0x105d0c5b,0x18111216,0x14161410,0x100c1116,0x16171918,0x18121816,0x0c111616,0x17141517,0x1819110c,0x11151917,0x115d0c5b,0x100c1117,0x11171918,0x16191119,0x0c111711,0x17191716,0x1613100c,0x11161213,0x105d0c5b,0x100c1116,0x11171112,0x16121016,0x0c111616,0x11131414,0x1811160c,0x11151917,0x115d0c5b,0x100c1410,0x14121312,0x1215120c,0x11151111,0x15121814,0x17120c13,0x12131812,0x5d0c5b10,0x0c111616,0x17141517,0x1815140c,0x11161617,0x14151718,0x19110c12,0x15141413,0x5d0c5b10,0x0c111616,0x14141910,0x1510140c,0x11161617,0x14151718,0x19110c12,0x15141413,0x5d0c5b10,0x0c111810,0x13151115,0x1710120c,0x11161617,0x14151919,0x14170c12,0x15141413,0x5d0c5b10,0x0c111014,0x13171511,0x1717190c,0x19111010,0x14101019,0x120c1215,0x1414135d,0x0c5b100c,0x14101412,0x13121215,0x120c1117,0x11171917,0x16101818,0x0c121612,0x11145d0c,0x5b100c11,0x10151017,0x19161719,0x0c111613,0x10151411,0x1813160c,0x13121611,0x115d0c0f,0x0a005245,0x41440049,0x46004355,0x5445000a,0x0f5b100c,0x12101211,0x11161115,0x160c1210,0x12111116,0x1110180c,0x11151317,0x125d0c5b,0x100c1914,0x16181818,0x1716180c,0x15101719,0x14101112,0x0c115d0c,0x5b100c18,0x10181416,0x14141414,0x0c181018,0x14161414,0x13120c11,0x15141018,0x5d0c5b10,0x0c100c10,0x0c111316,0x10161616,0x15195d0c,0x5b111617,0x11111618,0x100c100c,0x100c105d,0x0c5b100c,0x100c100c,0x12101211,0x11191116,0x185d0c5b,0x100c1815,0x18191913,0x1511180c,0x11191718,0x1413100c,0x105d0c5b,0x100c1117,0x11171918,0x16181718,0x0c111012,0x16141313,0x10120c11,0x1719185d,0x0c5b100c,0x15101515,0x13161612,0x0c141018,0x18151719,0x0c105d0c,0x5b100c18,0x15181919,0x13151118,0x0c181019,0x12151214,0x10130c11,0x14131814,0x5d0c5b10,0x0c151015,0x15131616,0x120c1410,0x18181710,0x130c105d,0x0c5b100c,0x11101110,0x15181016,0x130c1613,0x17191311,0x1217100c,0x17121212,0x5d0c5b18,0x10181615,0x16131814,0x0c181518,0x19191314,0x17100c17,0x12121210,0x16170c10,0x5d0c5b10,0x0c111711,0x17191816,0x1911190c,0x11101412,0x13101510,0x120c1117,0x19185d0c,0x5b100c14,0x10141213,0x12121512,0x0c111814,0x11111716,0x0c161116,0x185d0c5b,0x11171117,0x19171610,0x16140c11,0x16111619,0x12181816,0x140c1713,0x16141710,0x140c1214,0x1617125d,0x0c5b100c,0x15101618,0x18111613,0x190c1110,0x17131611,0x1812120c,0x11171918,0x5d0c5b10,0x0c141014,0x12131212,0x15120c14,0x10141213,0x12121116,0x0c171119,0x125d0c5b,0x100c1118,0x10121210,0x11191515,0x0c131613,0x17101919,0x0c105d0c,0x5b100c11,0x17111719,0x18161911,0x180c1318,0x19121813,0x180c105d,0x0c5b100c,0x11161617,0x14151718,0x15140c14,0x10181816,0x17150c10,0x5d0c5b11,0x10111016,0x10131512,0x0c111711,0x17191816,0x1817180c,0x13181912,0x1813180c,0x105d0c5b,0x18101814,0x18121811,0x160c1815,0x18191913,0x1417100c,0x17121212,0x1016170c,0x105d0c5b,0x100c1110,0x11101518,0x1016130c,0x13181914,0x1818160c,0x105d0c5b,0x100c1417,0x12191313,0x1118120c,0x14101818,0x1518120c,0x105d0c5b,0x100c1210,0x12111410,0x1712180c,0x12101514,0x15181414,0x140c1210,0x16105d0c,0x5b100c18,0x15181919,0x13151118,0x0c131315,0x15141413,0x0c105d0c,0x5b100c11,0x17111719,0x17161018,0x180c1617,0x11101818,0x160c105d,0x0c5b100c,0x11181012,0x12101710,0x13100c16,0x15111315,0x11150c10,0x5d0c5b10,0x0c141711,0x16111019,0x17190c16,0x15101119,0x11160c10,0x5d0c5b11,0x16111317,0x16161410,0x100c1116,0x16171415,0x17191118,0x0c161511,0x13151017,0x0c105d0c,0x5b100c12,0x10111714,0x15121719,0x0c181313,0x16111512,0x0c105d0c,0x5b100c14,0x10141213,0x12131014,0x0c141014,0x12121916,0x15160c12,0x18161916,0x5d0c5b10,0x0c141014,0x12131212,0x11160c14,0x10141212,0x16101712,0x0c161116,0x185d0c5b,0x100c1410,0x14121312,0x1210160c,0x14101412,0x15141714,0x140c1316,0x10185d0c,0x5b100c10,0x0c100c12,0x18121119,0x5d0c5b12,0x11131111,0x10101617,0x120c1116,0x11171119,0x12151715,0x0c111611,0x16191218,0x1816140c,0x19165d0c,0x5b111017,0x13171411,0x1812140c,0x12111316,0x14191210,0x19160c11,0x10171814,0x18131017,0x110c1614,0x5d5d1b5f,0x5f606046,0x4c4f4154,0x00505800,0x1d00490e,0x55560e58,0x000a0023,0x2f2c331b,0x5f606046,0x4c4f4154,0x00505900,0x1d00490e,0x55560e59,0x000a0032,0x2f37331b,0x5f606055,0x494e5400,0x43484152,0x58001d00,0x50581b5f,0x60605549,0x4e540043,0x48415259,0x001d0050,0x591b5f5f,0x60605549,0x4e540043,0x4841523f,0x494e4445,0x58001d00,0x08434841,0x5258000b,0x0008322f,0x3733000d,0x0011000d,0x00434841,0x52590900,0x0a00232f,0x2c33091b,0x5f606055,0x494e5400,0x43484152,0x1b5f6060,0x464c4f41,0x54130043,0x4f4c4f52,0x001d0010,0x0e181b5f,0x60604946,0x00084348,0x41523f49,0x4e444558,0x001e1d00,0x424c4f42,0x3f535441,0x52540006,0x06004348,0x41523f49,0x4e444558,0x001c0008,0x424c4f42,0x3f535441,0x5254000b,0x00544558,0x543f4c45,0x4e000a00,0x11110909,0x005b5f60,0x60605549,0x4e540042,0x4c4f423f,0x494e4445,0x58001d00,0x43484152,0x3f494e44,0x4558000d,0x00424c4f,0x423f5354,0x4152541b,0x5f606060,0x55494e54,0x004e554d,0x4245523f,0x494e4445,0x58001d00,0x424c4f42,0x3f494e44,0x4558000f,0x0011111b,0x5f606060,0x55494e54,0x00444947,0x49543f42,0x49543f4f,0x46465345,0x54001d00,0x424c4f42,0x3f494e44,0x45580005,0x0011111b,0x5f606060,0x49460008,0x44494749,0x543f4249,0x543f4f46,0x46534554,0x001d1d00,0x1009005b,0x5f606060,0x60434841,0x52001d00,0x11161b00,0x0f0f0007,0x10075f60,0x60606043,0x4f4c4f52,0x001d0046,0x4c4f4154,0x1308110c,0x00100e13,0x0c00100e,0x15091b5f,0x6060605d,0x00454c53,0x45004946,0x00084449,0x4749543f,0x4249543f,0x4f464653,0x4554001d,0x1d001109,0x005b5f60,0x60606043,0x48415200,0x1d001818,0x1b000f0f,0x00075807,0x5f606060,0x60434f4c,0x4f52001d,0x00464c4f,0x41541308,0x110c0010,0x0e130c00,0x100e1509,0x1b5f6060,0x605d0045,0x4c534500,0x49460008,0x44494749,0x543f4249,0x543f4f46,0x46534554,0x001d1d00,0x11100900,0x5b5f6060,0x60604348,0x4152001d,0x0011121b,0x000f0f00,0x070c075f,0x6060605d,0x00454c53,0x45005b5f,0x60606060,0x55494e54,0x004e554d,0x42455200,0x1d005445,0x58543b4e,0x554d4245,0x523f494e,0x4445583d,0x1b5f6060,0x60605549,0x4e54004e,0x4942424c,0x453f4249,0x543f4f46,0x46534554,0x001d0008,0x44494749,0x543f4249,0x543f4f46,0x46534554,0x000d0012,0x09000600,0x171b5f60,0x60606055,0x494e5400,0x4e494242,0x4c45001d,0x00084e55,0x4d424552,0x001e1e00,0x08081700,0x0d004e49,0x42424c45,0x3f424954,0x3f4f4646,0x53455409,0x000a0014,0x09090006,0x0011151b,0x5f606060,0x60434f4e,0x53540055,0x494e5400,0x4845583f,0x43484152,0x533b1116,0x3d001d00,0x5b11160c,0x0011170c,0x0011180c,0x0011190c,0x0012100c,0x0012110c,0x0012120c,0x0012130c,0x0012140c,0x0012150c,0x0016150c,0x0016160c,0x0016170c,0x0016180c,0x0016190c,0x0017105d,0x1b5f6060,0x60604348,0x4152001d,0x00484558,0x3f434841,0x52533b4e,0x4942424c,0x453d1b5f,0x60606060,0x434f4c4f,0x52001d00,0x464c4f41,0x54130810,0x0e120c00,0x100e1815,0x0c001109,0x1b5f6060,0x605d5f60,0x605d0045,0x4c534500,0x5b5f6060,0x60494600,0x08434841,0x523f494e,0x44455800,0x1e00424c,0x4f423f53,0x54415254,0x09005b00,0x43484152,0x3f494e44,0x4558000d,0x1d005445,0x58543f4c,0x454e000a,0x00111100,0x0d00111b,0x005d5f60,0x60605549,0x4e540054,0x4558543f,0x494e4445,0x58001d00,0x43484152,0x3f494e44,0x4558001e,0x1e00121b,0x5f606060,0x43484152,0x001d0054,0x4558543b,0x54455854,0x3f494e44,0x45583d1b,0x5f606060,0x55494e54,0x00425954,0x453f494e,0x44455800,0x1d000843,0x4841523f,0x494e4445,0x58000600,0x13091b5f,0x60606043,0x48415200,0x1e1e1d00,0x0813000d,0x00425954,0x453f494e,0x44455809,0x001c1c00,0x131b5f60,0x60604946,0x00085445,0x58543f49,0x4e444558,0x001e1d00,0x54455854,0x3f4c454e,0x09005b00,0x43484152,0x001d0010,0x1b005d5f,0x60605d5f,0x5f606043,0x48415200,0x061d0010,0x5846461b,0x5f606055,0x494e5400,0x5458001d,0x00085058,0x000d0043,0x48415258,0x09000a00,0x181b5f60,0x6055494e,0x54005459,0x001d0008,0x5059000d,0x00434841,0x52590900,0x0a001116,0x1b5f5f60,0x6055494e,0x54005155,0x41525445,0x52001d00,0x5459000f,0x00141b5f,0x60605549,0x4e540042,0x49543f4f,0x46465345,0x54001d00,0x5458000b,0x00080854,0x59000600,0x1309001c,0x1c001309,0x1b5f6060,0x55494e54,0x00504958,0x454c001d,0x0008464f,0x4e543b43,0x4841523d,0x3b515541,0x52544552,0x3d001e1e,0x00424954,0x3f4f4646,0x53455409,0x00060011,0x1b5f6060,0x49460008,0x01504958,0x454c0900,0x5b00434f,0x4c4f5200,0x1d000808,0x43484152,0x58000b00,0x43484152,0x59090006,0x00110900,0x0a000e10,0x13000b00,0x0e10131b,0x005d5f60,0x60524554,0x55524e00,0x434f4c4f,0x521b5f60,0x5d5f252e,0x2423275f,0x5d5d5d5f,}; const uint text_len = 1299; const uint blob_start = 798; const uint font[97][4] = {{0,0,0,0},{0,402659352,1010571288,6204},{0,0,603979776,6710886},{0,914306614,914306614,54},{404226048,1616995134,1124286048,404242019},{0,201745249,1130573848,0},{0,858993518,907832891,7222},{0,0,100663296,789516},{0,202119216,202116108,12312},{0,808458252,808464432,3096},{0,1013317632,6700287,0},{0,404226048,1579134,0},{201326592,1579032,0,0},{0,0,127,0},{0,6168,0,0},{0,201720577,1080045592,0},{0,1667446300,1667459947,7222},{0,404232318,504895512,6172},{0,100885375,1613764620,15971},{0,1616929598,1616919648,15971},{0,808464504,1010185087,12344},{0,1616929598,50544480,32515},{0,1667457854,50544483,7174},{0,202116108,1616916504,32611},{0,1667457854,1667448419,15971},{0,1616916510,1667464800,15971},{0,1579008,404226048,0},{0,1579020,404226048,0},{0,202911840,806882310,96},{0,2113929216,8257536,0},{0,806882310,202911840,6},{0,402659352,1664096280,15971},{0,2067465022,1667464059,62},{0,1667457891,912483199,2076},{0,1717986879,1717976678,16230},{0,54748732,1124270851,15462},{0,1717974559,1717986918,7990},{0,105277055,1175854614,32614},{0,101058063,1175854614,32614},{0,1667458652,1124270971,15462},{0,1667457891,1667465059,25443},{0,404232252,404232216,15384},{0,858993438,808464432,30768},{0,912680551,1714822686,26470},{0,105277055,101058054,3846},{0,1667457891,2139056995,25463},{0,1667457891,1870625651,25447},{0,1667457854,1667457891,15971},{0,101058063,1717976582,16230},{812646400,1667988286,1667457891,15971},{0,1717986919,1717976630,16230},{0,1617126206,1661344816,15971},{0,404232252,1511528472,32382},{0,1667457854,1667457891,25443},{0,1664490504,1667457891,25443},{0,1803515702,1667459947,25443},{0,1043751779,910040092,25443},{0,404232252,1717976088,26214},{0,105079679,1630541836,32611},/* read if cute */{0,202116156,202116108,15372},{0,946888768,50794012,1},{0,808464444,808464432,15408},{0,0,0,136066659},{16711680,0,0,0},{0,0,0,202119168},{0,858993518,1978430,0},{0,1717986878,102643302,1798},{0,50553662,4088579,0},{0,858993518,809252403,14384},{0,50553662,4088703,0},{0,101058063,637931270,7222},{808656384,858993470,7222067,0},{0,1717986919,104230502,1798},{0,404232252,1841176,6168},{1717976064,1616928864,7364704,24672},{0,506881639,107361822,1798},{0,404232252,404232216,7192},{0,1802201955,3637099,0},{0,1717986918,3892838,0},{0,1667457854,4088675,0},{101060352,1717986878,3892838,0},{808482816,858993470,7222067,0},{0,101058063,3894886,0},{0,472933182,4088582,0},{0,202140728,205458444,2060},{0,858993518,3355443,0},{0,1717976088,6710886,0},{0,1802207030,6513515,0},{0,471610979,6501916,0},{1613766400,1667457918,6513507,0},{0,201745279,8336152,0},{0,404232304,404229656,28696},{0,404232216,404226072,6168},{0,404232206,404254744,3608},{0,0,0,28219},{2131100672,1617192575,1616928864,96},{1073741824,2136492096,1078483071,64}}; float px = i.uv.x * COLS; float py = i.uv.y * ROWS; uint charx = px; uint chary = py; uint char_index = (charx + (ROWS - 1 - chary) * COLS); uint char; float3 color = 0.8; if (char_index >= blob_start && char_index < (blob_start + text_len * 11)) { uint blob_index = char_index - blob_start; uint number_index = blob_index / 11; uint digit_bit_offset = blob_index % 11; if (digit_bit_offset == 0) { char = 16; // '0' color = float3(1, 0.3, 0.5); } else if (digit_bit_offset == 1) { char = 88; // 'x' color = float3(1, 0.3, 0.5); } else if (digit_bit_offset == 10) { char = 12; // ',' } else { uint number = text[number_index]; uint nibble_bit_offset = (digit_bit_offset - 2) & 7; uint nibble = (number >> ((7 - nibble_bit_offset) * 4)) & 15; const uint hex_chars[16] = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 65, 66, 67, 68, 69, 70}; char = hex_chars[nibble]; color = float3(0.2, 0.85, 1); } } else { if (char_index > blob_start) { char_index -= text_len * 11 - 1; } uint text_index = char_index >> 2; char = text[text_index]; uint byte_index = (char_index & 3); char >>= (3 - byte_index) << 3; if (text_index >= text_len) { char = 0; } } char &= 0xff; uint tx = (px - charx) * 8; uint ty = (py - chary) * 16; uint quarter = ty / 4; uint bit_offset = tx + ((ty & 3) << 3); uint pixel = (font[char][quarter] >> bit_offset) & 1; if (!pixel) { color = ((charx + chary) & 1) * .03 + .03; } return color; } ENDCG }}}