ich versuche mir gerade eine Font Klasse zu erstellen doch leider scheitere ich beim einfärben meiner Schrift :-(
vertex shader
Code: Alles auswählen
#version 150 core
precision highp float;
in vec3 in_position;
in vec2 in_texCoord;
uniform vec2 position;
uniform vec2 screenSize;
uniform vec4 charPosSize;
uniform float textureSize;
out vec2 ex_texCoord;
void main(void)
{
vec4 charPS = charPosSize / textureSize;
ex_texCoord.x = charPS.x + in_texCoord.x * (charPS.z);
ex_texCoord.y = 1.0 - (charPS.y + (1.0 - in_texCoord.y) * (charPS.w));
float x = (in_position.x * charPosSize.z + position.x) * (2.0 / screenSize.x);
float y = (in_position.y * charPosSize.w + position.y) * (-2.0 / screenSize.y);
gl_Position = vec4(x - 1.0, y + 1.0, in_position.z, 1.0);
}
fragment shader
Code: Alles auswählen
#version 150 core
precision highp float;
in vec2 ex_texCoord;
out vec4 glFragColor;
uniform vec4 fontColor;
uniform sampler2D texture;
void main(void)
{
vec4 texColor = texture2D(texture, ex_texCoord);
glFragColor = texColor * fontColor; // do not work
//glFragColor = texColor * vec4(0.7f, 0.7f, 0.2f, 1.0f); // work
}
Code: Alles auswählen
AShader::setUniform(shader->getUniformLocation("charPosSize"), (float)m_letterSize[i][0], (float)m_letterSize[i][1],
(float)m_letterSize[i][2], (float)m_fontHeight);
AShader::setUniform(shader->getUniformLocation("fontColor"),
0.7f, 0.7f, 0.2f, 1.0f);
Mr.Betatester