Texture2D __srgbV__NV__DepthInputTex : register(t3); SamplerState __s0 : register(s0); #line 30 static const __sampler2D V__NV__ColorInput = { __V__NV__ColorInputTex, __s0 }; #line 31 static const __sampler2D V__NV__DepthInput = { __V__NV__DepthInputTex, __s0 }; #line 39 Texture2D __V__NV__ColorBaseInputTex : register(t4); Texture2D __srgbV__NV__ColorBaseInputTex : register(t5); #line 40 static const __sampler2D V__NV__ColorBaseInput = { __V__NV__ColorBaseInputTex, __s0 }; #line 71 float F__NV__GetLuma( #line 71 in float3 color) { #line 74 float _19 = dot(float3(2.98999995e-01, 5.87000012e-01, 1.14000000e-01), color); return _19; } #line 78 struct S__VSOut { float4 pos : SV_POSITION; float2 uv : TEXCOORD0; }; #line 84 S__VSOut F__VSMain( #line 84 in uint vid : SV_VERTEXID) { #line 86 S__VSOut o = (S__VSOut)0; #line 87 bool _27 = vid == 2; #line 87 float _30 = _27 ? 2.00000000e+00 : 0.00000000e+00; #line 87 o.uv[0] = _30; #line 88 bool _32 = vid == 1; #line 88 float _35 = _32 ? 2.00000000e+00 : 0.00000000e+00; #line 88 o.uv[1] = _35; #line 89 float2 _38 = o.uv * float2(2.00000000e+00, -2.00000000e+00); #line 89 float2 _40 = _38 + float2(-1.00000000e+00, 1.00000000e+00); #line 89 float4 _45 = float4(_40.x, _40.y, 0.00000000e+00, 1.00000000e+00); #line 89 o.pos = _45; return o; } #line 93 void F__VSMainOut( #line 93 in uint vid : SV_VERTEXID, #line 93 out float4 position : SV_POSITION, #line 93 out float2 texcoord : TEXCOORD0) { #line 95 uint _51; #line 95 _51 = vid; #line 95 S__VSOut _52 = F__VSMain(_51); #line 95 S__VSOut o_53 = _52; #line 96 position = o_53.pos; #line 97 texcoord = o_53.uv; return; } #line 75 "Splitscreen.fx" float2 F__ConvertToSuperResolution( #line 75 in float2 uv) { #line 77 float2 _63 = lerp(tileUV.xy, tileUV.zw, uv); return _63; } #line 80 float4 F__sampleTexture_Border( #line 80 in __sampler2D sourceSampler, #line 80 in float2 texCoords, #line 80 in float4 borderColor) { #line 82 bool _74 = texCoords.x < 0.00000000e+00; #line 82 bool _77 = texCoords.x > 1.00000000e+00; #line 82 bool _78 = _74 || _77; #line 82 bool _81 = texCoords.y < 0.00000000e+00; #line 82 bool _82 = _78 || _81; #line 82 bool _85 = texCoords.y > 1.00000000e+00; #line 82 bool _86 = _82 || _85; #line 82 if (_86) { return borderColor; } else { #line 88 float4 _87 = sourceSampler.t.Sample(sourceSampler.s, texCoords); return _87; } } #line 92 float2x2 F__GetRotationMatrix( #line 92 in float degreesRotation) { #line 94 float2 SinCos = float2(0.00000000e+00, 0.00000000e+00); #line 94 float _93 = radians(degreesRotation); #line 94 float _94; #line 94 float _95; #line 94 _94 = sin(_93), _95 = cos(_93); #line 94 SinCos[0] = _94; #line 94 SinCos[1] = _95; #line 95 float _98 = -SinCos.x; #line 95 float2x2 _102 = float2x2(SinCos.y, _98, SinCos.x, SinCos.y); return _102; } #line 98 float2 F__PanAndScaleUV( #line 98 in float2 uv, #line 98 in float2 pan, #line 98 in float scale, #line 98 in float2 center, #line 98 in float2 imageOffset) { #line 100 float2 _110 = uv + pan; #line 100 float2 uvb = _110; #line 101 float2 _112 = uvb - center; #line 101 uvb = _112; #line 102 float2 _114 = uvb / scale.xx; #line 102 uvb = _114; #line 103 float2 _115 = uvb + center; #line 103 uvb = _115; #line 104 float2 _117 = imageOffset / scale.xx; #line 104 float2 _118 = uvb + _117; #line 104 uvb = _118; return uvb; } #line 108 float2 F__GetImageOffset( #line 108 in float2x2 imageCenterRotationMat, #line 108 in float splitPositionOffset) { #line 110 float2 imageOffset_124 = float2(0.00000000e+00, 0.00000000e+00); #line 111 if (g_sideBySideToggle) { #line 113 float _129 = splitPositionOffset * 5.00000000e-01; #line 113 imageOffset_124[0] = _129; } #line 115 float2 _130 = mul(imageOffset_124, imageCenterRotationMat); #line 115 imageOffset_124 = _130; #line 116 float _132 = -imageOffset_124.y; #line 116 imageOffset_124[1] = _132; return imageOffset_124; } #line 120 void F__PSMain( #line 120 in S__VSOut i, #line 120 out float4 color : SV_TARGET) { #line 157 float2 uv_138 = i.uv; #line 158 float4 _140 = V__NV__ColorInput.t.Sample(V__NV__ColorInput.s, i.uv); #line 158 color = _140; #line 160 bool _145 = captureState != 4; #line 161 bool _147 = captureState != 5; #line 160 bool _148 = _145 && _147; #line 162 bool _150 = captureState == 3; #line 162 bool _152 = g_sideBySideToggle == true; #line 162 bool _153 = _150 && _152; #line 162 bool _154 = !_153; #line 160 bool _155 = _148 && _154; #line 160 if (_155) { #line 164 float zoom = g_imageScaleSlider; #line 165 bool _161 = captureState == 3; #line 165 if (_161) { #line 167 zoom = 1.00000000e+00; } #line 170 float splitPositionScalar = 1.00000000e+00; #line 171 if (g_sideBySideToggle) { #line 171 splitPositionScalar = 0.00000000e+00; } #line 173 float _169 = g_splitPositionSlider * splitPositionScalar; #line 173 float _171 = 1.00000000e+00 - splitPositionScalar; #line 173 float _173 = 5.00000000e-01 * _171; #line 173 float _174 = _169 + _173; #line 173 float splitPosition = _174; #line 175 float _177 = g_rotationSlider + 5.00000000e-01; #line 175 float _178 = floor(_177); #line 175 float _179; #line 175 _179 = _178; #line 175 float2x2 _180 = F__GetRotationMatrix(_179); #line 175 float2x2 tsMat = _180; #line 177 float2 _182; #line 177 _182 = uv_138; #line 177 float2 _183 = F__ConvertToSuperResolution(_182); #line 177 uv_138 = _183; #line 179 float _186 = uv_138.x - 5.00000000e-01; #line 179 uv_138[0] = _186; #line 180 float _189 = uv_138.y - 5.00000000e-01; #line 180 uv_138[1] = _189; #line 181 float _192 = 1.00000000e+00 / _1.y; #line 181 float _194 = ((float)((int)_1.x)) * _192; #line 181 float _196 = uv_138.y / _194; #line 181 uv_138[1] = _196; #line 182 float2 _197 = mul(uv_138, tsMat); #line 182 uv_138 = _197; #line 183 float _200 = 1.00000000e+00 / _1.y; #line 183 float _202 = ((float)((int)_1.x)) * _200; #line 183 float _204 = uv_138.y * _202; #line 183 uv_138[1] = _204; #line 184 float _207 = uv_138.x + 5.00000000e-01; #line 184 uv_138[0] = _207; #line 185 float _210 = uv_138.y + 5.00000000e-01; #line 185 uv_138[1] = _210; #line 190 float4 hueColor = float4(0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00); #line 191 bool _217 = g_hueSlider < 9.99999978e-03; #line 191 if (_217) { #line 193 hueColor = float4(0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00); } else { #line 195 bool _223 = g_hueSlider > 9.90000010e-01; #line 195 if (_223) { #line 197 hueColor = float4(1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00); } else { #line 201 float _226 = g_hueSlider + 3.33299994e-01; #line 201 float _227 = frac(_226); #line 201 float hue = _227; #line 202 float _230 = hue * 6.00000000e+00; #line 202 float _232 = _230 - 3.00000000e+00; #line 202 float _233 = abs(_232); #line 202 float _235 = _233 - 1.00000000e+00; #line 202 float _237 = hue * 6.00000000e+00; #line 202 float _239 = _237 - 2.00000000e+00; #line 202 float _240 = abs(_239); #line 202 float _242 = 2.00000000e+00 - _240; #line 202 float _244 = hue * 6.00000000e+00; #line 202 float _246 = _244 - 4.00000000e+00; #line 202 float _247 = abs(_246); #line 202 float _249 = 2.00000000e+00 - _247; #line 202 float4 _251 = float4(_235, _242, _249, 1.00000000e+00); #line 202 float4 _252 = saturate(_251); #line 202 hueColor = _252; } } #line 210 float imageCenterRotation = g_rotationSlider; #line 212 float _255 = imageCenterRotation / 9.00000000e+01; #line 212 float _257 = _255 + 5.00000000e-01; #line 212 float _258 = floor(_257); #line 212 float _260 = _258 * 9.00000000e+01; #line 212 float closestMultiple = _260; #line 213 float _262 = imageCenterRotation - closestMultiple; #line 213 float _264 = _262 / 9.00000000e+01; #line 213 float fractionAwayFromMultiple = _264; #line 214 float _267 = fractionAwayFromMultiple / 5.00000000e-01; #line 214 float scaleFactor = _267; #line 215 float _270 = pow(scaleFactor, 5.00000000e+00); #line 215 scaleFactor = _270; #line 216 float _272 = pow(scaleFactor, 5.00000000e+00); #line 216 scaleFactor = _272; #line 217 float _274 = scaleFactor * 5.00000000e-01; #line 217 float _276 = _274 * 9.00000000e+01; #line 217 float _277 = closestMultiple + _276; #line 217 imageCenterRotation = _277; #line 219 float _279 = imageCenterRotation + 5.00000000e-01; #line 219 float _280 = floor(_279); #line 219 float _281; #line 219 _281 = _280; #line 219 float2x2 _282 = F__GetRotationMatrix(_281); #line 219 float2x2 imageCenterRotationMat_283 = _282; #line 221 float _285 = 1.00000000e+00 - splitPosition; #line 221 float2x2 _286; #line 221 float _287; #line 221 _286 = imageCenterRotationMat_283; #line 221 _287 = _285; #line 221 float2 _288 = F__GetImageOffset(_286, _287); #line 221 float2 rawImageOffset = _288; #line 222 float _290 = -splitPosition; #line 222 float2x2 _291; #line 222 float _292; #line 222 _291 = imageCenterRotationMat_283; #line 222 _292 = _290; #line 222 float2 _293 = F__GetImageOffset(_291, _292); #line 222 float2 processedImageOffset = _293; #line 224 float2 panOffset = float2(0.00000000e+00, 0.00000000e+00); #line 225 if (g_sideBySideToggle) { #line 227 float _301 = 5.00000000e-01 - g_splitPositionSlider; #line 227 float _303 = _301 / 2.88000011e+00; #line 227 float2 _305 = float2(_303, 0.00000000e+00); #line 227 panOffset = _305; #line 228 float2 _306 = mul(panOffset, imageCenterRotationMat_283); #line 228 panOffset = _306; #line 229 float _308 = -panOffset.y; #line 229 panOffset[1] = _308; } #line 232 float2 _309; #line 232 float2 _310; #line 232 float _311; #line 232 float2 _312; #line 232 float2 _313; #line 232 _309 = i.uv; #line 232 _310 = panOffset; #line 232 _311 = zoom; #line 232 _312 = float2(5.00000000e-01, 5.00000000e-01); #line 232 _313 = rawImageOffset; #line 232 float2 _316 = F__PanAndScaleUV(_309, _310, _311, _312, _313); #line 232 float2 rawImageUV = _316; #line 233 float2 _318; #line 233 float2 _319; #line 233 float _320; #line 233 float2 _321; #line 233 float2 _322; #line 233 _318 = i.uv; #line 233 _319 = panOffset; #line 233 _320 = zoom; #line 233 _321 = float2(5.00000000e-01, 5.00000000e-01); #line 233 _322 = processedImageOffset; #line 233 float2 _325 = F__PanAndScaleUV(_318, _319, _320, _321, _322); #line 233 float2 processedImageUV = _325; #line 235 float2 _327; #line 235 float4 _328; #line 235 _327 = rawImageUV; #line 235 _328 = hueColor; #line 235 float4 _329 = F__sampleTexture_Border(V__NV__ColorBaseInput, _327, _328); #line 235 float4 rawColor = _329; #line 236 float2 _331; #line 236 float4 _332; #line 236 _331 = processedImageUV; #line 236 _332 = hueColor; #line 236 float4 _333 = F__sampleTexture_Border(V__NV__ColorInput, _331, _332); #line 236 float4 processedColor = _333; #line 242 float _336 = g_widthSlider * 9.99999978e-03; #line 242 float dividerWidth = _336; #line 243 if (g_gradientToggle) { #line 245 if (g_sideBySideToggle) { #line 247 float _345 = dividerWidth + 7.00000022e-03; #line 247 dividerWidth = _345; } else { #line 251 float _347 = dividerWidth * 5.10000000e+01; #line 251 float _349 = _347 + 7.00000022e-03; #line 251 dividerWidth = _349; } } #line 259 float _350 = dividerWidth / zoom; #line 259 float oobDividerWidth = _350; #line 260 if (g_gradientToggle) { #line 260 oobDividerWidth = 0.00000000e+00; } #line 261 float _356 = -oobDividerWidth; #line 261 bool _358 = rawImageUV.x < _356; #line 261 float _360 = 1.00000000e+00 + oobDividerWidth; #line 261 bool _362 = rawImageUV.x > _360; #line 261 bool _363 = _358 || _362; #line 261 float _364 = -oobDividerWidth; #line 261 float _367 = 1.00000000e+00 / _1.y; #line 261 float _369 = ((float)((int)_1.x)) * _367; #line 261 float _370 = _364 * _369; #line 261 bool _372 = rawImageUV.y < _370; #line 261 bool _373 = _363 || _372; #line 261 float _376 = 1.00000000e+00 / _1.y; #line 261 float _378 = ((float)((int)_1.x)) * _376; #line 261 float _379 = oobDividerWidth * _378; #line 261 float _381 = 1.00000000e+00 + _379; #line 261 bool _383 = rawImageUV.y > _381; #line 261 bool _384 = _373 || _383; #line 261 bool rawOutOfImage = _384; #line 262 float _386 = -oobDividerWidth; #line 262 bool _388 = processedImageUV.x < _386; #line 262 float _390 = 1.00000000e+00 + oobDividerWidth; #line 262 bool _392 = processedImageUV.x > _390; #line 262 bool _393 = _388 || _392; #line 262 float _394 = -oobDividerWidth; #line 262 float _397 = 1.00000000e+00 / _1.y; #line 262 float _399 = ((float)((int)_1.x)) * _397; #line 262 float _400 = _394 * _399; #line 262 bool _402 = processedImageUV.y < _400; #line 262 bool _403 = _393 || _402; #line 262 float _406 = 1.00000000e+00 / _1.y; #line 262 float _408 = ((float)((int)_1.x)) * _406; #line 262 float _409 = oobDividerWidth * _408; #line 262 float _411 = 1.00000000e+00 + _409; #line 262 bool _413 = processedImageUV.y > _411; #line 262 bool _414 = _403 || _413; #line 262 bool processedOutOfImage = _414; #line 263 if (rawOutOfImage) { #line 263 rawColor = processedColor; } #line 264 if (processedOutOfImage) { #line 264 processedColor = rawColor; } #line 266 bool _426 = dividerWidth > 0.00000000e+00; #line 266 float _428 = uv_138.x - splitPosition; #line 266 float _429 = abs(_428); #line 266 float _431 = dividerWidth / 2.00000000e+00; #line 266 bool _432 = _429 < _431; #line 266 bool _433 = _426 && _432; #line 266 bool _434 = !rawOutOfImage; #line 266 bool _435 = _433 && _434; #line 266 bool _436 = !processedOutOfImage; #line 266 bool _437 = _435 && _436; #line 266 if (_437) { #line 268 float _439 = dividerWidth / 2.00000000e+00; #line 268 float _440 = splitPosition - _439; #line 268 float leftCoord = _440; #line 269 float _443 = uv_138.x - leftCoord; #line 269 float distFromLeftCoord = _443; #line 270 float _445 = distFromLeftCoord / dividerWidth; #line 270 float fractionalDistFromLeft = _445; #line 272 if (g_gradientToggle) { #line 274 float4 _451 = lerp(rawColor, processedColor, fractionalDistFromLeft.xxxx); #line 274 color = _451; } else { #line 278 color = hueColor; } } else { #line 281 bool _456 = uv_138.x < splitPosition; #line 281 if (_456) { #line 283 color = rawColor; } else { #line 287 color = processedColor; } } } else { #line 292 float4 _458 = V__NV__ColorInput.t.Sample(V__NV__ColorInput.s, i.uv); #line 292 color = _458; } return; }