Giuseppe499

Tutorial1.java

Oct 27th, 2015
167
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

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×