Example of index buffer usage (named for search purposes)

I figure I or someone else might search for this (in my case again) with something similar to the title I gave the thread, I managed to clean up an example project I did a while back to learn how to use index buffers enough that I could print out all the calls rather easily, I’m only gonna provide those calls here so that people who find the thread have something they can compare their own code to to find out where they’re going wrong (assuming they’ve already looked at guides and still couldn’t get it right), this was generated from a static triangle (like what you’d get if you drew on paper) so peops who’re comparing this to their own code keep that in mind:

./d.out
Renderer: AMD Radeon RX 480 Graphics (POLARIS10, DRM 3.42.0, 5.15.28-1-MANJARO, LLVM 13.0.1)
OpenGL version supported 4.6 (Core Profile) Mesa 21.3.7
 shaders.c:   12: ====================Started creating program================
 shaders.c:   32: glCreateProgram();
 shaders.c:   46: -----------------------------------------------------
 shaders.c:   83: glCreateShader( GL_VERTEX_SHADER );
 shaders.c:   85: glShaderSource( 2, 1, [0x55885f31dbb7], NULL );
 shaders.c:   91: glCompileShader( 2 );
 shaders.c:   93: glGetShaderiv( 2, GL_COMPILE_STATUS, 0x7ffcca886ccc );
 shaders.c:   93: 'Builder' compile status: 1
 shaders.c:  100: glAttachShader( 1, 2 );
 shaders.c:  103: glLinkProgram( 1 );
 shaders.c:  105: glGetProgramiv( 1, GL_LINK_STATUS, 0x7ffcca886ccc );
 shaders.c:  105: program link status: 1
 shaders.c:  111: -----------------------------------------------------
 shaders.c:   46: -----------------------------------------------------
 shaders.c:   83: glCreateShader( GL_FRAGMENT_SHADER );
 shaders.c:   85: glShaderSource( 3, 1, [0x55885f86ee37], NULL );
 shaders.c:   91: glCompileShader( 3 );
 shaders.c:   93: glGetShaderiv( 3, GL_COMPILE_STATUS, 0x7ffcca886ccc );
 shaders.c:   93: 'Painter' compile status: 1
 shaders.c:  100: glAttachShader( 1, 3 );
 shaders.c:  103: glLinkProgram( 1 );
 shaders.c:  105: glGetProgramiv( 1, GL_LINK_STATUS, 0x7ffcca886ccc );
 shaders.c:  105: program link status: 1
 shaders.c:  111: -----------------------------------------------------
 shaders.c:  115: glValidateProgram( 1 )
 shaders.c:  117: glGetProgramiv( 1, GL_VALIDATE_STATUS, 0x7ffcca886ccc );
 shaders.c:  117: program validate status: 1
 shaders.c:  123: glGetProgramiv( 1, GL_ACTIVE_ATTRIBUTES, 0x7ffcca886ccc );
 shaders.c:  123: program active symbols: 1
 shaders.c:  130: ====================Finished creating program===============
 shaders.c:  155: glUseProgram( 1 );
    main.c:   32: ---------------Started creating vertex config---------------
  symbol.c:   30: glGetVertexArrays( 1, 0x7ffcca886db0 );
  symbol.c:   41: glBindVertexArray( 1 );
    main.c:   35: ---------------Finished creating vertex config--------------
    main.c:   38: ---------------Started creating vertex buffer---------------
 buffers.c:   15: glGenBuffers( 1, 0x7ffcca886d34 );
 buffers.c:   46: glBindBuffer( GL_ARRAY_BUFFER, 1 );
 buffers.c:   76: glBufferData( GL_ARRAY_BUFFER, 144, 0x55885f8726f0, GL_STATIC_DRAW );
    main.c:   43: ---------------Finished creating vertex buffer--------------
    main.c:   45: ---------------Started creating vertex symbol---------------
 buffers.c:   15: glGenBuffers( 1, 0x7ffcca886d04 );
  symbol.c:   69: glGetAttribLocation( 1, 'PosPoint' );
 buffers.c:   46: glBindBuffer( GL_ARRAY_BUFFER, 1 );
  symbol.c:   87: glVertexAttribPointer( 0, 3, GL_FLOAT, GL_FALSE, 0, NULL );
 buffers.c:   46: glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 2 );
 buffers.c:   76: glBufferData( GL_ELEMENT_ARRAY_BUFFER, 12, 0x55885f873e70, GL_STATIC_DRAW );
    main.c:   56: ---------------Finished creating vertex symbol--------------
    main.c:   58: =======================Started drawing======================
    main.c:   61: -----------------------------------------------------
 shaders.c:  155: glUseProgram( 1 );
  symbol.c:   41: glBindVertexArray( 1 );
  symbol.c:    5: glEnableVertexAttribArray( 0 ); /* For 'PosPoint' */
 buffers.c:   46: glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 2 );
  symbol.c:  107: glDrawElements( GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL );
  symbol.c:   14: glDisableVertexAttribArray( 0 ); /* For 'PosPoint' */
    main.c:   75: -----------------------------------------------------
    main.c:   79: =======================Finished drawing=====================
 buffers.c:    5: glDeleteBuffers( 1, [2] );
 buffers.c:    5: glDeleteBuffers( 1, [1] );
  symbol.c:   24: glDeleteVertexArrays( 1, [1] );
 shaders.c:  138: glDeleteProgram( 1 );
 shaders.c:  145: glDeleteShader( 2 );
 shaders.c:  145: glDeleteShader( 3 );
Compilation finished successfully.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.