SHARE
TWEET

Tutorial1.java

Giuseppe499 Oct 27th, 2015 130 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.main;
  2.  
  3. import com.main.Main;
  4. import com.main.ShaderProgram;
  5. import org.lwjgl.BufferUtils;
  6.  
  7. import java.nio.FloatBuffer;
  8.  
  9. import static org.lwjgl.opengl.GL11.*;
  10. import static org.lwjgl.opengl.GL15.*;
  11. import static org.lwjgl.opengl.GL20.*;
  12. import static org.lwjgl.opengl.GL30.*;
  13.  
  14.  
  15. public class Tutorial1 extends Main {
  16.        
  17.         int vaoID;
  18.         int vboID;
  19.         int vboColID;
  20.         ShaderProgram shaderProgram = new ShaderProgram();
  21.         float x1,y1,x2,y2,x3,y3;
  22.        
  23.     public Tutorial1() {
  24.                
  25.         }
  26.        
  27.         public void initGame() {
  28.                
  29.                 x1= +0f;
  30.                 x2= -1f;
  31.                 x3= +1f;
  32.                 y1= +1f;
  33.                 y2= -1f;
  34.                 y3= -1f;
  35.                
  36.                 shaderProgram.attachVertexShader("com/utility/simply2D.vs");
  37.         shaderProgram.attachFragmentShader("com/utility/blank.fs");
  38.         shaderProgram.link();
  39.                
  40.                
  41.         }
  42.        
  43.         int lastaction = 2;
  44.        
  45.         public void render(float delta)
  46.         {
  47.             // Clear the screen
  48.             glClear(GL_COLOR_BUFFER_BIT);
  49.  
  50.             // Use our program
  51.             shaderProgram.bind();
  52.  
  53.             // Bind the vertex array and enable our location
  54.             glBindVertexArray(vaoID);
  55.             glEnableVertexAttribArray(0);
  56.  
  57.             // Draw a triangle of 3 vertices
  58.             glDrawArrays(GL_TRIANGLES, 0, 3);
  59.  
  60.             // Disable our location
  61.             glDisableVertexAttribArray(0);
  62.             glBindVertexArray(0);
  63.  
  64.             // Un-bind our program
  65.             shaderProgram.unbind();
  66.            
  67.            
  68.            
  69.             if (lastaction==2 && y1>-1) {
  70.                 x2 += +0.004f;     
  71.                     x3 += -0.004f;
  72.                     y1 += -0.004f;
  73.                     y2 += +0.004f;
  74.                     y3 += +0.004f;                 
  75.                     if (y1<-1 || y1==-1) {lastaction = 1;}                 
  76.                 }
  77.            
  78.             if (lastaction==1  && y1<1) {
  79.                 x2 += -0.004f;     
  80.                     x3 += +0.004f;
  81.                     y1 += +0.004f;
  82.                     y2 += -0.004f;
  83.                     y3 += -0.004f;
  84.                     if (y1>1 || y1==1) {lastaction = 2;}
  85.                 }
  86.            
  87.                
  88.                 verticeSpecify(x1, y1, x2, y2, x3, y3);
  89.                 colorSpecify();
  90.        
  91.         glEnableVertexAttribArray(0);
  92.         glEnableVertexAttribArray(1);
  93.         glBindVertexArray(0);
  94.            
  95.            
  96.         }
  97.        
  98.        
  99.         public void dispose()
  100.         {
  101.             // Dispose the program
  102.             shaderProgram.dispose();
  103.  
  104.             // Dispose the vertex array
  105.             glBindVertexArray(0);
  106.             glDeleteVertexArrays(vaoID);
  107.  
  108.             // Dispose the buffer object
  109.             glBindBuffer(GL_ARRAY_BUFFER, 0);
  110.             glBindBuffer(GL_ARRAY_BUFFER, 1);
  111.             glDeleteBuffers(vboID);
  112.             glDeleteBuffers(vboColID);
  113.         }
  114.        
  115.     public void verticeSpecify(float x1, float y1, float x2, float y2, float x3, float y3) {
  116.        
  117.         // Generate and bind a Vertex Array
  118.         vaoID = glGenVertexArrays();
  119.         glBindVertexArray(vaoID);
  120.  
  121.         // The vertices of our Triangle
  122.         float[] vertices = new float[]
  123.         {
  124.             x1, y1,    // Top coordinate
  125.             x2, y2,    // Bottom-left coordinate
  126.             x3, y3     // Bottom-right coordinate
  127.         };
  128.  
  129.         // Create a FloatBuffer of vertices
  130.         FloatBuffer verticesBuffer = BufferUtils.createFloatBuffer(vertices.length);
  131.         verticesBuffer.put(vertices).flip();
  132.  
  133.         // Create a Buffer Object and upload the vertices buffer
  134.         vboID = glGenBuffers();
  135.         glBindBuffer(GL_ARRAY_BUFFER, vboID);
  136.         glBufferData(GL_ARRAY_BUFFER, verticesBuffer, GL_STATIC_DRAW);
  137.  
  138.         // Point the buffer at location 0, the location we set
  139.         // inside the vertex shader. You can use any location
  140.         // but the locations should match
  141.         glVertexAttribPointer(0, 2, GL_FLOAT, false, 0, 0);
  142.        
  143.     }
  144.    
  145.       public void colorSpecify() {
  146.        
  147.  
  148.         // The vertices of our Triangle
  149.         float[] colors = new float[]
  150.                         {
  151.                             1, 0, 0, 1,  // Red color, for the first vertex
  152.                             0, 1, 0, 1,  // Green color, for the second vertex
  153.                             0, 0, 1, 1   // Blue color, for the third vertex
  154.                         };
  155.  
  156.         // Create a FloatBuffer of vertices
  157.         FloatBuffer colorsBuffer = BufferUtils.createFloatBuffer(colors.length);
  158.         colorsBuffer.put(colors).flip();
  159.  
  160.         // Create a Buffer Object and upload the vertices buffer
  161.         vboColID = glGenBuffers();
  162.         glBindBuffer(GL_ARRAY_BUFFER, vboColID);
  163.         glBufferData(GL_ARRAY_BUFFER, colorsBuffer, GL_STATIC_DRAW);
  164.  
  165.         // Point the buffer at location 0, the location we set
  166.         // inside the vertex shader. You can use any location
  167.         // but the locations should match
  168.         glVertexAttribPointer(1, 4, GL_FLOAT, false, 0, 0);
  169.        
  170.     }
  171.    
  172.     public static void main(String[] args) {
  173.                 new Tutorial1().start();
  174.         }
  175.    
  176. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top