Some checks failed
Run ReCI Build Test / Explore-Gitea-Actions (push) Has been cancelled
during shader creation you can now also specify your attributes.
154 lines
4.9 KiB
GLSL
154 lines
4.9 KiB
GLSL
#version 120
|
|
|
|
#define J2D_DrawPoint 1
|
|
#define J2D_DrawPoints 2
|
|
#define J2D_DrawLine 3
|
|
#define J2D_DrawLines 4
|
|
#define J2D_DrawDottedLine 5
|
|
#define J2D_DrawDashedLine 6
|
|
#define J2D_DrawGradientLine 7
|
|
#define J2D_OutlineRect 8
|
|
#define J2D_OutlineRoundedRect 9
|
|
#define J2D_OutlineChamferRect 10
|
|
#define J2D_FillRect 11
|
|
#define J2D_FillGradientRect 12
|
|
#define J2D_FillRoundedRect 13
|
|
#define J2D_FillChamferRect 14
|
|
#define J2D_DrawRenderTarget 15
|
|
#define J2D_DrawPartialRenderTarget 16
|
|
#define J2D_DrawSprite 17
|
|
#define J2D_DrawAlphaMaskSprite 18
|
|
#define J2D_DrawPartialSprite 19
|
|
#define J2D_DrawMirrorSprite 20
|
|
#define J2D_OutlineCircle 21
|
|
#define J2D_FillCircle 22
|
|
#define J2D_OutlineTriangle 23
|
|
#define J2D_FillTriangle 24
|
|
#define J2D_FillGradientTriangle 25
|
|
#define J2D_DrawCubicBezierCurve 26
|
|
#define J2D_OutlinePolygon 27
|
|
#define J2D_DrawString 28
|
|
#define J2D_DrawArc 29
|
|
|
|
|
|
uniform int JGL_RENDERING_ROUTINE;
|
|
uniform bool JGL_INSTANCED_RENDERING;
|
|
|
|
// The number of texture units that have been set.
|
|
uniform int TEXTURE_UNIT_SET_COUNT;
|
|
|
|
// The color manually set with glColor4f, glColor4ubv etc.
|
|
varying vec4 v_color;
|
|
|
|
// Texture unit 0 - 7 (8 - 31 will come later).
|
|
uniform sampler2D GL_TEXTURE0;
|
|
uniform sampler2D GL_TEXTURE1;
|
|
uniform sampler2D GL_TEXTURE2;
|
|
uniform sampler2D GL_TEXTURE3;
|
|
uniform sampler2D GL_TEXTURE4;
|
|
uniform sampler2D GL_TEXTURE5;
|
|
uniform sampler2D GL_TEXTURE6;
|
|
uniform sampler2D GL_TEXTURE7;
|
|
|
|
// Texture coordinates.
|
|
varying vec2 GL_TEXTURE0_COORD;
|
|
varying vec2 GL_TEXTURE1_COORD;
|
|
varying vec2 GL_TEXTURE2_COORD;
|
|
varying vec2 GL_TEXTURE3_COORD;
|
|
varying vec2 GL_TEXTURE4_COORD;
|
|
varying vec2 GL_TEXTURE5_COORD;
|
|
varying vec2 GL_TEXTURE6_COORD;
|
|
varying vec2 GL_TEXTURE7_COORD;
|
|
|
|
void DrawColorOnly() {
|
|
gl_FragColor = v_color;
|
|
}
|
|
|
|
void SampleTextureUnits() {
|
|
if (JGL_RENDERING_ROUTINE == J2D_DrawString)
|
|
gl_FragColor = vec4(v_color.rgb, v_color.a * texture2D(GL_TEXTURE0, GL_TEXTURE0_COORD).a);
|
|
|
|
// Draw sprite, partial sprite, mirror sprite, render target, partial render target.
|
|
else if (TEXTURE_UNIT_SET_COUNT == 1)
|
|
gl_FragColor = v_color * texture2D(GL_TEXTURE0, GL_TEXTURE0_COORD);
|
|
|
|
// Draw alpha masked sprite.
|
|
else if (TEXTURE_UNIT_SET_COUNT == 2) {
|
|
vec4 color_texture = texture2D(GL_TEXTURE0, GL_TEXTURE0_COORD);
|
|
float alpha_mask = texture2D(GL_TEXTURE1, GL_TEXTURE1_COORD).a;
|
|
gl_FragColor = vec4(v_color.rgb * color_texture.rgb, v_color.a * alpha_mask);
|
|
}
|
|
|
|
}
|
|
|
|
void Default() {
|
|
if (TEXTURE_UNIT_SET_COUNT == 0) {
|
|
DrawColorOnly(); return;
|
|
}
|
|
SampleTextureUnits();
|
|
}
|
|
|
|
void main() {
|
|
/* If you want behavior per JGL draw function, Or for specific ones. The order here matters because some JGL functions call others.
|
|
if (JGL_RENDERING_ROUTINE == J2D_DrawRenderTarget)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawPartialRenderTarget)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawAlphaMaskSprite)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawMirrorSprite)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawSprite)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawPartialSprite)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawPartialSprite)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawString)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawPoint)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawPoints)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawCubicBezierCurve)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawLine)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawLines)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawDottedLine)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawDashedLine)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawGradientLine)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_OutlineRoundedRect)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_FillChamferRect)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_FillRoundedRect)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_FillGradientRect)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_OutlineRect)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_FillRect)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_OutlineCircle)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_FillCircle)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_OutlineTriangle)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_FillTriangle)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_FillGradientTriangle)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_OutlinePolygon)
|
|
Default();
|
|
else if (JGL_RENDERING_ROUTINE == J2D_DrawArc)
|
|
Default();
|
|
else { Default(); }
|
|
*/
|
|
Default();
|
|
} |