Advertisement
Haydot

opengl

Jul 4th, 2021
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.79 KB | None | 0 0
  1. public unsafe void Setting_Up()
  2.         {
  3.             try
  4.             {
  5.                 VAO = glGenVertexArray();
  6.             }
  7.             catch
  8.             {
  9.                 Outer.Error("Something went wrong while generating the vertex array, aborting early!");
  10.                 Glfw.SetWindowShouldClose(DisplayManager.window, true);
  11.             }
  12.  
  13.             glBindVertexArray(VAO);
  14.             EBO = glGenBuffer();
  15.             glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
  16.             fixed (float* v = &indicies[0])
  17.             {
  18.                 glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(float) * indicies.Length, v, GL_STATIC_DRAW);
  19.             }
  20.  
  21.             VBO = glGenBuffer();
  22.             glBindBuffer(GL_ARRAY_BUFFER, VBO);
  23.             fixed (float* v = &vert[0])
  24.             {
  25.                 glBufferData(GL_ARRAY_BUFFER, sizeof(float) * vert.Length, v, GL_STATIC_DRAW);
  26.             }
  27.             glVertexAttribPointer(0, 3, GL_FLOAT, false, 5 * sizeof(float), (void*)0);
  28.             glEnableVertexAttribArray(0);
  29.             glBindVertexArray(VAO);
  30.  
  31.             #region shaders
  32.             VertexShader = glCreateShader(GL_VERTEX_SHADER);
  33.             glShaderSource(VertexShader, vertex_shader);
  34.             glCompileShader(VertexShader);
  35.             FragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
  36.             glShaderSource(FragmentShader, frag_shader);
  37.             glCompileShader(FragmentShader);
  38.             shader_program = glCreateProgram();
  39.             glAttachShader(shader_program, VertexShader);
  40.             glAttachShader(shader_program, FragmentShader);
  41.             glLinkProgram(shader_program);
  42.             glUseProgram(shader_program);
  43.             glDeleteShader(VertexShader);
  44.             glDeleteShader(FragmentShader);
  45.             #endregion
  46.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement