85 lines
19 KiB
GLSL
85 lines
19 KiB
GLSL
Shader "CrispyPin/Quine" {
|
|
SubShader { Pass {
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#include "UnityCG.cginc"
|
|
#define ROWS 99
|
|
#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;
|
|
}
|
|
|
|
float4 frag (v2f i) : SV_Target {
|
|
// write as 'const uint text[] = {?};' before export
|
|
const uint text[] = {0x33484144,0x45520002,0x23524953,0x50593049,0x4e0f3155,0x494e4502,0x005b5f33,0x55423348,0x41444552,0x005b0030,0x41535300,0x5b5f2327,0x30322f27,0x32212d5f,0x60035052,0x41474d41,0x00564552,0x54455800,0x56455254,0x5f600350,0x5241474d,0x41004652,0x41474d45,0x4e540046,0x5241475f,0x6003494e,0x434c5544,0x45000235,0x4e495459,0x23270e43,0x47494e43,0x025f6003,0x44454649,0x4e450032,0x2f373300,0x19195f60,0x03444546,0x494e4500,0x232f2c33,0x00322f37,0x330a125f,0x5f605354,0x52554354,0x00415050,0x44415441,0x005b5f60,0x60464c4f,0x41541400,0x56455254,0x4558001a,0x00302f33,0x2934292f,0x2e1b5f60,0x60464c4f,0x41541200,0x5556001a,0x00342538,0x232f2f32,0x24101b5f,0x6060352e,0x2934393f,0x36253234,0x25383f29,0x2e303534,0x3f292e33,0x34212e23,0x253f2924,0x5f605d1b,0x5f605354,0x52554354,0x00561246,0x005b5f60,0x60464c4f,0x41541200,0x5556001a,0x00342538,0x232f2f32,0x24101b5f,0x6060464c,0x4f415414,0x00564552,0x54455800,0x1a003336,0x3f302f33,0x2934292f,0x2e1b5f60,0x60352e29,0x34393f36,0x25323425,0x383f2f35,0x34303534,0x3f333425,0x32252f5f,0x605d1b5f,0x5f605612,0x46005645,0x52540008,0x41505044,0x41544100,0x5609005b,0x5f606056,0x1246004f,0x1b5f6060,0x352e2934,0x393f3325,0x3435303f,0x292e3334,0x212e2325,0x3f292408,0x56091b5f,0x6060352e,0x2934393f,0x292e2934,0x29212c29,0x3a253f2f,0x35343035,0x34085612,0x460c004f,0x091b5f60,0x60352e29,0x34393f29,0x2e293429,0x212c293a,0x253f3625,0x32342538,0x3f2f3534,0x3035343f,0x33342532,0x252f084f,0x091b5f60,0x604f0e56,0x45525445,0x58001d00,0x354e4954,0x592f424a,0x45435434,0x4f234c49,0x50304f53,0x08560e56,0x45525445,0x58091b5f,0x60604f0e,0x5556001d,0x00560e55,0x561b5f60,0x60524554,0x55524e00,0x4f1b5f60,0x5d5f5f60,0x464c4f41,0x54140046,0x52414700,0x08561246,0x00490900,0x1a003336,0x3f344152,0x47455400,0x5b5f6060,0x0f0f0057,0x52495445,0x00415300,0x07434f4e,0x53540055,0x494e5400,0x54455854,0x3b3d001d,0x005b1f5d,0x1b070042,0x45464f52,0x45004558,0x504f5254,0x5f606043,0x4f4e5354,0x0055494e,0x54005445,0x58543b3d,0x001d005b,0x1f5d1b5f,0x6060434f,0x4e535400,0x55494e54,0x00544558,0x543f4c45,0x4e001d00,0x11131017,0x1b5f6060,0x434f4e53,0x54005549,0x4e540042,0x4c4f423f,0x53544152,0x54001d00,0x1710181b,0x5f606043,0x4f4e5354,0x0055494e,0x5400464f,0x4e543b19,0x173d3b14,0x3d001d00,0x5b5b100c,0x100c100c,0x105d0c5b,0x100c1410,0x12161519,0x1315120c,0x11101110,0x15171112,0x18180c16,0x1210145d,0x0c5b100c,0x100c1610,0x13191719,0x1717160c,0x16171110,0x1818165d,0x0c5b100c,0x19111413,0x10161611,0x140c1911,0x14131016,0x1611140c,0x15145d0c,0x5b141014,0x12121610,0x14180c11,0x16111619,0x19151113,0x140c1111,0x12141218,0x16101418,0x0c141014,0x12141210,0x11195d0c,0x5b100c12,0x10111714,0x15121419,0x0c111113,0x10151713,0x1814180c,0x105d0c5b,0x100c1815,0x18191913,0x1511180c,0x19101718,0x13121819,0x110c1712,0x12125d0c,0x5b100c10,0x0c111010,0x16161312,0x19160c17,0x18191511,0x165d0c5b,0x100c1210,0x12111119,0x1211160c,0x12101211,0x11161110,0x180c1112,0x1311125d,0x0c5b100c,0x18101814,0x15181215,0x120c1810,0x18141614,0x1413120c,0x13101916,0x5d0c5b10,0x0c111011,0x13131117,0x1613120c,0x16171010,0x1218170c,0x105d0c5b,0x100c1410,0x14121216,0x1014180c,0x11151719,0x1113140c,0x105d0c5b,0x12101113,0x12161519,0x120c1115,0x17191013,0x120c100c,0x105d0c5b,0x100c100c,0x1112170c,0x105d0c5b,0x100c1611,0x16180c10,0x0c105d0c,0x5b100c12,0x10111712,0x10151717,0x0c111018,0x10101415,0x1519120c,0x105d0c5b,0x100c1116,0x16171414,0x16131010,0x0c111616,0x17141519,0x1914170c,0x17121212,0x5d0c5b10,0x0c141014,0x12131213,0x11180c15,0x10141819,0x15151112,0x0c161117,0x125d0c5b,0x100c1110,0x10181815,0x1317150c,0x11161113,0x17161416,0x12100c11,0x15191711,0x5d0c5b10,0x0c111611,0x16191219,0x1519180c,0x11161116,0x19111916,0x14180c11,0x15191711,0x5d0c5b10,0x0c181018,0x14161415,0x10140c11,0x10111011,0x18151018,0x170c1112,0x1314145d,0x0c5b100c,0x11161116,0x19121915,0x19180c15,0x10151414,0x1418100c,0x13121511,0x155d0c5b,0x100c1116,0x16171415,0x17181514,0x0c151015,0x14141418,0x130c1711,0x17145d0c,0x5b100c12,0x10121111,0x16111018,0x0c111611,0x16191116,0x1510140c,0x13121611,0x115d0c5b,0x100c1116,0x16171415,0x17181514,0x0c111616,0x17141418,0x1411190c,0x11151917,0x115d0c5b,0x100c1116,0x11161911,0x16151110,0x0c111616,0x17141614,0x1810100c,0x11151917,0x115d0c5b,0x100c1115,0x17191010,0x180c1410,0x14121216,0x1014180c,0x105d0c5b,0x100c1115,0x17191012,0x100c1410,0x14121216,0x1014180c,0x105d0c5b,0x100c1210,0x12191111,0x1814100c,0x18101618,0x18121311,0x100c1916,0x5d0c5b10,0x0c121111,0x13191219,0x1211160c,0x18121517,0x1513160c,0x105d0c5b,0x100c1810,0x16181812,0x1311100c,0x12101219,0x11111814,0x100c165d,0x0c5b100c,0x14101216,0x15191315,0x120c1116,0x16141019,0x16121810,0x0c111519,0x17115d0c,0x5b100c12,0x10161714,0x16151012,0x120c1116,0x16171416,0x14101519,0x0c16125d,0x0c5b100c,0x11161617,0x14151718,0x19110c19,0x11121418,0x13111919,0x0c121017,0x165d0c5b,0x100c1117,0x11171918,0x16181719,0x0c111711,0x17191716,0x1617180c,0x11161213,0x105d0c5b,0x100c1514,0x17141817,0x13120c11,0x11121412,0x17101815,0x110c1115,0x1416125d,0x0c5b100c,0x11171117,0x19171415,0x15190c11,0x17111719,0x18161911,0x180c1719,0x19105d0c,0x5b100c11,0x10151217,0x17101515,0x0c111117,0x15181514,0x1611140c,0x13121611,0x145d0c5b,0x100c1110,0x11101518,0x1016130c,0x11111715,0x18151416,0x11140c13,0x12161114,0x5d0c5b10,0x0c111616,0x17141518,0x1615120c,0x11111214,0x12171019,0x17110c11,0x15141612,0x5d0c5b10,0x0c111616,0x17141517,0x1819110c,0x11161617,0x14161510,0x15190c12,0x15141413,0x5d0c5b10,0x0c141014,0x12131212,0x15120c14,0x10141213,0x12121116,0x0c111513,0x18145d0c,0x5b100c18,0x15181919,0x13141318,0x0c181018,0x14161414,0x13120c13,0x10171618,0x5d0c5b10,0x0c191112,0x16181015,0x15110c11,0x17111418,0x12121618,0x160c1216,0x1417105d,0x0c5b100c,0x11101512,0x17171015,0x150c1110,0x11101518,0x1015140c,0x13181416,0x5d0c5b10,0x0c111616,0x17141517,0x1819110c,0x12111319,0x10151619,0x19150c12,0x15141613,0x5d0c5b10,0x0c111616,0x17141517,0x1819110c,0x11181710,0x16121516,0x15110c12,0x15141417,0x5d0c5b10,0x0c111616,0x17141517,0x1815140c,0x11161617,0x14151718,0x19110c11,0x15191711,0x5d0c5b10,0x0c111011,0x10151810,0x16130c11,0x17111719,0x17161518,0x120c1116,0x1213105d,0x0c5b1811,0x12161416,0x1410100c,0x11161617,0x19181812,0x18160c11,0x16161714,0x15171819,0x110c1115,0x1917115d,0x0c5b100c,0x11171117,0x19181619,0x11190c11,0x17111719,0x17161613,0x100c1116,0x1213105d,0x0c5b100c,0x11161117,0x11121612,0x10160c11,0x16161113,0x14141811,0x160c1115,0x1917115d,0x0c5b100c,0x14101412,0x13121215,0x120c1115,0x11111512,0x18141712,0x0c131213,0x18125d0c,0x5b100c11,0x16161714,0x15171815,0x140c1116,0x16171415,0x17181911,0x0c121514,0x14135d0c,0x5b100c11,0x16161414,0x19101510,0x140c1116,0x16171415,0x17181911,0x0c121514,0x14135d0c,0x5b100c11,0x18101315,0x11151710,0x120c1116,0x16171415,0x19191417,0x0c121514,0x14135d0c,0x5b100c11,0x10141317,0x15111717,0x190c1911,0x10101410,0x1019120c,0x12151414,0x135d0c5b,0x100c1410,0x14121312,0x1215120c,0x11171117,0x19171610,0x18180c12,0x16121114,0x5d0c5b10,0x0c111015,0x10171916,0x17190c11,0x16131015,0x14111813,0x160c1312,0x1611115d,0x0c0f0a00,0x52454144,0x00494600,0x43555445,0x000a0f5b,0x100c1210,0x12111116,0x1115160c,0x12101211,0x11161110,0x180c1115,0x1317125d,0x0c5b100c,0x19141618,0x18181716,0x180c1510,0x17191410,0x11120c11,0x5d0c5b10,0x0c181018,0x14161414,0x14140c18,0x10181416,0x14141312,0x0c111514,0x10185d0c,0x5b100c10,0x0c100c11,0x13161016,0x16161519,0x5d0c5b11,0x16171111,0x1618100c,0x100c100c,0x105d0c5b,0x100c100c,0x100c1210,0x12111119,0x1116185d,0x0c5b100c,0x18151819,0x19131511,0x180c1119,0x17181413,0x100c105d,0x0c5b100c,0x11171117,0x19181618,0x17180c11,0x10121614,0x13131012,0x0c111719,0x185d0c5b,0x100c1510,0x15151316,0x16120c14,0x10181815,0x17190c10,0x5d0c5b10,0x0c181518,0x19191315,0x11180c18,0x10191215,0x12141013,0x0c111413,0x18145d0c,0x5b100c15,0x10151513,0x1616120c,0x14101818,0x1710130c,0x105d0c5b,0x100c1110,0x11101518,0x1016130c,0x16131719,0x13111217,0x100c1712,0x12125d0c,0x5b181018,0x16151613,0x18140c18,0x15181919,0x13141710,0x0c171212,0x12101617,0x0c105d0c,0x5b100c11,0x17111719,0x18161911,0x190c1110,0x14121310,0x1510120c,0x11171918,0x5d0c5b10,0x0c141014,0x12131212,0x15120c11,0x18141111,0x17160c16,0x1116185d,0x0c5b1117,0x11171917,0x16101614,0x0c111611,0x16191218,0x1816140c,0x17131614,0x1710140c,0x12141617,0x125d0c5b,0x100c1510,0x16181811,0x1613190c,0x11101713,0x16111812,0x120c1117,0x19185d0c,0x5b100c14,0x10141213,0x12121512,0x0c141014,0x12131212,0x11160c17,0x1119125d,0x0c5b100c,0x11181012,0x12101119,0x15150c13,0x16131710,0x19190c10,0x5d0c5b10,0x0c111711,0x17191816,0x1911180c,0x13181912,0x1813180c,0x105d0c5b,0x100c1116,0x16171415,0x17181514,0x0c141018,0x18161715,0x0c105d0c,0x5b111011,0x10161013,0x15120c11,0x17111719,0x18161817,0x180c1318,0x19121813,0x180c105d,0x0c5b1810,0x18141812,0x1811160c,0x18151819,0x19131417,0x100c1712,0x12121016,0x170c105d,0x0c5b100c,0x11101110,0x15181016,0x130c1318,0x19141818,0x160c105d,0x0c5b100c,0x14171219,0x13131118,0x120c1410,0x18181518,0x120c105d,0x0c5b100c,0x12101211,0x14101712,0x180c1210,0x15141518,0x1414140c,0x12101610,0x5d0c5b10,0x0c181518,0x19191315,0x11180c13,0x13151514,0x14130c10,0x5d0c5b10,0x0c111711,0x17191716,0x1018180c,0x16171110,0x1818160c,0x105d0c5b,0x100c1118,0x10121210,0x17101310,0x0c161511,0x13151115,0x0c105d0c,0x5b100c14,0x17111611,0x10191719,0x0c161510,0x11191116,0x0c105d0c,0x5b111611,0x13171616,0x1410100c,0x11161617,0x14151719,0x11180c16,0x15111315,0x10170c10,0x5d0c5b10,0x0c121011,0x17141512,0x17190c18,0x13131611,0x15120c10,0x5d0c5b10,0x0c141014,0x12131213,0x10140c14,0x10141212,0x19161516,0x0c121816,0x19165d0c,0x5b100c14,0x10141213,0x12121116,0x0c141014,0x12121610,0x17120c16,0x1116185d,0x0c5b100c,0x14101412,0x13121210,0x160c1410,0x14121514,0x1714140c,0x13161018,0x5d0c5b10,0x0c100c10,0x0c121812,0x11195d0c,0x5b121113,0x11111010,0x1617120c,0x11161117,0x11191215,0x17150c11,0x16111619,0x12181816,0x140c1916,0x5d0c5b11,0x10171317,0x14111812,0x140c1211,0x13161419,0x12101916,0x0c111017,0x18141813,0x1017110c,0x16145d5d,0x1b5f5f60,0x60464c4f,0x41540050,0x58001d00,0x490e5556,0x0e58000a,0x00232f2c,0x331b5f60,0x60464c4f,0x41540050,0x59001d00,0x490e5556,0x0e59000a,0x00322f37,0x331b5f60,0x6055494e,0x54004348,0x41525800,0x1d005058,0x1b5f6060,0x55494e54,0x00434841,0x5259001d,0x0050591b,0x5f606055,0x494e5400,0x43484152,0x3f494e44,0x4558001d,0x00084348,0x41525800,0x0b000832,0x2f373300,0x0d001100,0x0d004348,0x41525909,0x000a0023,0x2f2c3309,0x1b5f6060,0x55494e54,0x00434841,0x521b5f60,0x60464c4f,0x41541300,0x434f4c4f,0x52001d00,0x100e181b,0x5f606049,0x46000843,0x4841523f,0x494e4445,0x58001e1d,0x00424c4f,0x423f5354,0x41525400,0x06060043,0x4841523f,0x494e4445,0x58001c00,0x08424c4f,0x423f5354,0x41525400,0x0b005445,0x58543f4c,0x454e000a,0x00111109,0x09005b5f,0x60606055,0x494e5400,0x424c4f42,0x3f494e44,0x4558001d,0x00434841,0x523f494e,0x44455800,0x0d00424c,0x4f423f53,0x54415254,0x1b5f6060,0x6055494e,0x54004e55,0x4d424552,0x3f494e44,0x4558001d,0x00424c4f,0x423f494e,0x44455800,0x0f001111,0x1b5f6060,0x6055494e,0x54004449,0x4749543f,0x4249543f,0x4f464653,0x4554001d,0x00424c4f,0x423f494e,0x44455800,0x05001111,0x1b5f6060,0x60494600,0x08444947,0x49543f42,0x49543f4f,0x46465345,0x54001d1d,0x00100900,0x5b5f6060,0x60604348,0x4152001d,0x0011161b,0x000f0f00,0x105f6060,0x6060434f,0x4c4f5200,0x1d00464c,0x4f415413,0x08110c00,0x100e130c,0x00100e15,0x091b5f60,0x60605d00,0x454c5345,0x00494600,0x08444947,0x49543f42,0x49543f4f,0x46465345,0x54001d1d,0x00110900,0x5b5f6060,0x60604348,0x4152001d,0x0018181b,0x000f0f00,0x585f6060,0x6060434f,0x4c4f5200,0x1d00464c,0x4f415413,0x08110c00,0x100e130c,0x00100e15,0x091b5f60,0x60605d00,0x454c5345,0x00494600,0x08444947,0x49543f42,0x49543f4f,0x46465345,0x54001d1d,0x00111009,0x005b5f60,0x60606043,0x48415200,0x1d001112,0x1b000f0f,0x000c5f60,0x60605d00,0x454c5345,0x005b5f60,0x60606055,0x494e5400,0x4e554d42,0x4552001d,0x00544558,0x543b4e55,0x4d424552,0x3f494e44,0x45583d1b,0x5f606060,0x6055494e,0x54004e49,0x42424c45,0x3f424954,0x3f4f4646,0x53455400,0x1d000844,0x49474954,0x3f424954,0x3f4f4646,0x53455400,0x0d001209,0x00060017,0x1b5f6060,0x60605549,0x4e54004e,0x4942424c,0x45001d00,0x084e554d,0x42455200,0x1e1e0008,0x0817000d,0x004e4942,0x424c453f,0x4249543f,0x4f464653,0x45540900,0x0a001409,0x09000600,0x11151b5f,0x60606060,0x434f4e53,0x54005549,0x4e540048,0x45583f43,0x48415253,0x3b11163d,0x001d005b,0x11160c00,0x11170c00,0x11180c00,0x11190c00,0x12100c00,0x12110c00,0x12120c00,0x12130c00,0x12140c00,0x12150c00,0x16150c00,0x16160c00,0x16170c00,0x16180c00,0x16190c00,0x17105d1b,0x5f606060,0x60434841,0x52001d00,0x4845583f,0x43484152,0x533b4e49,0x42424c45,0x3d1b5f60,0x60606043,0x4f4c4f52,0x001d0046,0x4c4f4154,0x1308100e,0x120c0010,0x0e18150c,0x0011091b,0x5f606060,0x5d5f6060,0x5d00454c,0x5345005b,0x5f606060,0x49460008,0x43484152,0x3f494e44,0x4558001e,0x00424c4f,0x423f5354,0x41525409,0x00434841,0x523f494e,0x44455800,0x0d1d0054,0x4558543f,0x4c454e00,0x0a001111,0x000d0011,0x1b5f6060,0x6055494e,0x54005445,0x58543f49,0x4e444558,0x001d0043,0x4841523f,0x494e4445,0x58001e1e,0x00121b5f,0x60606043,0x48415200,0x1d005445,0x58543b54,0x4558543f,0x494e4445,0x583d1b5f,0x60606055,0x494e5400,0x42595445,0x3f494e44,0x4558001d,0x00084348,0x41523f49,0x4e444558,0x00060013,0x091b5f60,0x60604348,0x4152001e,0x1e1d0008,0x13000d00,0x42595445,0x3f494e44,0x45580900,0x1c1c0013,0x1b5f6060,0x60494600,0x08544558,0x543f494e,0x44455800,0x1e1d0054,0x4558543f,0x4c454e09,0x005b0043,0x48415200,0x1d00101b,0x005d5f60,0x605d5f5f,0x60604348,0x41520006,0x1d001058,0x46461b5f,0x60605549,0x4e540054,0x58001d00,0x08505800,0x0d004348,0x41525809,0x000a0018,0x1b5f6060,0x55494e54,0x00545900,0x1d000850,0x59000d00,0x43484152,0x5909000a,0x0011161b,0x5f5f6060,0x55494e54,0x00515541,0x52544552,0x001d0054,0x59000f00,0x141b5f60,0x6055494e,0x54004249,0x543f4f46,0x46534554,0x001d0054,0x58000b00,0x08085459,0x00060013,0x09001c1c,0x0013091b,0x5f606055,0x494e5400,0x50495845,0x4c001d00,0x08464f4e,0x543b4348,0x41523d3b,0x51554152,0x5445523d,0x001e1e00,0x4249543f,0x4f464653,0x45540900,0x0600111b,0x5f606049,0x46000801,0x50495845,0x4c09005b,0x00434f4c,0x4f52001d,0x00080843,0x48415258,0x000b0043,0x48415259,0x09000600,0x1109000a,0x000e1013,0x000b000e,0x10131b00,0x5d5f6060,0x52455455,0x524e0046,0x4c4f4154,0x1408434f,0x4c4f520c,0x0011091b,0x5f605d5f,0x252e2423,0x275f5d5d,0x5d000f0f,0x00191958,0x11191800,0x43484152,0x530c0011,0x19161012,0x00425954,0x45530c00,0x53454500,0x48545450,0x531a0f0f,0x4749540e,0x43524953,0x50595049,0x4e0e4343,0x0f235249,0x53505930,0x494e0f43,0x56520d50,0x524f5053,0x0f535243,0x0f425241,0x4e43480f,0x4d41494e,0x0f215353,0x4554530f,0x54455354,0x0f515549,0x4e450e53,0x48414445,0x525f0000,};
|
|
const uint text_len = 1307;
|
|
const uint blob_start = 708;
|
|
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 float4(color, 1);
|
|
}
|
|
ENDCG
|
|
}}} // 99x198 chars, 19602 bytes, see https://git.crispypin.cc/CrispyPin/cvr-props/src/branch/main/Assets/test/quine.shader
|