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 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