1 /***************************************************************************
2 *
3 * Copyright (C) 2018 Advanced Driver Information Technology Joint Venture GmbH
4 *
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 ****************************************************************************/
19 #include "ShaderGradient.h"
20
21 const static char* vertexShaderCode =
22 "attribute mediump vec4 a_vertex; \
23 attribute mediump vec4 a_color; \
24 varying mediump vec4 v_color; \
25 void main(void) \
26 { \
27 gl_Position = a_vertex; \
28 v_color = a_color; \
29 }";
30
31 const static char* fragmentShaderCode =
32 "varying mediump vec4 v_color; \
33 void main (void) \
34 { \
35 gl_FragColor = v_color; \
36 }";
37
ShaderGradient()38 ShaderGradient::ShaderGradient()
39 : ShaderBase(vertexShaderCode, fragmentShaderCode, nullptr)
40 {
41 glUseProgram(shaderProgramId);
42 attributeColor = glGetAttribLocation(shaderProgramId, "a_color");
43 }
44
~ShaderGradient()45 ShaderGradient::~ShaderGradient()
46 {
47 }
48
use(vec3f * position,vec4f * color)49 void ShaderGradient::use(vec3f* position, vec4f* color)
50 {
51 glUseProgram(shaderProgramId);
52 glEnableVertexAttribArray(attributeColor);
53 glVertexAttribPointer(attributeColor, 4, GL_FLOAT, GL_FALSE, 0, &color->r);
54 }
55