From 2be6be416f621470e65b193f675c9693c25e35c5 Mon Sep 17 00:00:00 2001 From: yum Date: Fri, 9 May 2025 23:18:21 -0700 Subject: Double unigram letter grid blocks again Also: - move fudge factor into shader. More reliable for tokens close to 255. - optimize how we mark the cbuffer params dirty by using fused mul-add instructions --- 2ner.cginc | 3 +- 2ner.shader | 260 ++++++++++++++++- unigram_letter_grid.cginc | 712 ++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 841 insertions(+), 134 deletions(-) diff --git a/2ner.cginc b/2ner.cginc index 7d0916f..d4ea269 100644 --- a/2ner.cginc +++ b/2ner.cginc @@ -175,7 +175,6 @@ float4 frag(v2f i, uint facing : SV_IsFrontFace i.normal = normalize(i.normal); i.normal *= facing ? 1 : -1; - i.normal = UnityObjectToWorldNormal(i.normal); i.tangent = UnityObjectToWorldNormal(i.tangent); i.binormal = UnityObjectToWorldNormal(i.binormal); @@ -249,7 +248,7 @@ float4 frag(v2f i, uint facing : SV_IsFrontFace #endif #if defined(_UNIGRAM_LETTER_GRID) - UnigramLetterGridOutput unigram_letter_grid_output = UnigramLetterGrid(i); + UnigramLetterGridOutput unigram_letter_grid_output = UnigramLetterGrid(i, facing); pbr.albedo.rgb = lerp(pbr.albedo.rgb, unigram_letter_grid_output.albedo, unigram_letter_grid_output.albedo.a); pbr.metallic = lerp(pbr.metallic, unigram_letter_grid_output.metallic, diff --git a/2ner.shader b/2ner.shader index 7199367..b6b435e 100644 --- a/2ner.shader +++ b/2ner.shader @@ -630,16 +630,36 @@ Shader "yum_food/2ner" _Unigram_Letter_Grid_Block07_Visual_Pointer_Animated("Block 07 visual pointer", Float) = 0 _Unigram_Letter_Grid_Block08_Visual_Pointer_Animated("Block 08 visual pointer", Float) = 0 _Unigram_Letter_Grid_Block09_Visual_Pointer_Animated("Block 09 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block10_Visual_Pointer_Animated("Block 00 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block11_Visual_Pointer_Animated("Block 01 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block12_Visual_Pointer_Animated("Block 02 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block13_Visual_Pointer_Animated("Block 03 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block14_Visual_Pointer_Animated("Block 04 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block15_Visual_Pointer_Animated("Block 05 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block16_Visual_Pointer_Animated("Block 06 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block17_Visual_Pointer_Animated("Block 07 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block18_Visual_Pointer_Animated("Block 08 visual pointer", Float) = 0 - _Unigram_Letter_Grid_Block19_Visual_Pointer_Animated("Block 09 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block10_Visual_Pointer_Animated("Block 10 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block11_Visual_Pointer_Animated("Block 11 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block12_Visual_Pointer_Animated("Block 12 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block13_Visual_Pointer_Animated("Block 13 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block14_Visual_Pointer_Animated("Block 14 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block15_Visual_Pointer_Animated("Block 15 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block16_Visual_Pointer_Animated("Block 16 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block17_Visual_Pointer_Animated("Block 17 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block18_Visual_Pointer_Animated("Block 18 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block19_Visual_Pointer_Animated("Block 19 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block20_Visual_Pointer_Animated("Block 20 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block21_Visual_Pointer_Animated("Block 21 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block22_Visual_Pointer_Animated("Block 22 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block23_Visual_Pointer_Animated("Block 23 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block24_Visual_Pointer_Animated("Block 24 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block25_Visual_Pointer_Animated("Block 25 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block26_Visual_Pointer_Animated("Block 26 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block27_Visual_Pointer_Animated("Block 27 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block28_Visual_Pointer_Animated("Block 28 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block29_Visual_Pointer_Animated("Block 29 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block30_Visual_Pointer_Animated("Block 30 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block31_Visual_Pointer_Animated("Block 31 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block32_Visual_Pointer_Animated("Block 32 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block33_Visual_Pointer_Animated("Block 33 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block34_Visual_Pointer_Animated("Block 34 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block35_Visual_Pointer_Animated("Block 35 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block36_Visual_Pointer_Animated("Block 36 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block37_Visual_Pointer_Animated("Block 37 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block38_Visual_Pointer_Animated("Block 38 visual pointer", Float) = 0 + _Unigram_Letter_Grid_Block39_Visual_Pointer_Animated("Block 39 visual pointer", Float) = 0 _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00_Animated("Block 00, Datum 00, Byte 00", Range(0,255)) = 255 _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01_Animated("Block 00, Datum 00, Byte 01", Range(0,255)) = 255 @@ -861,6 +881,226 @@ Shader "yum_food/2ner" _Unigram_Letter_Grid_Data_Block19_Datum04_Byte00_Animated("Block 19, Datum 04, Byte 00", Range(0,255)) = 255 _Unigram_Letter_Grid_Data_Block19_Datum04_Byte01_Animated("Block 19, iatum 04, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum00_Byte00_Animated("Block 20, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum00_Byte01_Animated("Block 20, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum01_Byte00_Animated("Block 20, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum01_Byte01_Animated("Block 20, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum02_Byte00_Animated("Block 20, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum02_Byte01_Animated("Block 20, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum03_Byte00_Animated("Block 20, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum03_Byte01_Animated("Block 20, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum04_Byte00_Animated("Block 20, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block20_Datum04_Byte01_Animated("Block 20, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block21_Datum00_Byte00_Animated("Block 21, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum00_Byte01_Animated("Block 21, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum01_Byte00_Animated("Block 21, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum01_Byte01_Animated("Block 21, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum02_Byte00_Animated("Block 21, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum02_Byte01_Animated("Block 21, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum03_Byte00_Animated("Block 21, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum03_Byte01_Animated("Block 21, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum04_Byte00_Animated("Block 21, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block21_Datum04_Byte01_Animated("Block 21, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block22_Datum00_Byte00_Animated("Block 22, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum00_Byte01_Animated("Block 22, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum01_Byte00_Animated("Block 22, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum01_Byte01_Animated("Block 22, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum02_Byte00_Animated("Block 22, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum02_Byte01_Animated("Block 22, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum03_Byte00_Animated("Block 22, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum03_Byte01_Animated("Block 22, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum04_Byte00_Animated("Block 22, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block22_Datum04_Byte01_Animated("Block 22, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block23_Datum00_Byte00_Animated("Block 23, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum00_Byte01_Animated("Block 23, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum01_Byte00_Animated("Block 23, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum01_Byte01_Animated("Block 23, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum02_Byte00_Animated("Block 23, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum02_Byte01_Animated("Block 23, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum03_Byte00_Animated("Block 23, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum03_Byte01_Animated("Block 23, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum04_Byte00_Animated("Block 23, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block23_Datum04_Byte01_Animated("Block 23, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block24_Datum00_Byte00_Animated("Block 24, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum00_Byte01_Animated("Block 24, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum01_Byte00_Animated("Block 24, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum01_Byte01_Animated("Block 24, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum02_Byte00_Animated("Block 24, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum02_Byte01_Animated("Block 24, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum03_Byte00_Animated("Block 24, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum03_Byte01_Animated("Block 24, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum04_Byte00_Animated("Block 24, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block24_Datum04_Byte01_Animated("Block 24, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block25_Datum00_Byte00_Animated("Block 25, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum00_Byte01_Animated("Block 25, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum01_Byte00_Animated("Block 25, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum01_Byte01_Animated("Block 25, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum02_Byte00_Animated("Block 25, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum02_Byte01_Animated("Block 25, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum03_Byte00_Animated("Block 25, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum03_Byte01_Animated("Block 25, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum04_Byte00_Animated("Block 25, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block25_Datum04_Byte01_Animated("Block 25, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block26_Datum00_Byte00_Animated("Block 26, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum00_Byte01_Animated("Block 26, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum01_Byte00_Animated("Block 26, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum01_Byte01_Animated("Block 26, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum02_Byte00_Animated("Block 26, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum02_Byte01_Animated("Block 26, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum03_Byte00_Animated("Block 26, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum03_Byte01_Animated("Block 26, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum04_Byte00_Animated("Block 26, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block26_Datum04_Byte01_Animated("Block 26, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block27_Datum00_Byte00_Animated("Block 27, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum00_Byte01_Animated("Block 27, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum01_Byte00_Animated("Block 27, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum01_Byte01_Animated("Block 27, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum02_Byte00_Animated("Block 27, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum02_Byte01_Animated("Block 27, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum03_Byte00_Animated("Block 27, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum03_Byte01_Animated("Block 27, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum04_Byte00_Animated("Block 27, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block27_Datum04_Byte01_Animated("Block 27, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block28_Datum00_Byte00_Animated("Block 28, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum00_Byte01_Animated("Block 28, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum01_Byte00_Animated("Block 28, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum01_Byte01_Animated("Block 28, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum02_Byte00_Animated("Block 28, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum02_Byte01_Animated("Block 28, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum03_Byte00_Animated("Block 28, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum03_Byte01_Animated("Block 28, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum04_Byte00_Animated("Block 28, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block28_Datum04_Byte01_Animated("Block 28, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block29_Datum00_Byte00_Animated("Block 29, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum00_Byte01_Animated("Block 29, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum01_Byte00_Animated("Block 29, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum01_Byte01_Animated("Block 29, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum02_Byte00_Animated("Block 29, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum02_Byte01_Animated("Block 29, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum03_Byte00_Animated("Block 29, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum03_Byte01_Animated("Block 29, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum04_Byte00_Animated("Block 29, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block29_Datum04_Byte01_Animated("Block 29, iatum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block30_Datum00_Byte00_Animated("Block 30, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum00_Byte01_Animated("Block 30, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum01_Byte00_Animated("Block 30, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum01_Byte01_Animated("Block 30, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum02_Byte00_Animated("Block 30, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum02_Byte01_Animated("Block 30, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum03_Byte00_Animated("Block 30, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum03_Byte01_Animated("Block 30, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum04_Byte00_Animated("Block 30, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block30_Datum04_Byte01_Animated("Block 30, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block31_Datum00_Byte00_Animated("Block 31, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum00_Byte01_Animated("Block 31, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum01_Byte00_Animated("Block 31, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum01_Byte01_Animated("Block 31, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum02_Byte00_Animated("Block 31, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum02_Byte01_Animated("Block 31, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum03_Byte00_Animated("Block 31, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum03_Byte01_Animated("Block 31, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum04_Byte00_Animated("Block 31, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block31_Datum04_Byte01_Animated("Block 31, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block32_Datum00_Byte00_Animated("Block 32, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum00_Byte01_Animated("Block 32, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum01_Byte00_Animated("Block 32, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum01_Byte01_Animated("Block 32, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum02_Byte00_Animated("Block 32, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum02_Byte01_Animated("Block 32, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum03_Byte00_Animated("Block 32, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum03_Byte01_Animated("Block 32, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum04_Byte00_Animated("Block 32, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block32_Datum04_Byte01_Animated("Block 32, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block33_Datum00_Byte00_Animated("Block 33, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum00_Byte01_Animated("Block 33, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum01_Byte00_Animated("Block 33, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum01_Byte01_Animated("Block 33, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum02_Byte00_Animated("Block 33, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum02_Byte01_Animated("Block 33, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum03_Byte00_Animated("Block 33, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum03_Byte01_Animated("Block 33, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum04_Byte00_Animated("Block 33, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block33_Datum04_Byte01_Animated("Block 33, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block34_Datum00_Byte00_Animated("Block 34, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum00_Byte01_Animated("Block 34, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum01_Byte00_Animated("Block 34, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum01_Byte01_Animated("Block 34, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum02_Byte00_Animated("Block 34, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum02_Byte01_Animated("Block 34, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum03_Byte00_Animated("Block 34, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum03_Byte01_Animated("Block 34, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum04_Byte00_Animated("Block 34, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block34_Datum04_Byte01_Animated("Block 34, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block35_Datum00_Byte00_Animated("Block 35, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum00_Byte01_Animated("Block 35, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum01_Byte00_Animated("Block 35, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum01_Byte01_Animated("Block 35, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum02_Byte00_Animated("Block 35, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum02_Byte01_Animated("Block 35, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum03_Byte00_Animated("Block 35, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum03_Byte01_Animated("Block 35, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum04_Byte00_Animated("Block 35, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block35_Datum04_Byte01_Animated("Block 35, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block36_Datum00_Byte00_Animated("Block 36, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum00_Byte01_Animated("Block 36, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum01_Byte00_Animated("Block 36, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum01_Byte01_Animated("Block 36, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum02_Byte00_Animated("Block 36, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum02_Byte01_Animated("Block 36, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum03_Byte00_Animated("Block 36, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum03_Byte01_Animated("Block 36, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum04_Byte00_Animated("Block 36, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block36_Datum04_Byte01_Animated("Block 36, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block37_Datum00_Byte00_Animated("Block 37, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum00_Byte01_Animated("Block 37, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum01_Byte00_Animated("Block 37, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum01_Byte01_Animated("Block 37, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum02_Byte00_Animated("Block 37, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum02_Byte01_Animated("Block 37, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum03_Byte00_Animated("Block 37, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum03_Byte01_Animated("Block 37, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum04_Byte00_Animated("Block 37, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block37_Datum04_Byte01_Animated("Block 37, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block38_Datum00_Byte00_Animated("Block 38, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum00_Byte01_Animated("Block 38, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum01_Byte00_Animated("Block 38, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum01_Byte01_Animated("Block 38, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum02_Byte00_Animated("Block 38, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum02_Byte01_Animated("Block 38, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum03_Byte00_Animated("Block 38, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum03_Byte01_Animated("Block 38, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum04_Byte00_Animated("Block 38, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block38_Datum04_Byte01_Animated("Block 38, Datum 04, Byte 01", Range(0,255)) = 255 + + _Unigram_Letter_Grid_Data_Block39_Datum00_Byte00_Animated("Block 39, Datum 00, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum00_Byte01_Animated("Block 39, Datum 00, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum01_Byte00_Animated("Block 39, Datum 01, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum01_Byte01_Animated("Block 39, Datum 01, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum02_Byte00_Animated("Block 39, Datum 02, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum02_Byte01_Animated("Block 39, Datum 02, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum03_Byte00_Animated("Block 39, Datum 03, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum03_Byte01_Animated("Block 39, Datum 03, Byte 01", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum04_Byte00_Animated("Block 39, Datum 04, Byte 00", Range(0,255)) = 255 + _Unigram_Letter_Grid_Data_Block39_Datum04_Byte01_Animated("Block 39, iatum 04, Byte 01", Range(0,255)) = 255 + [HideInInspector] m_end_Unigram_Letter_Grid("Unigram letter grid", Float) = 0 //endex diff --git a/unigram_letter_grid.cginc b/unigram_letter_grid.cginc index bc7aa94..dcae4db 100644 --- a/unigram_letter_grid.cginc +++ b/unigram_letter_grid.cginc @@ -14,7 +14,10 @@ // Block width = number of tokens sent per block #define ULG_BLOCK_WIDTH 5 // Num blocks = total # of blocks in memory -#define ULG_NUM_BLOCKS 20 +#define ULG_NUM_BLOCKS 40 +// The data coming from the animator can be a little noisy. Add this then floor +// to mask it out. +#define FUDGE_AMOUNT 0.5 texture2D _Unigram_Letter_Grid_Glyphs; float4 _Unigram_Letter_Grid_Glyphs_TexelSize; @@ -62,6 +65,26 @@ cbuffer UnigramLetterGridVisualPointers float _Unigram_Letter_Grid_Block17_Visual_Pointer_Animated : packoffset(c17); float _Unigram_Letter_Grid_Block18_Visual_Pointer_Animated : packoffset(c18); float _Unigram_Letter_Grid_Block19_Visual_Pointer_Animated : packoffset(c19); + float _Unigram_Letter_Grid_Block20_Visual_Pointer_Animated : packoffset(c20); + float _Unigram_Letter_Grid_Block21_Visual_Pointer_Animated : packoffset(c21); + float _Unigram_Letter_Grid_Block22_Visual_Pointer_Animated : packoffset(c22); + float _Unigram_Letter_Grid_Block23_Visual_Pointer_Animated : packoffset(c23); + float _Unigram_Letter_Grid_Block24_Visual_Pointer_Animated : packoffset(c24); + float _Unigram_Letter_Grid_Block25_Visual_Pointer_Animated : packoffset(c25); + float _Unigram_Letter_Grid_Block26_Visual_Pointer_Animated : packoffset(c26); + float _Unigram_Letter_Grid_Block27_Visual_Pointer_Animated : packoffset(c27); + float _Unigram_Letter_Grid_Block28_Visual_Pointer_Animated : packoffset(c28); + float _Unigram_Letter_Grid_Block29_Visual_Pointer_Animated : packoffset(c29); + float _Unigram_Letter_Grid_Block30_Visual_Pointer_Animated : packoffset(c30); + float _Unigram_Letter_Grid_Block31_Visual_Pointer_Animated : packoffset(c31); + float _Unigram_Letter_Grid_Block32_Visual_Pointer_Animated : packoffset(c32); + float _Unigram_Letter_Grid_Block33_Visual_Pointer_Animated : packoffset(c33); + float _Unigram_Letter_Grid_Block34_Visual_Pointer_Animated : packoffset(c34); + float _Unigram_Letter_Grid_Block35_Visual_Pointer_Animated : packoffset(c35); + float _Unigram_Letter_Grid_Block36_Visual_Pointer_Animated : packoffset(c36); + float _Unigram_Letter_Grid_Block37_Visual_Pointer_Animated : packoffset(c37); + float _Unigram_Letter_Grid_Block38_Visual_Pointer_Animated : packoffset(c38); + float _Unigram_Letter_Grid_Block39_Visual_Pointer_Animated : packoffset(c39); } #endif // ULG_VP @@ -179,6 +202,116 @@ cbuffer UnigramLetterGridDataByte00_Animated float _Unigram_Letter_Grid_Data_Block19_Datum02_Byte00_Animated : packoffset(c97); float _Unigram_Letter_Grid_Data_Block19_Datum03_Byte00_Animated : packoffset(c98); float _Unigram_Letter_Grid_Data_Block19_Datum04_Byte00_Animated : packoffset(c99); + + float _Unigram_Letter_Grid_Data_Block20_Datum00_Byte00_Animated : packoffset(c100); + float _Unigram_Letter_Grid_Data_Block20_Datum01_Byte00_Animated : packoffset(c101); + float _Unigram_Letter_Grid_Data_Block20_Datum02_Byte00_Animated : packoffset(c102); + float _Unigram_Letter_Grid_Data_Block20_Datum03_Byte00_Animated : packoffset(c103); + float _Unigram_Letter_Grid_Data_Block20_Datum04_Byte00_Animated : packoffset(c104); + float _Unigram_Letter_Grid_Data_Block21_Datum00_Byte00_Animated : packoffset(c105); + float _Unigram_Letter_Grid_Data_Block21_Datum01_Byte00_Animated : packoffset(c106); + float _Unigram_Letter_Grid_Data_Block21_Datum02_Byte00_Animated : packoffset(c107); + float _Unigram_Letter_Grid_Data_Block21_Datum03_Byte00_Animated : packoffset(c108); + float _Unigram_Letter_Grid_Data_Block21_Datum04_Byte00_Animated : packoffset(c109); + + float _Unigram_Letter_Grid_Data_Block22_Datum00_Byte00_Animated : packoffset(c110); + float _Unigram_Letter_Grid_Data_Block22_Datum01_Byte00_Animated : packoffset(c111); + float _Unigram_Letter_Grid_Data_Block22_Datum02_Byte00_Animated : packoffset(c112); + float _Unigram_Letter_Grid_Data_Block22_Datum03_Byte00_Animated : packoffset(c113); + float _Unigram_Letter_Grid_Data_Block22_Datum04_Byte00_Animated : packoffset(c114); + float _Unigram_Letter_Grid_Data_Block23_Datum00_Byte00_Animated : packoffset(c115); + float _Unigram_Letter_Grid_Data_Block23_Datum01_Byte00_Animated : packoffset(c116); + float _Unigram_Letter_Grid_Data_Block23_Datum02_Byte00_Animated : packoffset(c117); + float _Unigram_Letter_Grid_Data_Block23_Datum03_Byte00_Animated : packoffset(c118); + float _Unigram_Letter_Grid_Data_Block23_Datum04_Byte00_Animated : packoffset(c119); + + float _Unigram_Letter_Grid_Data_Block24_Datum00_Byte00_Animated : packoffset(c120); + float _Unigram_Letter_Grid_Data_Block24_Datum01_Byte00_Animated : packoffset(c121); + float _Unigram_Letter_Grid_Data_Block24_Datum02_Byte00_Animated : packoffset(c122); + float _Unigram_Letter_Grid_Data_Block24_Datum03_Byte00_Animated : packoffset(c123); + float _Unigram_Letter_Grid_Data_Block24_Datum04_Byte00_Animated : packoffset(c124); + float _Unigram_Letter_Grid_Data_Block25_Datum00_Byte00_Animated : packoffset(c125); + float _Unigram_Letter_Grid_Data_Block25_Datum01_Byte00_Animated : packoffset(c126); + float _Unigram_Letter_Grid_Data_Block25_Datum02_Byte00_Animated : packoffset(c127); + float _Unigram_Letter_Grid_Data_Block25_Datum03_Byte00_Animated : packoffset(c128); + float _Unigram_Letter_Grid_Data_Block25_Datum04_Byte00_Animated : packoffset(c129); + + float _Unigram_Letter_Grid_Data_Block26_Datum00_Byte00_Animated : packoffset(c130); + float _Unigram_Letter_Grid_Data_Block26_Datum01_Byte00_Animated : packoffset(c131); + float _Unigram_Letter_Grid_Data_Block26_Datum02_Byte00_Animated : packoffset(c132); + float _Unigram_Letter_Grid_Data_Block26_Datum03_Byte00_Animated : packoffset(c133); + float _Unigram_Letter_Grid_Data_Block26_Datum04_Byte00_Animated : packoffset(c134); + float _Unigram_Letter_Grid_Data_Block27_Datum00_Byte00_Animated : packoffset(c135); + float _Unigram_Letter_Grid_Data_Block27_Datum01_Byte00_Animated : packoffset(c136); + float _Unigram_Letter_Grid_Data_Block27_Datum02_Byte00_Animated : packoffset(c137); + float _Unigram_Letter_Grid_Data_Block27_Datum03_Byte00_Animated : packoffset(c138); + float _Unigram_Letter_Grid_Data_Block27_Datum04_Byte00_Animated : packoffset(c139); + + float _Unigram_Letter_Grid_Data_Block28_Datum00_Byte00_Animated : packoffset(c140); + float _Unigram_Letter_Grid_Data_Block28_Datum01_Byte00_Animated : packoffset(c141); + float _Unigram_Letter_Grid_Data_Block28_Datum02_Byte00_Animated : packoffset(c142); + float _Unigram_Letter_Grid_Data_Block28_Datum03_Byte00_Animated : packoffset(c143); + float _Unigram_Letter_Grid_Data_Block28_Datum04_Byte00_Animated : packoffset(c144); + float _Unigram_Letter_Grid_Data_Block29_Datum00_Byte00_Animated : packoffset(c145); + float _Unigram_Letter_Grid_Data_Block29_Datum01_Byte00_Animated : packoffset(c146); + float _Unigram_Letter_Grid_Data_Block29_Datum02_Byte00_Animated : packoffset(c147); + float _Unigram_Letter_Grid_Data_Block29_Datum03_Byte00_Animated : packoffset(c148); + float _Unigram_Letter_Grid_Data_Block29_Datum04_Byte00_Animated : packoffset(c149); + + float _Unigram_Letter_Grid_Data_Block30_Datum00_Byte00_Animated : packoffset(c150); + float _Unigram_Letter_Grid_Data_Block30_Datum01_Byte00_Animated : packoffset(c151); + float _Unigram_Letter_Grid_Data_Block30_Datum02_Byte00_Animated : packoffset(c152); + float _Unigram_Letter_Grid_Data_Block30_Datum03_Byte00_Animated : packoffset(c153); + float _Unigram_Letter_Grid_Data_Block30_Datum04_Byte00_Animated : packoffset(c154); + float _Unigram_Letter_Grid_Data_Block31_Datum00_Byte00_Animated : packoffset(c155); + float _Unigram_Letter_Grid_Data_Block31_Datum01_Byte00_Animated : packoffset(c156); + float _Unigram_Letter_Grid_Data_Block31_Datum02_Byte00_Animated : packoffset(c157); + float _Unigram_Letter_Grid_Data_Block31_Datum03_Byte00_Animated : packoffset(c158); + float _Unigram_Letter_Grid_Data_Block31_Datum04_Byte00_Animated : packoffset(c159); + + float _Unigram_Letter_Grid_Data_Block32_Datum00_Byte00_Animated : packoffset(c160); + float _Unigram_Letter_Grid_Data_Block32_Datum01_Byte00_Animated : packoffset(c161); + float _Unigram_Letter_Grid_Data_Block32_Datum02_Byte00_Animated : packoffset(c162); + float _Unigram_Letter_Grid_Data_Block32_Datum03_Byte00_Animated : packoffset(c163); + float _Unigram_Letter_Grid_Data_Block32_Datum04_Byte00_Animated : packoffset(c164); + float _Unigram_Letter_Grid_Data_Block33_Datum00_Byte00_Animated : packoffset(c165); + float _Unigram_Letter_Grid_Data_Block33_Datum01_Byte00_Animated : packoffset(c166); + float _Unigram_Letter_Grid_Data_Block33_Datum02_Byte00_Animated : packoffset(c167); + float _Unigram_Letter_Grid_Data_Block33_Datum03_Byte00_Animated : packoffset(c168); + float _Unigram_Letter_Grid_Data_Block33_Datum04_Byte00_Animated : packoffset(c169); + + float _Unigram_Letter_Grid_Data_Block34_Datum00_Byte00_Animated : packoffset(c170); + float _Unigram_Letter_Grid_Data_Block34_Datum01_Byte00_Animated : packoffset(c171); + float _Unigram_Letter_Grid_Data_Block34_Datum02_Byte00_Animated : packoffset(c172); + float _Unigram_Letter_Grid_Data_Block34_Datum03_Byte00_Animated : packoffset(c173); + float _Unigram_Letter_Grid_Data_Block34_Datum04_Byte00_Animated : packoffset(c174); + float _Unigram_Letter_Grid_Data_Block35_Datum00_Byte00_Animated : packoffset(c175); + float _Unigram_Letter_Grid_Data_Block35_Datum01_Byte00_Animated : packoffset(c176); + float _Unigram_Letter_Grid_Data_Block35_Datum02_Byte00_Animated : packoffset(c177); + float _Unigram_Letter_Grid_Data_Block35_Datum03_Byte00_Animated : packoffset(c178); + float _Unigram_Letter_Grid_Data_Block35_Datum04_Byte00_Animated : packoffset(c179); + + float _Unigram_Letter_Grid_Data_Block36_Datum00_Byte00_Animated : packoffset(c180); + float _Unigram_Letter_Grid_Data_Block36_Datum01_Byte00_Animated : packoffset(c181); + float _Unigram_Letter_Grid_Data_Block36_Datum02_Byte00_Animated : packoffset(c182); + float _Unigram_Letter_Grid_Data_Block36_Datum03_Byte00_Animated : packoffset(c183); + float _Unigram_Letter_Grid_Data_Block36_Datum04_Byte00_Animated : packoffset(c184); + float _Unigram_Letter_Grid_Data_Block37_Datum00_Byte00_Animated : packoffset(c185); + float _Unigram_Letter_Grid_Data_Block37_Datum01_Byte00_Animated : packoffset(c186); + float _Unigram_Letter_Grid_Data_Block37_Datum02_Byte00_Animated : packoffset(c187); + float _Unigram_Letter_Grid_Data_Block37_Datum03_Byte00_Animated : packoffset(c188); + float _Unigram_Letter_Grid_Data_Block37_Datum04_Byte00_Animated : packoffset(c189); + + float _Unigram_Letter_Grid_Data_Block38_Datum00_Byte00_Animated : packoffset(c190); + float _Unigram_Letter_Grid_Data_Block38_Datum01_Byte00_Animated : packoffset(c191); + float _Unigram_Letter_Grid_Data_Block38_Datum02_Byte00_Animated : packoffset(c192); + float _Unigram_Letter_Grid_Data_Block38_Datum03_Byte00_Animated : packoffset(c193); + float _Unigram_Letter_Grid_Data_Block38_Datum04_Byte00_Animated : packoffset(c194); + float _Unigram_Letter_Grid_Data_Block39_Datum00_Byte00_Animated : packoffset(c195); + float _Unigram_Letter_Grid_Data_Block39_Datum01_Byte00_Animated : packoffset(c196); + float _Unigram_Letter_Grid_Data_Block39_Datum02_Byte00_Animated : packoffset(c197); + float _Unigram_Letter_Grid_Data_Block39_Datum03_Byte00_Animated : packoffset(c198); + float _Unigram_Letter_Grid_Data_Block39_Datum04_Byte00_Animated : packoffset(c199); } #endif // ULG_D0 @@ -296,6 +429,116 @@ cbuffer UnigramLetterGridDataByte01_Animated float _Unigram_Letter_Grid_Data_Block19_Datum02_Byte01_Animated : packoffset(c97); float _Unigram_Letter_Grid_Data_Block19_Datum03_Byte01_Animated : packoffset(c98); float _Unigram_Letter_Grid_Data_Block19_Datum04_Byte01_Animated : packoffset(c99); + + float _Unigram_Letter_Grid_Data_Block20_Datum00_Byte01_Animated : packoffset(c100); + float _Unigram_Letter_Grid_Data_Block20_Datum01_Byte01_Animated : packoffset(c101); + float _Unigram_Letter_Grid_Data_Block20_Datum02_Byte01_Animated : packoffset(c102); + float _Unigram_Letter_Grid_Data_Block20_Datum03_Byte01_Animated : packoffset(c103); + float _Unigram_Letter_Grid_Data_Block20_Datum04_Byte01_Animated : packoffset(c104); + float _Unigram_Letter_Grid_Data_Block21_Datum00_Byte01_Animated : packoffset(c105); + float _Unigram_Letter_Grid_Data_Block21_Datum01_Byte01_Animated : packoffset(c106); + float _Unigram_Letter_Grid_Data_Block21_Datum02_Byte01_Animated : packoffset(c107); + float _Unigram_Letter_Grid_Data_Block21_Datum03_Byte01_Animated : packoffset(c108); + float _Unigram_Letter_Grid_Data_Block21_Datum04_Byte01_Animated : packoffset(c109); + + float _Unigram_Letter_Grid_Data_Block22_Datum00_Byte01_Animated : packoffset(c110); + float _Unigram_Letter_Grid_Data_Block22_Datum01_Byte01_Animated : packoffset(c111); + float _Unigram_Letter_Grid_Data_Block22_Datum02_Byte01_Animated : packoffset(c112); + float _Unigram_Letter_Grid_Data_Block22_Datum03_Byte01_Animated : packoffset(c113); + float _Unigram_Letter_Grid_Data_Block22_Datum04_Byte01_Animated : packoffset(c114); + float _Unigram_Letter_Grid_Data_Block23_Datum00_Byte01_Animated : packoffset(c115); + float _Unigram_Letter_Grid_Data_Block23_Datum01_Byte01_Animated : packoffset(c116); + float _Unigram_Letter_Grid_Data_Block23_Datum02_Byte01_Animated : packoffset(c117); + float _Unigram_Letter_Grid_Data_Block23_Datum03_Byte01_Animated : packoffset(c118); + float _Unigram_Letter_Grid_Data_Block23_Datum04_Byte01_Animated : packoffset(c119); + + float _Unigram_Letter_Grid_Data_Block24_Datum00_Byte01_Animated : packoffset(c120); + float _Unigram_Letter_Grid_Data_Block24_Datum01_Byte01_Animated : packoffset(c121); + float _Unigram_Letter_Grid_Data_Block24_Datum02_Byte01_Animated : packoffset(c122); + float _Unigram_Letter_Grid_Data_Block24_Datum03_Byte01_Animated : packoffset(c123); + float _Unigram_Letter_Grid_Data_Block24_Datum04_Byte01_Animated : packoffset(c124); + float _Unigram_Letter_Grid_Data_Block25_Datum00_Byte01_Animated : packoffset(c125); + float _Unigram_Letter_Grid_Data_Block25_Datum01_Byte01_Animated : packoffset(c126); + float _Unigram_Letter_Grid_Data_Block25_Datum02_Byte01_Animated : packoffset(c127); + float _Unigram_Letter_Grid_Data_Block25_Datum03_Byte01_Animated : packoffset(c128); + float _Unigram_Letter_Grid_Data_Block25_Datum04_Byte01_Animated : packoffset(c129); + + float _Unigram_Letter_Grid_Data_Block26_Datum00_Byte01_Animated : packoffset(c130); + float _Unigram_Letter_Grid_Data_Block26_Datum01_Byte01_Animated : packoffset(c131); + float _Unigram_Letter_Grid_Data_Block26_Datum02_Byte01_Animated : packoffset(c132); + float _Unigram_Letter_Grid_Data_Block26_Datum03_Byte01_Animated : packoffset(c133); + float _Unigram_Letter_Grid_Data_Block26_Datum04_Byte01_Animated : packoffset(c134); + float _Unigram_Letter_Grid_Data_Block27_Datum00_Byte01_Animated : packoffset(c135); + float _Unigram_Letter_Grid_Data_Block27_Datum01_Byte01_Animated : packoffset(c136); + float _Unigram_Letter_Grid_Data_Block27_Datum02_Byte01_Animated : packoffset(c137); + float _Unigram_Letter_Grid_Data_Block27_Datum03_Byte01_Animated : packoffset(c138); + float _Unigram_Letter_Grid_Data_Block27_Datum04_Byte01_Animated : packoffset(c139); + + float _Unigram_Letter_Grid_Data_Block28_Datum00_Byte01_Animated : packoffset(c140); + float _Unigram_Letter_Grid_Data_Block28_Datum01_Byte01_Animated : packoffset(c141); + float _Unigram_Letter_Grid_Data_Block28_Datum02_Byte01_Animated : packoffset(c142); + float _Unigram_Letter_Grid_Data_Block28_Datum03_Byte01_Animated : packoffset(c143); + float _Unigram_Letter_Grid_Data_Block28_Datum04_Byte01_Animated : packoffset(c144); + float _Unigram_Letter_Grid_Data_Block29_Datum00_Byte01_Animated : packoffset(c145); + float _Unigram_Letter_Grid_Data_Block29_Datum01_Byte01_Animated : packoffset(c146); + float _Unigram_Letter_Grid_Data_Block29_Datum02_Byte01_Animated : packoffset(c147); + float _Unigram_Letter_Grid_Data_Block29_Datum03_Byte01_Animated : packoffset(c148); + float _Unigram_Letter_Grid_Data_Block29_Datum04_Byte01_Animated : packoffset(c149); + + float _Unigram_Letter_Grid_Data_Block30_Datum00_Byte01_Animated : packoffset(c150); + float _Unigram_Letter_Grid_Data_Block30_Datum01_Byte01_Animated : packoffset(c151); + float _Unigram_Letter_Grid_Data_Block30_Datum02_Byte01_Animated : packoffset(c152); + float _Unigram_Letter_Grid_Data_Block30_Datum03_Byte01_Animated : packoffset(c153); + float _Unigram_Letter_Grid_Data_Block30_Datum04_Byte01_Animated : packoffset(c154); + float _Unigram_Letter_Grid_Data_Block31_Datum00_Byte01_Animated : packoffset(c155); + float _Unigram_Letter_Grid_Data_Block31_Datum01_Byte01_Animated : packoffset(c156); + float _Unigram_Letter_Grid_Data_Block31_Datum02_Byte01_Animated : packoffset(c157); + float _Unigram_Letter_Grid_Data_Block31_Datum03_Byte01_Animated : packoffset(c158); + float _Unigram_Letter_Grid_Data_Block31_Datum04_Byte01_Animated : packoffset(c159); + + float _Unigram_Letter_Grid_Data_Block32_Datum00_Byte01_Animated : packoffset(c160); + float _Unigram_Letter_Grid_Data_Block32_Datum01_Byte01_Animated : packoffset(c161); + float _Unigram_Letter_Grid_Data_Block32_Datum02_Byte01_Animated : packoffset(c162); + float _Unigram_Letter_Grid_Data_Block32_Datum03_Byte01_Animated : packoffset(c163); + float _Unigram_Letter_Grid_Data_Block32_Datum04_Byte01_Animated : packoffset(c164); + float _Unigram_Letter_Grid_Data_Block33_Datum00_Byte01_Animated : packoffset(c165); + float _Unigram_Letter_Grid_Data_Block33_Datum01_Byte01_Animated : packoffset(c166); + float _Unigram_Letter_Grid_Data_Block33_Datum02_Byte01_Animated : packoffset(c167); + float _Unigram_Letter_Grid_Data_Block33_Datum03_Byte01_Animated : packoffset(c168); + float _Unigram_Letter_Grid_Data_Block33_Datum04_Byte01_Animated : packoffset(c169); + + float _Unigram_Letter_Grid_Data_Block34_Datum00_Byte01_Animated : packoffset(c170); + float _Unigram_Letter_Grid_Data_Block34_Datum01_Byte01_Animated : packoffset(c171); + float _Unigram_Letter_Grid_Data_Block34_Datum02_Byte01_Animated : packoffset(c172); + float _Unigram_Letter_Grid_Data_Block34_Datum03_Byte01_Animated : packoffset(c173); + float _Unigram_Letter_Grid_Data_Block34_Datum04_Byte01_Animated : packoffset(c174); + float _Unigram_Letter_Grid_Data_Block35_Datum00_Byte01_Animated : packoffset(c175); + float _Unigram_Letter_Grid_Data_Block35_Datum01_Byte01_Animated : packoffset(c176); + float _Unigram_Letter_Grid_Data_Block35_Datum02_Byte01_Animated : packoffset(c177); + float _Unigram_Letter_Grid_Data_Block35_Datum03_Byte01_Animated : packoffset(c178); + float _Unigram_Letter_Grid_Data_Block35_Datum04_Byte01_Animated : packoffset(c179); + + float _Unigram_Letter_Grid_Data_Block36_Datum00_Byte01_Animated : packoffset(c180); + float _Unigram_Letter_Grid_Data_Block36_Datum01_Byte01_Animated : packoffset(c181); + float _Unigram_Letter_Grid_Data_Block36_Datum02_Byte01_Animated : packoffset(c182); + float _Unigram_Letter_Grid_Data_Block36_Datum03_Byte01_Animated : packoffset(c183); + float _Unigram_Letter_Grid_Data_Block36_Datum04_Byte01_Animated : packoffset(c184); + float _Unigram_Letter_Grid_Data_Block37_Datum00_Byte01_Animated : packoffset(c185); + float _Unigram_Letter_Grid_Data_Block37_Datum01_Byte01_Animated : packoffset(c186); + float _Unigram_Letter_Grid_Data_Block37_Datum02_Byte01_Animated : packoffset(c187); + float _Unigram_Letter_Grid_Data_Block37_Datum03_Byte01_Animated : packoffset(c188); + float _Unigram_Letter_Grid_Data_Block37_Datum04_Byte01_Animated : packoffset(c189); + + float _Unigram_Letter_Grid_Data_Block38_Datum00_Byte01_Animated : packoffset(c190); + float _Unigram_Letter_Grid_Data_Block38_Datum01_Byte01_Animated : packoffset(c191); + float _Unigram_Letter_Grid_Data_Block38_Datum02_Byte01_Animated : packoffset(c192); + float _Unigram_Letter_Grid_Data_Block38_Datum03_Byte01_Animated : packoffset(c193); + float _Unigram_Letter_Grid_Data_Block38_Datum04_Byte01_Animated : packoffset(c194); + float _Unigram_Letter_Grid_Data_Block39_Datum00_Byte01_Animated : packoffset(c195); + float _Unigram_Letter_Grid_Data_Block39_Datum01_Byte01_Animated : packoffset(c196); + float _Unigram_Letter_Grid_Data_Block39_Datum02_Byte01_Animated : packoffset(c197); + float _Unigram_Letter_Grid_Data_Block39_Datum03_Byte01_Animated : packoffset(c198); + float _Unigram_Letter_Grid_Data_Block39_Datum04_Byte01_Animated : packoffset(c199); } #endif // ULG_D1 @@ -305,233 +548,456 @@ void PreventCbufferElision(v2f i, inout float a) { if (i.uv01.x < 0) { a = 0; #if defined(ULG_VP) + // Add pairs of products since each pair compiles down to a single `mad` + // instruction. This reduces the instruction count of this function by + // ~50%. (Thank you d4rkpl4y3r for this tip!) a += - _Unigram_Letter_Grid_Block00_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block00_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block01_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block02_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block02_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block03_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block04_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block04_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block05_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block06_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block06_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block07_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block08_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block08_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block09_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block10_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block10_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block11_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block12_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block12_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block13_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block14_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block14_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block15_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block16_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block16_Visual_Pointer_Animated * _Unigram_Letter_Grid_Block17_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block18_Visual_Pointer_Animated + - _Unigram_Letter_Grid_Block19_Visual_Pointer_Animated; + _Unigram_Letter_Grid_Block18_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block19_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block20_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block21_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block22_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block23_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block24_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block25_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block26_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block27_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block28_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block29_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block30_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block31_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block32_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block33_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block34_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block35_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block36_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block37_Visual_Pointer_Animated + + _Unigram_Letter_Grid_Block38_Visual_Pointer_Animated * + _Unigram_Letter_Grid_Block39_Visual_Pointer_Animated; #endif // ULG_VP #if defined(ULG_D0) a += - _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block00_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block00_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block00_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block00_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block01_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block01_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block01_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block01_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block01_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block02_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block02_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block02_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block02_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block02_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block03_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block03_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block03_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block03_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block03_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block04_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block04_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block04_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block04_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block04_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block05_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block05_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block05_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block05_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block05_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block06_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block06_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block06_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block06_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block06_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block07_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block07_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block07_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block07_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block07_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block08_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block08_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block08_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block08_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block08_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block09_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block09_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block09_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block09_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block09_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block10_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block10_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block10_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block10_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block10_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block10_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block10_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block10_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block11_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block11_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block11_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block11_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block11_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block11_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block11_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block12_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block12_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block12_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block12_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block12_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block12_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block12_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block12_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block13_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block13_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block13_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block13_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block13_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block13_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block13_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block14_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block14_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block14_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block14_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block14_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block14_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block14_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block14_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block15_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block15_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block15_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block15_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block15_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block15_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block15_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block16_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block16_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block16_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block16_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block16_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block16_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block16_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block16_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block17_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block17_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block17_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block17_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block17_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block17_Datum03_Byte00_Animated * _Unigram_Letter_Grid_Data_Block17_Datum04_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block18_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block18_Datum00_Byte00_Animated * _Unigram_Letter_Grid_Data_Block18_Datum01_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block18_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block18_Datum02_Byte00_Animated * _Unigram_Letter_Grid_Data_Block18_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block18_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block18_Datum04_Byte00_Animated * _Unigram_Letter_Grid_Data_Block19_Datum00_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block19_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block19_Datum01_Byte00_Animated * _Unigram_Letter_Grid_Data_Block19_Datum02_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block19_Datum03_Byte00_Animated + - _Unigram_Letter_Grid_Data_Block19_Datum04_Byte00_Animated; + _Unigram_Letter_Grid_Data_Block19_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block19_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block20_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block20_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block20_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block20_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block20_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block21_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block21_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block21_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block21_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block21_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block22_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block22_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block22_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block22_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block22_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block23_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block23_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block23_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block23_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block23_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block24_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block24_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block24_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block24_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block24_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block25_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block25_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block25_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block25_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block25_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block26_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block26_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block26_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block26_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block26_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block27_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block27_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block27_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block27_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block27_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block28_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block28_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block28_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block28_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block28_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block29_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block29_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block29_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block29_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block29_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block30_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block30_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block30_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block30_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block30_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block31_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block31_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block31_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block31_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block31_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block32_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block32_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block32_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block32_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block32_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block33_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block33_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block33_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block33_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block33_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block34_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block34_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block34_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block34_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block34_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block35_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block35_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block35_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block35_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block35_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block36_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block36_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block36_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block36_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block36_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block37_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block37_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block37_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block37_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block37_Datum04_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block38_Datum00_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block38_Datum01_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block38_Datum02_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block38_Datum03_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block38_Datum04_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block39_Datum00_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block39_Datum01_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block39_Datum02_Byte00_Animated + + _Unigram_Letter_Grid_Data_Block39_Datum03_Byte00_Animated * + _Unigram_Letter_Grid_Data_Block39_Datum04_Byte00_Animated; #endif // ULG_D0 #if defined(ULG_D1) a += - _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block00_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block00_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block00_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block00_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block00_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block01_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block01_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block01_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block01_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block01_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block01_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block02_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block02_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block02_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block02_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block02_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block02_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block03_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block03_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block03_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block03_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block03_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block03_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block04_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block04_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block04_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block04_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block04_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block04_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block05_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block05_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block05_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block05_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block05_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block05_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block06_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block06_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block06_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block06_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block06_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block06_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block07_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block07_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block07_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block07_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block07_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block07_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block08_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block08_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block08_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block08_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block08_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block08_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block09_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block09_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block09_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block09_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block09_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block09_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block10_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block10_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block10_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block10_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block10_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block10_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block10_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block10_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block11_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block11_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block11_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block11_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block11_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block11_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block11_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block12_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block12_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block12_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block12_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block12_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block12_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block12_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block12_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block13_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block13_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block13_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block13_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block13_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block13_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block13_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block14_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block14_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block14_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block14_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block14_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block14_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block14_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block14_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block15_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block15_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block15_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block15_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block15_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block15_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block15_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block16_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block16_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block16_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block16_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block16_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block16_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block16_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block16_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block17_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block17_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block17_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block17_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block17_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block17_Datum03_Byte01_Animated * _Unigram_Letter_Grid_Data_Block17_Datum04_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block18_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block18_Datum00_Byte01_Animated * _Unigram_Letter_Grid_Data_Block18_Datum01_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block18_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block18_Datum02_Byte01_Animated * _Unigram_Letter_Grid_Data_Block18_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block18_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block18_Datum04_Byte01_Animated * _Unigram_Letter_Grid_Data_Block19_Datum00_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block19_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block19_Datum01_Byte01_Animated * _Unigram_Letter_Grid_Data_Block19_Datum02_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block19_Datum03_Byte01_Animated + - _Unigram_Letter_Grid_Data_Block19_Datum04_Byte01_Animated; + _Unigram_Letter_Grid_Data_Block19_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block19_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block20_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block20_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block20_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block20_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block20_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block21_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block21_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block21_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block21_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block21_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block22_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block22_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block22_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block22_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block22_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block23_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block23_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block23_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block23_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block23_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block24_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block24_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block24_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block24_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block24_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block25_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block25_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block25_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block25_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block25_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block26_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block26_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block26_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block26_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block26_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block27_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block27_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block27_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block27_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block27_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block28_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block28_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block28_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block28_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block28_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block29_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block29_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block29_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block29_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block29_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block30_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block30_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block30_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block30_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block30_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block31_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block31_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block31_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block31_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block31_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block32_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block32_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block32_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block32_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block32_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block33_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block33_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block33_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block33_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block33_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block34_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block34_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block34_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block34_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block34_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block35_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block35_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block35_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block35_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block35_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block36_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block36_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block36_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block36_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block36_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block37_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block37_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block37_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block37_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block37_Datum04_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block38_Datum00_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block38_Datum01_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block38_Datum02_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block38_Datum03_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block38_Datum04_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block39_Datum00_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block39_Datum01_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block39_Datum02_Byte01_Animated + + _Unigram_Letter_Grid_Data_Block39_Datum03_Byte01_Animated * + _Unigram_Letter_Grid_Data_Block39_Datum04_Byte01_Animated; #endif // ULG_D1 } } @@ -539,10 +1005,10 @@ void PreventCbufferElision(v2f i, inout float a) { #if defined(ULG_D0) && defined(ULG_D1) void GetBlock(uint which_block, out uint data[ULG_BLOCK_WIDTH]) { [loop] - for (uint i = 0; i < ULG_BLOCK_WIDTH; i++) { - data[i] = ((uint) _Unigram_Letter_Data_Byte00[which_block * ULG_BLOCK_WIDTH + i]); - data[i] |= ((uint) _Unigram_Letter_Data_Byte01[which_block * ULG_BLOCK_WIDTH + i]) << 8; - } + for (uint i = 0; i < ULG_BLOCK_WIDTH; i++) { + data[i] = ((uint) floor(_Unigram_Letter_Data_Byte00[which_block * ULG_BLOCK_WIDTH + i]+FUDGE_AMOUNT)); + data[i] |= ((uint) floor(_Unigram_Letter_Data_Byte01[which_block * ULG_BLOCK_WIDTH + i]+FUDGE_AMOUNT)) << 8; + } } #endif @@ -552,11 +1018,11 @@ void GetBlock(uint which_block, out uint data[ULG_BLOCK_WIDTH]) { void GetTokens(uint screen_ptr, out uint block_ptr, out uint tokens[ULG_BLOCK_WIDTH]) { - block_ptr = floor(_Unigram_Letter_Visual_Pointers[0]); + block_ptr = floor(_Unigram_Letter_Visual_Pointers[0]+FUDGE_AMOUNT); uint which_block = 0; [loop] for (uint i = 1; i < ULG_NUM_BLOCKS; i++) { - uint next_ptr = floor(_Unigram_Letter_Visual_Pointers[i]); + uint next_ptr = floor(_Unigram_Letter_Visual_Pointers[i]+FUDGE_AMOUNT); if (block_ptr < next_ptr) { // Case 1: visual pointers are increasing if (screen_ptr >= block_ptr && screen_ptr < next_ptr) { @@ -680,7 +1146,7 @@ struct UnigramLetterGridOutput { float3 emission; }; -UnigramLetterGridOutput UnigramLetterGrid(v2f i) { +UnigramLetterGridOutput UnigramLetterGrid(v2f i, bool facing) { UnigramLetterGridOutput output; int2 cell_pos; @@ -689,7 +1155,9 @@ UnigramLetterGridOutput UnigramLetterGrid(v2f i) { float2 cell_uv; // uv within each letter cell float4 scoff = _Unigram_Letter_Grid_UV_Scale_Offset; - float2 uv = ((i.uv01.xy - 0.5) - scoff.zw) * scoff.xy + 0.5; + float2 uv = i.uv01.xy; + uv.x = facing ? uv.x : 1.0 - uv.x; + uv = ((uv - 0.5) - scoff.zw) * scoff.xy + 0.5; bool in_box = getBoxLoc(uv, 0, 1, grid_res, _Unigram_Letter_Grid_Padding, cell_pos, cell_uv); cell_pos.y = (grid_res.y - cell_pos.y) - 1; -- cgit v1.2.3