summary refs log tree commit diff stats
path: root/res/maps
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-09 11:19:22 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-09 11:19:22 -0500
commitc85f91cc5e0f9e94717fbc36ebef3b2637986121 (patch)
tree0bd1c5555d6395c5fc77540202296c93fc0b98f0 /res/maps
parent3f6a071f6728b4d08553220d4174018a4080b176 (diff)
downloadtanetane-c85f91cc5e0f9e94717fbc36ebef3b2637986121.tar.gz
tanetane-c85f91cc5e0f9e94717fbc36ebef3b2637986121.tar.bz2
tanetane-c85f91cc5e0f9e94717fbc36ebef3b2637986121.zip
Added newlines that don't require A presses
\n in a text message just indicates a newline. \n\f is a newline with an A press.
Diffstat (limited to 'res/maps')
0 files changed, 0 insertions, 0 deletions
nt.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#version 330 core

in vec2 UV;

out vec4 color;

uniform sampler2D curFrameSampler;
uniform sampler2D NTSCArtifactSampler;
uniform sampler2D prevFrameSampler;

const float Tuning_Sharp = 0.25;
const vec4 Tuning_Persistence = vec4(1.0) * 0.5;
const float Tuning_Bleed = 0.5;
uniform float Tuning_NTSC; // 0.0
uniform float NTSCLerp;

const vec2 RcpScrWidth = vec2(1.0f / 320.f, 0.0f);
const vec2 RcpScrHeight = vec2(0.0f, 1.0f / 200.0f);

float Brightness(vec4 InVal)
{
  return dot(InVal, vec4(0.299, 0.587, 0.114, 0.0));
}

const float SharpWeight[3] = float[3](1.0, -0.3162277, 0.1);

void main()
{
  vec4 NTSCArtifact1 = texture(NTSCArtifactSampler, UV);
  vec4 NTSCArtifact2 = texture(NTSCArtifactSampler, UV + RcpScrHeight);
  vec4 NTSCArtifact = mix(NTSCArtifact1, NTSCArtifact2, NTSCLerp);
  vec4 TunedNTSC = NTSCArtifact * Tuning_NTSC;
  
  vec2 LeftUV = UV - RcpScrWidth;
  vec2 RightUV = UV + RcpScrWidth;
  
  vec4 Cur_Left = texture(curFrameSampler, LeftUV);
  vec4 Cur_Local = texture(curFrameSampler, UV);
  vec4 Cur_Right = texture(curFrameSampler, RightUV);
  
  vec4 Prev_Left = texture(prevFrameSampler, LeftUV);
  vec4 Prev_Local = texture(prevFrameSampler, UV);
  vec4 Prev_Right = texture(prevFrameSampler, RightUV);
  
  Cur_Local = clamp(Cur_Local + (((Cur_Left - Cur_Local) + (Cur_Right - Cur_Local)) * TunedNTSC), vec4(0,0,0,0), vec4(1,1,1,1));
  
  float curBrt = Brightness(Cur_Local);
  float offset = 0;
  
  for (int i=0; i<3; ++i)
  {
    vec2 StepSize = (RcpScrWidth * float(i+1));
    vec4 neighborleft = texture(curFrameSampler, UV - StepSize);
    vec4 neighborright = texture(curFrameSampler, UV + StepSize);
    
    float NBrtL = Brightness(neighborleft);
    float NBrtR = Brightness(neighborright);
    offset += ((curBrt - NBrtL) + (curBrt - NBrtR)) * SharpWeight[i];
  }
  
  Cur_Local = clamp(Cur_Local + (offset * Tuning_Sharp * mix(vec4(1,1,1,1), NTSCArtifact, Tuning_NTSC)), vec4(0,0,0,0), vec4(1,1,1,1));
  Cur_Local = clamp(max(Cur_Local, Tuning_Persistence * (1.0 / (1.0 + (2.0 * Tuning_Bleed))) * (Prev_Local + ((Prev_Left + Prev_Right) * Tuning_Bleed))), vec4(0,0,0,0), vec4(1,1,1,1));
  
  color = vec4(Cur_Local.rgb, 1.0);
}