diff options
| author | MegaMech <MegaMech@users.noreply.github.com> | 2025-05-15 15:25:18 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-15 15:25:18 -0600 |
| commit | 7cc9894aa12175f10ad91174cff41ef1701df166 (patch) | |
| tree | 8a24f90b69a06ed36d5aa8e53a003ae4f0f8aaa6 /assets | |
| parent | e7415ec072ee1cdc99a49db658062d4de0b3301c (diff) | |
Fix compile (#199)
* Fixes made so far
* Fixes up until linking
* Moved GetInterpreter() to a single function under the Engine.h
* Updated shader files included with assets, added exception for Linux for including SDL2_net
* Removed osSetTime stub(for now)
* Adjustments to get it to compile + run
* Decoupled GetInterpreter() from the GameEngine Class, corrected a invalid include in SpaghettiGui.cpp
---------
Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com>
Diffstat (limited to 'assets')
| -rw-r--r-- | assets/shaders/directx/default.shader.hlsl | 6 | ||||
| -rw-r--r-- | assets/shaders/metal/default.shader.metal | 15 | ||||
| -rw-r--r-- | assets/shaders/opengl/default.shader.fs | 31 |
3 files changed, 21 insertions, 31 deletions
diff --git a/assets/shaders/directx/default.shader.hlsl b/assets/shaders/directx/default.shader.hlsl index f36c2daed..980becb8c 100644 --- a/assets/shaders/directx/default.shader.hlsl +++ b/assets/shaders/directx/default.shader.hlsl @@ -186,7 +186,7 @@ float4 PSMain(PSInput input, float4 screenSpace : SV_Position) : SV_TARGET { float2 tc@{i} = input.uv@{i}; @{s = o_clamp[i][0]} @{t = o_clamp[i][1]} - @if(s && t) + @if(s || t) int2 texSize@{i}; g_texture@{i}.GetDimensions(texSize@{i}.x, texSize@{i}.y); @if(s && t) @@ -224,7 +224,7 @@ float4 PSMain(PSInput input, float4 screenSpace : SV_Position) : SV_TARGET { @else float4 blendVal@{i} = float4(0, 0, 0, 0); @end - texval@{i} = lerp(texVal@{i}, blendVal@{i}, g_textureMask@{i}.Sample(g_sampler@{i}, tc@{i}).a); + texVal@{i} = lerp(texVal@{i}, blendVal@{i}, g_textureMask@{i}.Sample(g_sampler@{i}, tc@{i}).a); @end } @else @@ -329,4 +329,4 @@ float4 PSMain(PSInput input, float4 screenSpace : SV_Position) : SV_TARGET { return float4(texel, 1.0); @end @end -}
\ No newline at end of file +} diff --git a/assets/shaders/metal/default.shader.metal b/assets/shaders/metal/default.shader.metal index 63d89fd39..a771ba10c 100644 --- a/assets/shaders/metal/default.shader.metal +++ b/assets/shaders/metal/default.shader.metal @@ -147,17 +147,6 @@ float random(float3 value) { return fract(sin(random) * 143758.5453); } -float4 fromLinear(float4 linearRGB) { - float3 threshold = float3(0.0031308); - float3 gamma = float3(1.0 / 2.4); - float3 scale = float3(12.92); - float3 offset = float3(1.055); - float3 subtract = float3(0.055); - float3 higher = offset * fast::pow(linearRGB.xyz, gamma) - subtract; - float3 lower = linearRGB.xyz * scale; - return float4(select(higher, lower, linearRGB.xyz < threshold), linearRGB.w); -} - fragment float4 fragmentShader(ProjectedVertex in [[stage_in]], constant FrameUniforms &frameUniforms [[buffer(0)]] @if(o_textures[0]) , texture2d<float> uTex0 [[texture(0)]], sampler uTex0Smplr [[sampler(0)]] @@ -288,8 +277,8 @@ fragment float4 fragmentShader(ProjectedVertex in [[stage_in]], constant FrameUn @if(o_invisible) texel.w = 0.0; @end - return fromLinear(texel); + return texel; @else - return fromLinear(float4(texel, 1.0)); + return float4(texel, 1.0); @end }
\ No newline at end of file diff --git a/assets/shaders/opengl/default.shader.fs b/assets/shaders/opengl/default.shader.fs index b15e1598c..404caae62 100644 --- a/assets/shaders/opengl/default.shader.fs +++ b/assets/shaders/opengl/default.shader.fs @@ -44,6 +44,10 @@ out vec4 vOutColor; uniform int frame_count; uniform float noise_scale; +uniform int texture_width[2]; +uniform int texture_height[2]; +uniform int texture_filtering[2]; + #define TEX_OFFSET(off) @{texture}(tex, texCoord - off / texSize) #define WRAP(x, low, high) mod((x)-(low), (high)-(low)) + (low) @@ -59,7 +63,6 @@ vec4 fromLinear(vec4 linearRGB){ return vec4(mix(higher, lower, cutoff), linearRGB.a); } -@if(o_current_filter == FILTER_THREE_POINT) vec4 filter3point(in sampler2D tex, in vec2 texCoord, in vec2 texSize) { vec2 offset = fract(texCoord*texSize - vec2(0.5)); offset -= step(1.0, offset.x + offset.y); @@ -69,14 +72,16 @@ vec4 filter3point(in sampler2D tex, in vec2 texCoord, in vec2 texSize) { return c0 + abs(offset.x)*(c1-c0) + abs(offset.y)*(c2-c0); } -vec4 hookTexture2D(in sampler2D tex, in vec2 uv, in vec2 texSize) { - return filter3point(tex, uv, texSize); -} -@else -vec4 hookTexture2D(in sampler2D tex, in vec2 uv, in vec2 texSize) { +vec4 hookTexture2D(in int id, sampler2D tex, in vec2 uv, in vec2 texSize) { +@if(o_three_point_filtering) + if(texture_filtering[id] == @{FILTER_THREE_POINT}) { + return filter3point(tex, uv, texSize); + } +@end return @{texture}(tex, uv); } -@end + +#define TEX_SIZE(tex) vec2(texture_width[tex], texture_height[tex]) void main() { @for(i in 0..2) @@ -84,11 +89,7 @@ void main() { @{s = o_clamp[i][0]} @{t = o_clamp[i][1]} - @if(opengles) - vec2 texSize@{i} = vec2(textureSize(uTex@{i}, 0)); - @else - vec2 texSize@{i} = textureSize(uTex@{i}, 0); - @end + vec2 texSize@{i} = TEX_SIZE(@{i}); @if(!s && !t) vec2 vTexCoordAdj@{i} = vTexCoord@{i}; @@ -102,7 +103,7 @@ void main() { @end @end - vec4 texVal@{i} = hookTexture2D(uTex@{i}, vTexCoordAdj@{i}, texSize@{i}); + vec4 texVal@{i} = hookTexture2D(@{i}, uTex@{i}, vTexCoordAdj@{i}, texSize@{i}); @if(o_masks[i]) @if(opengles) @@ -111,10 +112,10 @@ void main() { vec2 maskSize@{i} = textureSize(uTexMask@{i}, 0); @end - vec4 maskVal@{i} = hookTexture2D(uTexMask@{i}, vTexCoordAdj@{i}, maskSize@{i}); + vec4 maskVal@{i} = hookTexture2D(@{i}, uTexMask@{i}, vTexCoordAdj@{i}, maskSize@{i}); @if(o_blend[i]) - vec4 blendVal@{i} = hookTexture2D(uTexBlend@{i}, vTexCoordAdj@{i}, texSize@{i}); + vec4 blendVal@{i} = hookTexture2D(@{i}, uTexBlend@{i}, vTexCoordAdj@{i}, texSize@{i}); @else vec4 blendVal@{i} = vec4(0, 0, 0, 0); @end |
