add checkerboard shader and draw it
This commit is contained in:
@@ -240,6 +240,28 @@ void App::initShaders()
|
||||
" frag = vec4(rgb, alpha_tot);\n"
|
||||
"}\n";
|
||||
|
||||
static const char* shader_checkerboard_v =
|
||||
SHADER_VERSION
|
||||
"uniform mat4 mvp;\n"
|
||||
"in vec4 pos;\n"
|
||||
"in vec2 uvs;\n"
|
||||
"out vec2 uv;\n"
|
||||
"void main(){\n"
|
||||
" uv = uvs;\n"
|
||||
" gl_Position = mvp * vec4(pos.xyz, 1.0);\n"
|
||||
"}";
|
||||
static const char* shader_checkerboard_f =
|
||||
SHADER_VERSION
|
||||
"in mediump vec2 uv;\n"
|
||||
"out mediump vec4 frag;\n"
|
||||
"void main(){\n"
|
||||
" const vec4 c1 = vec4(1.0, 1.0, 1.0, 1.0);\n"
|
||||
" const vec4 c2 = vec4(0.9, 0.9, 0.9, 1.0);\n"
|
||||
" vec2 c = floor(fract(uv * 10.0) * 2.0);\n"
|
||||
" float alpha = mix(c.x, 1.0 - c.x, c.y);\n"
|
||||
" frag = mix(c1, c2, alpha);\n"
|
||||
"}";
|
||||
|
||||
LOG("initializing shaders");
|
||||
if (!ShaderManager::create(kShader::Texture, shader_v, shader_f))
|
||||
LOG("Failed to create shader Texture");
|
||||
@@ -263,6 +285,8 @@ void App::initShaders()
|
||||
LOG("Failed to create shader StrokeErase");
|
||||
if (!ShaderManager::create(kShader::StrokeLayer, shader_stroke_layer_v, shader_stroke_layer_f))
|
||||
LOG("Failed to create shader StrokeLayer");
|
||||
if (!ShaderManager::create(kShader::Checkerboard, shader_checkerboard_v, shader_checkerboard_f))
|
||||
LOG("Failed to create shader Checkerboard");
|
||||
LOG("shaders initialized");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user