summaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2025-05-15 15:25:18 -0600
committerGitHub <noreply@github.com>2025-05-15 15:25:18 -0600
commit7cc9894aa12175f10ad91174cff41ef1701df166 (patch)
tree8a24f90b69a06ed36d5aa8e53a003ae4f0f8aaa6 /assets
parente7415ec072ee1cdc99a49db658062d4de0b3301c (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.hlsl6
-rw-r--r--assets/shaders/metal/default.shader.metal15
-rw-r--r--assets/shaders/opengl/default.shader.fs31
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