Advertisement
gmfreaky

Untitled

Apr 26th, 2012
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.70 KB | None | 0 0
  1. package nl.sonware.opengltest;
  2.  
  3. import static org.lwjgl.opengl.ARBBufferObject.*;
  4. import static org.lwjgl.opengl.ARBVertexBufferObject.*;
  5. import static org.lwjgl.opengl.GL11.*;
  6.  
  7. public class Block {
  8.     int vertexBuffer, texCoordBuffer;
  9.     float[] vertexArray, texCoordArray;
  10.     float xSize,ySize,zSize;
  11.     Block(float xSize, float ySize, float zSize) {
  12.         this.xSize = xSize;
  13.         this.ySize = ySize;
  14.         this.zSize = zSize;
  15.        
  16.         vertexArray = new float[] {
  17.                 -1, 1, -1,
  18.                 -1,-1, -1,
  19.                 1, -1, -1,
  20.                
  21.                 1, -1,  -1,
  22.                 1,  1,  -1,
  23.                 -1, 1,  -1,
  24.         };
  25.        
  26.         texCoordArray = new float[] {
  27.                 0,1,
  28.                 0,0,
  29.                 1,0,
  30.                
  31.                 1,0,
  32.                 1,1,
  33.                 0,1,
  34.         };
  35.        
  36.         vertexBuffer = glGenBuffersARB();
  37.         texCoordBuffer = glGenBuffersARB();
  38.        
  39.         glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexBuffer);
  40.         glBufferDataARB(GL_ARRAY_BUFFER_ARB, BufferUtils.wrapDirect(vertexArray), GL_STATIC_DRAW_ARB);
  41.        
  42.         glBindBufferARB(GL_ARRAY_BUFFER_ARB, texCoordBuffer);
  43.         glBufferDataARB(GL_ARRAY_BUFFER_ARB, BufferUtils.wrapDirect(texCoordArray), GL_STATIC_DRAW_ARB);
  44.        
  45.         glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
  46.     }
  47.    
  48.     public void render() {
  49.         Textures.bindTexture(Textures.textureWood);
  50.        
  51.         glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexBuffer);
  52.         glTexCoordPointer(3, GL_FLOAT, 0, 0);
  53.        
  54.         glBindBufferARB(GL_ARRAY_BUFFER_ARB, texCoordBuffer);
  55.         glTexCoordPointer(2, GL_FLOAT, 0, 0);
  56.        
  57.         glEnableClientState(GL_VERTEX_ARRAY);
  58.         glEnableClientState(GL_TEXTURE_COORD_ARRAY);
  59.        
  60.             glDrawArrays(GL_TRIANGLES, 0, vertexArray.length); // Draw the VBO
  61.        
  62.         glDisableClientState(GL_TEXTURE_COORD_ARRAY);
  63.         glDisableClientState(GL_VERTEX_ARRAY);
  64.        
  65.         glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); // end VBO mode
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement