add shader stuff
This commit is contained in:
47
src/main.cpp
47
src/main.cpp
@@ -1,8 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* This template contains code for creating an empty
|
* This template contains code for creating an empty
|
||||||
* window in OpenGL.
|
* window in OpenGL.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "classes/ElementBufferObject.h"
|
||||||
|
#include "classes/VertexArrayObject.h"
|
||||||
|
#include "classes/VertexBufferObject.h"
|
||||||
#include "glad/glad.h"
|
#include "glad/glad.h"
|
||||||
#include "GLFW/glfw3.h"
|
#include "GLFW/glfw3.h"
|
||||||
#include "classes/Classes.h"
|
#include "classes/Classes.h"
|
||||||
@@ -15,6 +18,18 @@ void processInput(GLFWwindow *window);
|
|||||||
const unsigned int WINDOW_WIDTH = 800;
|
const unsigned int WINDOW_WIDTH = 800;
|
||||||
const unsigned int WINDOW_HEIGHT = 600;
|
const unsigned int WINDOW_HEIGHT = 600;
|
||||||
|
|
||||||
|
float vertices[] = {
|
||||||
|
1.0f, 1.0f, 0.0f, // top right
|
||||||
|
1.0f, -1.0f, 0.0f, // bottom right
|
||||||
|
-1.0f, -1.0f, 0.0f, // bottom left
|
||||||
|
-1.0f, 1.0f, 0.0f // top left
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int indices[] = {
|
||||||
|
0, 1, 3, // first Triangle
|
||||||
|
1, 2, 3 // second Triangle
|
||||||
|
};
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
// Initialisation and configuration.
|
// Initialisation and configuration.
|
||||||
glfwInit();
|
glfwInit();
|
||||||
@@ -23,7 +38,8 @@ int main(void) {
|
|||||||
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||||
|
|
||||||
// Create window.
|
// Create window.
|
||||||
GLFWwindow *window = glfwCreateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "Learn Shaders", NULL, NULL);
|
GLFWwindow *window = glfwCreateWindow(WINDOW_WIDTH, WINDOW_HEIGHT,
|
||||||
|
"Learn Shaders", NULL, NULL);
|
||||||
if (window == NULL) {
|
if (window == NULL) {
|
||||||
LogInfo("Failed to create GLFW window.");
|
LogInfo("Failed to create GLFW window.");
|
||||||
glfwTerminate();
|
glfwTerminate();
|
||||||
@@ -37,17 +53,38 @@ int main(void) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Shader stuff.
|
||||||
|
Shader shader("../src/shaders/vertexShader.vert.glsl", "../src/shaders/fragmentShader.frag.glsl");
|
||||||
|
|
||||||
|
VertexArrayObject VAO;
|
||||||
|
VAO.Bind();
|
||||||
|
VertexBufferObject VBO(vertices, sizeof(vertices));
|
||||||
|
VBO.Bind();
|
||||||
|
ElementBufferObject EBO(indices, sizeof(indices));
|
||||||
|
EBO.Bind();
|
||||||
|
|
||||||
|
VAO.LinkVBO(VBO, 0);
|
||||||
|
|
||||||
|
// while loop goes here.
|
||||||
while (!glfwWindowShouldClose(window)) {
|
while (!glfwWindowShouldClose(window)) {
|
||||||
processInput(window);
|
processInput(window);
|
||||||
|
|
||||||
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
|
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
|
shader.Activate();
|
||||||
|
VAO.Bind();
|
||||||
|
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
|
||||||
|
|
||||||
glfwSwapBuffers(window);
|
glfwSwapBuffers(window);
|
||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VAO.Delete();
|
||||||
|
VBO.Delete();
|
||||||
|
EBO.Delete();
|
||||||
|
shader.Delete();
|
||||||
glfwDestroyWindow(window);
|
glfwDestroyWindow(window);
|
||||||
|
|
||||||
glfwTerminate();
|
glfwTerminate();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,7 @@
|
|||||||
|
#version 330 core
|
||||||
|
|
||||||
|
out vec4 FragColour;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
FragColour = vec4(1.0f, 0.0f, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
@@ -0,0 +1,7 @@
|
|||||||
|
#version 330 core
|
||||||
|
|
||||||
|
layout(location = 0) in vec3 aPos;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
gl_Position = vec4(aPos, 1.0);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user