fix: android comptatibility
This commit is contained in:
@@ -7,15 +7,18 @@
|
||||
|
||||
#include "render/shaders/EntityShader.h"
|
||||
|
||||
static const char vertexSource[] = R"(
|
||||
#version 330
|
||||
#ifdef ANDROID
|
||||
static const char vertexSource[] =
|
||||
R"(#version 300 es
|
||||
|
||||
in vec2 position;
|
||||
in int color;
|
||||
precision mediump float;
|
||||
|
||||
uniform vec2 camPos = vec2(0, 0);
|
||||
uniform float zoom = 1;
|
||||
uniform float aspectRatio = 0;
|
||||
layout(location = 0) in vec2 position;
|
||||
layout(location = 1) in int color;
|
||||
|
||||
uniform vec2 camPos;
|
||||
uniform float zoom;
|
||||
uniform float aspectRatio;
|
||||
uniform vec2 translation;
|
||||
uniform float isometricView;
|
||||
|
||||
@@ -25,7 +28,51 @@ void main(void){
|
||||
float modelX = position.x + translation.x;
|
||||
float modelY = position.y + translation.y;
|
||||
float x = (modelX - camPos.x - (modelY - camPos.y) * isometricView) / aspectRatio * zoom;
|
||||
float y = ((0.5 * (modelX - camPos.x) + 0.5 * (modelY - camPos.y)) * isometricView + (modelY - camPos.y) * (1 - isometricView)) * zoom;
|
||||
float y = ((0.5 * (modelX - camPos.x) + 0.5 * (modelY - camPos.y)) * isometricView + (modelY - camPos.y) * (1.0 - isometricView)) * zoom;
|
||||
pass_color = color;
|
||||
gl_Position = vec4(x, -y, 0.0, 1.0);
|
||||
}
|
||||
)";
|
||||
|
||||
static const char fragmentSource[] =
|
||||
R"(#version 300 es
|
||||
|
||||
precision mediump float;
|
||||
|
||||
flat in int pass_color;
|
||||
|
||||
out vec4 out_color;
|
||||
|
||||
void main(void){
|
||||
|
||||
float r = float(pass_color >> 24 & 0xFF) / 255.0;
|
||||
float g = float(pass_color >> 16 & 0xFF) / 255.0;
|
||||
float b = float(pass_color >> 8 & 0xFF) / 255.0;
|
||||
float a = float(pass_color & 0xFF) / 255.0;
|
||||
out_color = vec4(r, g, b, a);
|
||||
|
||||
}
|
||||
)";
|
||||
#else
|
||||
static const char vertexSource[] = R"(
|
||||
#version 330
|
||||
|
||||
layout(location = 0) in vec2 position;
|
||||
layout(location = 1) in int color;
|
||||
|
||||
uniform vec2 camPos;
|
||||
uniform float zoom;
|
||||
uniform float aspectRatio;
|
||||
uniform vec2 translation;
|
||||
uniform float isometricView;
|
||||
|
||||
flat out int pass_color;
|
||||
|
||||
void main(void){
|
||||
float modelX = position.x + translation.x;
|
||||
float modelY = position.y + translation.y;
|
||||
float x = (modelX - camPos.x - (modelY - camPos.y) * isometricView) / aspectRatio * zoom;
|
||||
float y = ((0.5 * (modelX - camPos.x) + 0.5 * (modelY - camPos.y)) * isometricView + (modelY - camPos.y) * (1.0 - isometricView)) * zoom;
|
||||
pass_color = color;
|
||||
gl_Position = vec4(x, -y, 0.0, 1.0);
|
||||
}
|
||||
@@ -48,6 +95,7 @@ void main(void){
|
||||
|
||||
}
|
||||
)";
|
||||
#endif
|
||||
|
||||
EntityShader::EntityShader() : ShaderProgram() {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user