added color quad and hue slider
This commit is contained in:
@@ -89,6 +89,48 @@ void App::initShaders()
|
||||
"void main(){"
|
||||
" frag = col;"
|
||||
"}";
|
||||
static const char* shader_color_quad_v =
|
||||
SHADER_VERSION
|
||||
"uniform mat4 mvp;"
|
||||
"in vec4 pos;"
|
||||
"in vec2 uvs;"
|
||||
"out vec3 uv;"
|
||||
"void main(){"
|
||||
" gl_Position = mvp * pos;"
|
||||
" uv = vec3(uvs, pos.w);"
|
||||
"}";
|
||||
static const char* shader_color_quad_f =
|
||||
SHADER_VERSION
|
||||
"uniform vec4 col;"
|
||||
"in vec3 uv;"
|
||||
"out vec4 frag;"
|
||||
"void main(){"
|
||||
" vec4 gradient_x = mix(col, vec4(1, 1, 1, 1), uv.x);"
|
||||
" frag = mix(gradient_x, vec4(0, 0, 0, 1), uv.y);"
|
||||
"}";
|
||||
static const char* shader_color_hue_v =
|
||||
SHADER_VERSION
|
||||
"uniform mat4 mvp;"
|
||||
"in vec4 pos;"
|
||||
"in vec2 uvs;"
|
||||
"out vec3 uv;"
|
||||
"void main(){"
|
||||
" gl_Position = mvp * pos;"
|
||||
" uv = vec3(uvs, pos.w);"
|
||||
"}";
|
||||
static const char* shader_color_hue_f =
|
||||
SHADER_VERSION
|
||||
"uniform vec4 col;"
|
||||
"in vec3 uv;"
|
||||
"out vec4 frag;"
|
||||
"vec3 hsv2rgb(vec3 c) {"
|
||||
" vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);"
|
||||
" vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);"
|
||||
" return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);"
|
||||
"}"
|
||||
"void main(){"
|
||||
" frag = vec4(hsv2rgb(vec3(uv.y, 1, 1)), 1);"
|
||||
"}";
|
||||
static const char* shader_font_v =
|
||||
SHADER_VERSION
|
||||
"uniform mat4 mvp;"
|
||||
@@ -115,6 +157,10 @@ void App::initShaders()
|
||||
LOG("Failed to create shader Texture");
|
||||
if (!ShaderManager::create(kShader::Color, shader_color_v, shader_color_f))
|
||||
LOG("Failed to create shader Color");
|
||||
if (!ShaderManager::create(kShader::ColorQuad, shader_color_quad_v, shader_color_quad_f))
|
||||
LOG("Failed to create shader ColorQuad");
|
||||
if (!ShaderManager::create(kShader::ColorHue, shader_color_hue_v, shader_color_hue_f))
|
||||
LOG("Failed to create shader ColorHue");
|
||||
if (!ShaderManager::create(kShader::UVs, shader_v, shader_uv_f))
|
||||
LOG("Failed to create shader UVs");
|
||||
if (!ShaderManager::create(kShader::Font, shader_font_v, shader_font_f))
|
||||
|
||||
Reference in New Issue
Block a user