Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.05 KB | None | 0 0
  1. unsigned int shaderProgram;
  2. unsigned int vbo[2];
  3.  
  4. static const char* vertexSource = R"(
  5.     #version 330
  6.     precision highp float;
  7.  
  8.     uniform mat4 MVP;
  9.     layout(location=0) in vec2 vtxPos;
  10.     layout(location=1) in vec3 vtxColor;
  11.     out vec3 color;
  12.  
  13.     void main(){
  14.         gl_Position = vec4(vtxPos.x, vtxPos.y, 0, 1);
  15.         color = vtxColor;
  16.     }
  17. )";
  18.  
  19. static const char* fragmentSource = R"(
  20.     #version 330
  21.     precision highp float;
  22.  
  23.     in vec3 color;
  24.     out vec4 finalColor;
  25.  
  26.     void main(){
  27.         finalcolor = vec4(color, 1);
  28.     }
  29. )";
  30.  
  31. unsigned int vertexShader = glCreateShader(GL_VERTEX_SHADER);
  32. glShaderSource(vertexShader, 1, &vertexSource, NULL);
  33. glCompileShader(vertexShader);
  34.  
  35. unsigned int fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
  36. glShaderSource(fragmentShader, 1, &fragmentSource, NULL);
  37. glCompileShader(fragmentShader);
  38.  
  39. shaderProgram = glCreateProgram();
  40. glAttachShader(shaderProgram, vertexShader);
  41. glAttachShader(shaderProgram, fragmentShader);
  42. glBindFragDataLocation(shaderProgram, 0, "finalColor");
  43. glLinkProgram(shaderProgram);
  44. glUseProgram(shaderProgram);
  45.  
  46. //erre se emlékszem
  47. float vertices[] = {};
  48. //szinek
  49. float colors[] = {};
  50.  
  51. glGenBuffers(2, &vbo[0]);
  52. glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);
  53. glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
  54. glEnableVertexAttribArray(0);
  55. glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, NULL);
  56.  
  57. glBindBuffer(GL_ARRAY_BUFFER, vbo[1]);
  58. glBufferData(GL_ARRAY_BUFFER, sizeof(colors), colors, GL_STATIC_DRAW);
  59. glEnableVertexAttribArray(1);
  60. glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, NULL);
  61.  
  62. //nememlekszem az adatokra, de a koordináta rendszer szerint kell kitölteni ahol a háromszög volt
  63. int wCx = 60; (ha -30;+30 között van)
  64. int wCy = 60; (szintén)
  65. mat4 MVPtrans(2/wCx,0,0,0, 0,2/wCy,0,0, 0,0,1,0, 0,0,0,1);
  66.  
  67. int location = glGetUniformLocation(shaderProgram, "MVP");
  68. glUniformMatrix4f(location, 1, GL_TRUE, MVPtrans);
  69.  
  70. glClearColor(0,0,0,0);
  71. glClear(COLOR_BUFFER_BIT);
  72.  
  73. glDrawArrays(GL_TRIANGLES, 0, 3);
  74. glutSwapBuffers();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement