OpenGl 踩坑 问题 绘制图形显示不出来

今天在学习OpenGl 的时候 准备用ndk 做绘制开发。然后在c++ 中 写了一个shader 是这样的

const char *vertex = "attribute vec4 v_position;\n"
                     "\n"
                     "void main(){\n"
                     "    gl_Position = v_position;\n"
                     "}";
const char *fragment = "precision mediump float;\n"
                       "\n"
                       "void main(){\n"
                       "    gl_FragColor = vec4(1,0,0,1);\n"
                       "}";

然后在draw里进行绘制 

    glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
    
    glClear(GL_COLOR_BUFFER_BIT);

    glUseProgram(program);


    glEnableVertexAttribArray(vPosition);

    glVertexAttribPointer(vPosition, 2, GL_FLOAT, false, 8, vertexs);

    glEnableVertexAttribArray(fPosition);
    glVertexAttribPointer(fPosition, 2, GL_FLOAT, false, 8, fragments);

    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

最后运行 死活出不来 图形 。。。 咋回事呢。查了好几天也没看出问题 。  后来让我发现了 其实是shader  的问题 

const char *fragment = "precision mediump float;\n"
                       "\n"
                       "void main(){\n"
                       "    gl_FragColor = vec4(1f,0f,0f,1f);\n"
                       "}";
我这里把着色器颜色写死了。红色 然后 可能是版本的问题 之前这个是没问题的。新版的 如果后缀不带f 你这个shader 加载是会出问题的。导致 shader 加载出错 。最后绘制不出来

 

你可能感兴趣的:(简单问题)