Advertisement
Guest User

Untitled

a guest
Jun 11th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.17 KB | None | 0 0
  1. package test;
  2. import java.nio.FloatBuffer;
  3.  
  4. import org.lwjgl.opengl.GL15;
  5.  
  6. import static org.lwjgl.glfw.GLFW.*;
  7. import static org.lwjgl.opengl.GL.*;
  8. import static org.lwjgl.opengl.GL11.*;
  9. import static org.lwjgl.opengl.GL15.*;
  10. import static org.lwjgl.opengl.GL20.glEnableVertexAttribArray;
  11. import static org.lwjgl.opengl.GL20.glVertexAttribPointer;
  12. import static org.lwjgl.opengl.GL30.glBindVertexArray;
  13. import static org.lwjgl.opengl.GL30.glGenVertexArrays;
  14. import static org.lwjgl.system.MemoryUtil.*;
  15. import static org.lwjgl.system.MemoryStack.*;
  16.  
  17. public class TestGLFWCore {
  18.     public static void main(String[] args) {
  19.         // Initialize GLFW
  20.         glfwInit();
  21.  
  22.         // Create window
  23.         glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
  24.         glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  25.         glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
  26.         glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
  27.         glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
  28.         long window = glfwCreateWindow(800, 600, "OpenGL 3.2 Core Window", NULL, NULL);
  29.         glfwMakeContextCurrent(window);
  30.         createCapabilities();
  31.  
  32.         // Setup geometry
  33.         int size = 2;
  34.         int verts = 3;
  35.         int bytes = 4;
  36.         int vbo;
  37.         int vao;
  38.         stackPush();
  39.         {
  40.             // Initial vertex data
  41.             FloatBuffer buffer = stackMallocFloat(verts * size);
  42.             buffer.put(-0.5f).put(-0.5f); // Vert 1
  43.             buffer.put(+0.5f).put(-0.5f); // Vert 2
  44.             buffer.put(+0.0f).put(+0.5f); // Vert 3
  45.             buffer.flip();
  46.  
  47.             // Generate buffers
  48.             vbo = glGenBuffers();
  49.             vao = glGenVertexArrays();
  50.  
  51.             // Upload Vertex Buffer
  52.             glBindBuffer(GL_ARRAY_BUFFER, vbo);
  53.             glBufferData(GL_ARRAY_BUFFER, buffer, GL_STATIC_DRAW);
  54.             glBindVertexArray(vao);
  55.  
  56.             // Set attributes
  57.             glEnableVertexAttribArray(0);
  58.             glVertexAttribPointer( 0, size, GL_FLOAT, false, size*bytes, 0 );
  59.  
  60.             // Unbind
  61.             glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
  62.             glBindVertexArray(0);
  63.         }
  64.         stackPop();
  65.  
  66.         // Game loop
  67.         while (!glfwWindowShouldClose(window)) {
  68.             // Poll
  69.             glfwPollEvents();
  70.  
  71.             // Bind
  72.             glBindVertexArray(vao);
  73.  
  74.             // Draw
  75.             glDrawArrays(GL_TRIANGLES, 0, verts);
  76.  
  77.             // Blit
  78.             glfwSwapBuffers(window);
  79.         }
  80.  
  81.         // Terminate
  82.         glfwTerminate();
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement