1 /*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 #include <GLES2/gl2.h>
17 #include <GLES2/gl2ext.h>
18
19 #include <stdio.h>
20 #include <stdlib.h>
21 #include "attach_shader_one.h"
22 #include "common.h"
23
24 #define LOG_TAG "attach_shader_one"
25 #define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
26
27 static const char gVertexShader[] =
28 "attribute vec4 vPosition;\n"
29 "void main() {\n"
30 " gl_Position = vPosition;\n"
31 "}\n";
32
33 static const char gFragmentShader[] =
34 "precision mediump float;\n"
35 "void main() {\n"
36 " gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);\n"
37 "}\n";
38
39
attachShaderOne()40 Data attachShaderOne(){
41 GLuint vertexShader = loadShader(GL_VERTEX_SHADER, gVertexShader);
42 GLuint pixelShader = loadShader(GL_FRAGMENT_SHADER, gFragmentShader);
43 GLuint program = glCreateProgram();
44
45 glAttachShader(program, vertexShader);
46 glAttachShader(program, pixelShader);
47 int e1 = -1;
48 GLsizei maxCount = 10;
49 GLsizei count;
50 GLuint shaders[maxCount];
51
52 glGetAttachedShaders(program, maxCount,
53 &count,
54 shaders);
55 LOGI("Attached Shader First elemt : %d\n", *shaders);
56 LOGI("ShaderCount %d\n", count);
57 GLint error = glGetError();
58 Data data = {error, count, -1};
59 glDeleteShader(vertexShader);
60 glDeleteShader(pixelShader);
61 glDeleteProgram(program);
62 return data;
63 }
64
65
66