GLSL Shader Draws Only Black Screen LWJGL -


i new shaders, , got glsl code compile (well without compiler errors), , reason keep getting black screen. using lwjgl. keep getting black screen when try render triangle, though should white according color passed fragment shader. i've posted snippets of code below, there's enough figure out problem is.

fragment shader source code

void main() {     gl_fragcolor = vec4(1.0f, 1.0f, 1.0f, 1.0f); { 

vertex shader source code

void main() {     gl_position = ftransform(); } 

shader reader code

        vertshaderstring = shadername + ".vert";         fragshaderstring = shadername + ".frag";         shader = gl20.glcreateprogram();         vertshader = gl20.glcreateshader(gl20.gl_vertex_shader);          try{             string temp;             bufferedreader reader = new bufferedreader(new filereader(new file(vertshaderstring)));             while ((temp = reader.readline()) != null){                 vertsource.append(temp).append("\n");             }             reader.close();               bufferedreader fragreader = new bufferedreader(new filereader(new file(fragshaderstring)));             string othertemp;             while ((othertemp = fragreader.readline()) != null){                 fragsource.append(othertemp).append("\n");             }             fragreader.close();         }catch (exception e){             e.printstacktrace();         } 

shader setup code

        gl20.glshadersource(vertshader, vertsource);         gl20.glcompileshader(vertshader);          if (gl20.glgetshaderi(vertshader, gl20.gl_compile_status) == gl11.gl_false){             system.err.println("failed compile vertex shader");         }           gl20.glshadersource(fragshader, fragsource);         gl20.glcompileshader(fragshader);          if (gl20.glgetshaderi(fragshader, gl20.gl_compile_status) == gl11.gl_false){             system.err.println("failed compile fragment shader");         }          gl20.glattachshader(shader, vertshader);         gl20.glattachshader(shader, fragshader);         gl20.gllinkprogram(shader);         gl20.glvalidateprogram(shader); 

enable , disable shader code

public void begin(){     gl20.gluseprogram(shader); }  public void end(){     gl20.gluseprogram(0); } 

render method

public void render(){         gl11.glclearcolor(0, 0, 0, 1);         gl11.glclear(gl11.gl_color_buffer_bit);         gl11.glcolor4f(1, 0, 0, 1);         shader.begin();         gl11.glbegin(gl11.gl_triangles);         gl11.glvertex2i(0,  0);         gl11.glvertex2i(500, 0);         gl11.glvertex2i(250, 250);         gl11.glend();         shader.end();      } 

the problem has been solved, jozxyqk. had forgotten initialize fragment shader variable.

fragshader = gl20.glcreateshader(gl20.gl_fragment_shader); 

by adding line of code problem solved.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -