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