mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-01-11 19:48:54 +01:00
internal/graphicsdriver/opengl, metal, directx: refactoring: clean up the built-in shaders
This commit is contained in:
parent
9d06875243
commit
a10f3d1dad
@ -132,7 +132,7 @@ PSInput VSMain(float2 position : POSITION, float2 tex : TEXCOORD, float4 color :
|
|||||||
Texture2D tex : register(t0);
|
Texture2D tex : register(t0);
|
||||||
SamplerState samp : register(s0);
|
SamplerState samp : register(s0);
|
||||||
|
|
||||||
float euclideanMod(float x, float y) {
|
float2 euclideanMod(float2 x, float2 y) {
|
||||||
// Assume that y is always positive.
|
// Assume that y is always positive.
|
||||||
return x - y * floor(x/y);
|
return x - y * floor(x/y);
|
||||||
}
|
}
|
||||||
@ -145,7 +145,7 @@ float2 adjustTexelByAddress(float2 p, float4 source_region) {
|
|||||||
#if defined(ADDRESS_REPEAT)
|
#if defined(ADDRESS_REPEAT)
|
||||||
float2 o = float2(source_region[0], source_region[1]);
|
float2 o = float2(source_region[0], source_region[1]);
|
||||||
float2 size = float2(source_region[2] - source_region[0], source_region[3] - source_region[1]);
|
float2 size = float2(source_region[2] - source_region[0], source_region[3] - source_region[1]);
|
||||||
return float2(euclideanMod((p.x - o.x), size.x) + o.x, euclideanMod((p.y - o.y), size.y) + o.y);
|
return euclideanMod((p - o), size) + o;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ADDRESS_UNSAFE)
|
#if defined(ADDRESS_UNSAFE)
|
||||||
|
@ -77,7 +77,7 @@ vertex VertexOut VertexShader(
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
float EuclideanMod(float x, float y) {
|
float2 EuclideanMod(float2 x, float2 y) {
|
||||||
// Assume that y is always positive.
|
// Assume that y is always positive.
|
||||||
return x - y * floor(x/y);
|
return x - y * floor(x/y);
|
||||||
}
|
}
|
||||||
@ -94,7 +94,7 @@ template<>
|
|||||||
inline float2 AdjustTexelByAddress<ADDRESS_REPEAT>(float2 p, float4 source_region) {
|
inline float2 AdjustTexelByAddress<ADDRESS_REPEAT>(float2 p, float4 source_region) {
|
||||||
float2 o = float2(source_region[0], source_region[1]);
|
float2 o = float2(source_region[0], source_region[1]);
|
||||||
float2 size = float2(source_region[2] - source_region[0], source_region[3] - source_region[1]);
|
float2 size = float2(source_region[2] - source_region[0], source_region[3] - source_region[1]);
|
||||||
return float2(EuclideanMod((p.x - o.x), size.x) + o.x, EuclideanMod((p.y - o.y), size.y) + o.y);
|
return EuclideanMod((p - o), size) + o;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<uint8_t filter, uint8_t address>
|
template<uint8_t filter, uint8_t address>
|
||||||
|
@ -160,7 +160,7 @@ highp vec2 adjustTexelByAddress(highp vec2 p, highp vec4 source_region) {
|
|||||||
#if defined(ADDRESS_REPEAT)
|
#if defined(ADDRESS_REPEAT)
|
||||||
highp vec2 o = vec2(source_region[0], source_region[1]);
|
highp vec2 o = vec2(source_region[0], source_region[1]);
|
||||||
highp vec2 size = vec2(source_region[2] - source_region[0], source_region[3] - source_region[1]);
|
highp vec2 size = vec2(source_region[2] - source_region[0], source_region[3] - source_region[1]);
|
||||||
return vec2(mod((p.x - o.x), size.x) + o.x, mod((p.y - o.y), size.y) + o.y);
|
return mod((p - o), size) + o;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ADDRESS_UNSAFE)
|
#if defined(ADDRESS_UNSAFE)
|
||||||
|
Loading…
Reference in New Issue
Block a user