39 lines
1.2 KiB
GLSL
39 lines
1.2 KiB
GLSL
#version 100
|
|
|
|
// GLES port of engine/shaders/main.vert - the one real difference is
|
|
// gl_Vertex, a desktop-only compatibility-profile builtin that doesn't
|
|
// exist in GLES at all, replaced with an explicit "position" attribute
|
|
// (see android/engine-patches/03-android-opengl-es-render.patch's
|
|
// CreateShader() change, which binds it to attribute location 0 to match
|
|
// the vertex arrays OpenGL.cc's GLES immediate-mode emulation submits).
|
|
precision mediump float;
|
|
|
|
attribute vec4 position;
|
|
attribute vec2 texcoords;
|
|
attribute float light;
|
|
attribute vec4 color;
|
|
|
|
varying vec2 TexCoords;
|
|
varying float Light;
|
|
varying vec4 Color;
|
|
|
|
uniform mat4 view;
|
|
uniform mat4 proj;
|
|
|
|
// GLES has no glPointSize() (desktop-only, set from
|
|
// opengl_begin_stars()) - point size must come from this builtin
|
|
// instead. Only read by the rasterizer for GL_POINTS draws (i.e. only
|
|
// matters for star.frag); harmless left unset for the other two shaders
|
|
// built from this same vertex shader (main.vert). See
|
|
// android/engine-patches/04-android-opengl-es-render.patch's
|
|
// questshock_glPointSize()/questshock_glEnd().
|
|
uniform float pointSize;
|
|
|
|
void main() {
|
|
TexCoords = texcoords;
|
|
Light = light;
|
|
Color = color;
|
|
gl_Position = proj * view * position;
|
|
gl_PointSize = pointSize;
|
|
}
|