opengl - texCoordPointer not working in lwjgl -



opengl - texCoordPointer not working in lwjgl -

i've been having problems storing texture coordinate points in vbo, , telling opengl utilize when it's time render. in code below, should getting nice 16x16 texture on square making using quads. first top left pixel of image instead red, big reddish square. please tell me doing wrong in great detail.

public void start() { seek { display.setdisplaymode(new displaymode(800,600)); display.create(); } grab (lwjglexception e) { e.printstacktrace(); system.exit(0); } // init opengl gl11.glmatrixmode(gl11.gl_projection); gl11.glloadidentity(); gl11.glortho(0, 800, 0, 600, 1, -1); gl11.glmatrixmode(gl11.gl_modelview); glenable(gl_depth_test); glenable(gl_texture_2d); glloadidentity(); //loadtextures(); texturemanager.init(); makecube(); // init opengl here while (!display.iscloserequested()) { gl11.glclear(gl11.gl_color_buffer_bit | gl11.gl_depth_buffer_bit); // render opengl here rendercube(); display.update(); } display.destroy(); } public static void main(string[] argv) { screen screen = new screen(); screen.start(); } int cube; int texture; private void makecube() { floatbuffer cubebuffer; floatbuffer texturebuffer; //tried using 0,0,16,0,16,16,0,16 texturedata did not work. float[] texturedata = new float[]{ 0,0, 1,0, 1,1, 0,1}; texturebuffer = bufferutils.createfloatbuffer(texturedata.length); texturebuffer.put(texture); texturebuffer.flip(); texture = glgenbuffers(); glbindbuffer(gl_array_buffer, texture); glbufferdata(gl_array_buffer, texturebuffer, gl_static_draw); glbindbuffer(gl_array_buffer, 0); float[] cubedata = new float[]{ /*front face*/ 100, 100, 100 + 200, 100, 100 + 200, 100 + 200, 100, 100 + 200}; cubebuffer = bufferutils.createfloatbuffer(cubedata.length); cubebuffer.put(cubedata); cubebuffer.flip(); cube = glgenbuffers(); glbindbuffer(gl_array_buffer, cube); glbufferdata(gl_array_buffer, cubebuffer, gl_static_draw); glbindbuffer(gl_array_buffer, 0); } private void rendercube(){ texturemanager.texture.bind(); gltexparameteri(gl_texture_2d, gl_texture_min_filter, gl_nearest); gltexparameteri(gl_texture_2d, gl_texture_mag_filter, gl_nearest); gl11.glclear(gl11.gl_color_buffer_bit | gl11.gl_depth_buffer_bit); glbindbuffer(gl_array_buffer, texture); gltexcoordpointer(2, gl_float, 0, 0); glbindbuffer(gl_array_buffer, cube); glvertexpointer(2, gl_float, 0, 0); glenableclientstate(gl_vertex_array); glenableclientstate(gl_texture_coord_array); gldrawarrays(gl_quads, 0, 4); gldisableclientstate(gl_vertex_array); gldisableclientstate(gl_texture_coord_array); }

i believe problem in argument texturebuffer.put() in code fragment:

texturebuffer = bufferutils.createfloatbuffer(texturedata.length); texturebuffer.put(texture); texturebuffer.flip();

texture variable of type int, has not been initialized yet. later utilize buffer name. argument should texturedata instead:

texturebuffer.put(texturedata);

i seek focus on functionality on style when answering questions here, can't help time: imho, texture unfortunate name buffer name. it's not style , readability question. if used descriptive names variables, have spotted problem immediately.

say named variable buffer name bufferid (i phone call object identifiers "id", though official opengl terminology "name"), , buffer holding texture coordinates texturecoordbuf. statement in question become:

texturecoordbuf.put(bufferid);

which jump out highly suspicious superficial @ code.

opengl lwjgl

Comments

Popular posts from this blog

assembly - What is the addressing mode for ld, add, and rjmp instructions? -

vowpalwabbit - Interpreting Vowpal Wabbit results: Why are some lines appended by "h"? -

Is there a way to convert an HTML page styled with Bootstrap CSS into email-compatible html? -