App: WIP broken
This commit is contained in:
parent
a2e592e79a
commit
005fceafd9
@ -13,11 +13,13 @@ add_executable(App
|
|||||||
|
|
||||||
find_package(SDL2 CONFIG REQUIRED)
|
find_package(SDL2 CONFIG REQUIRED)
|
||||||
find_package(OpenGL REQUIRED)
|
find_package(OpenGL REQUIRED)
|
||||||
|
find_package(GLEW REQUIRED)
|
||||||
target_link_libraries(App PRIVATE
|
target_link_libraries(App PRIVATE
|
||||||
AppLib
|
AppLib
|
||||||
SDL2::SDL2
|
SDL2::SDL2
|
||||||
SDL2::SDL2main
|
SDL2::SDL2main
|
||||||
OpenGL::GL
|
OpenGL::GL
|
||||||
|
GLEW::GLEW
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(App PUBLIC "${CMAKE_SOURCE_DIR}/App/include")
|
target_include_directories(App PUBLIC "${CMAKE_SOURCE_DIR}/App/include")
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
#include "SDL2/SDL.h"
|
#include "SDL2/SDL.h"
|
||||||
// #include "SDL2/SDL_vulkan.h"
|
// #include "SDL2/SDL_vulkan.h"
|
||||||
#include <SDL2/SDL_opengl.h>
|
#include "SDL2/SDL_opengl.h"
|
||||||
#include <GL/gl.h>
|
#include "GL/glew.h"
|
||||||
|
|
||||||
#include "Logger.hh"
|
#include "Logger.hh"
|
||||||
#include "Controller.hh"
|
#include "Controller.hh"
|
||||||
|
|||||||
@ -8,10 +8,89 @@
|
|||||||
#define PLATFORM_SURFACE_EXTENSION_NAME VK_KHR_WIN32_SURFACE_EXTENSION_NAME
|
#define PLATFORM_SURFACE_EXTENSION_NAME VK_KHR_WIN32_SURFACE_EXTENSION_NAME
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//TODO (Eero): https://github.com/theandrew168/sdl2-opengl-demo/blob/master/src/main.c
|
||||||
namespace App
|
namespace App
|
||||||
{
|
{
|
||||||
App::App() : m_ReturnCode(0), m_WindowWidth(800), m_WindowHeight(600), m_Quit(false), m_VSync(false)
|
App::App() : m_ReturnCode(0), m_WindowWidth(800), m_WindowHeight(600), m_Quit(false), m_VSync(false)
|
||||||
{
|
{
|
||||||
|
float vertices[] = {
|
||||||
|
-0.5f, -0.5f, 0.0f,
|
||||||
|
0.5f, -0.5f, 0.0f,
|
||||||
|
0.0f, 0.5f, 0.0f
|
||||||
|
};
|
||||||
|
|
||||||
|
// printf("OpenGL Vendor: %s\n", glGetString(GL_VENDOR));
|
||||||
|
// printf("OpenGL Renderer: %s\n", glGetString(GL_RENDERER));
|
||||||
|
// printf("OpenGL Version: %s\n", glGetString(GL_VERSION));
|
||||||
|
// printf("GLSL Version: %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION));
|
||||||
|
// Vertex Shader Part
|
||||||
|
unsigned int VBO;
|
||||||
|
glGenBuffers(1, &VBO);
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
|
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
|
||||||
|
const char *vertexShaderSource = "#version 330 core\n"
|
||||||
|
"layout (location = 0) in vec3 aPos;\n"
|
||||||
|
"void main()\n"
|
||||||
|
"{\n"
|
||||||
|
" gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
|
||||||
|
"}\0";
|
||||||
|
|
||||||
|
unsigned int vertexShader;
|
||||||
|
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
||||||
|
glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
|
||||||
|
glCompileShader(vertexShader);
|
||||||
|
|
||||||
|
int success;
|
||||||
|
char infoLog[512];
|
||||||
|
glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success);
|
||||||
|
if(!success)
|
||||||
|
{
|
||||||
|
glGetShaderInfoLog(vertexShader, 512, NULL, infoLog);
|
||||||
|
std::cout << "ERROR::SHADER::VERTEX::COMPILATION_FAILED\n" << infoLog << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fragment Shader Part
|
||||||
|
unsigned int fragmentShader;
|
||||||
|
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
|
glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL);
|
||||||
|
glCompileShader(fragmentShader);
|
||||||
|
|
||||||
|
|
||||||
|
glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
|
||||||
|
if(!success) {
|
||||||
|
glGetProgramInfoLog(shaderProgram, 512, NULL, infoLog);
|
||||||
|
std::cout << "ERROR::SHADER::FRAGMET::COMPILATION_FAILED\n" << infoLog << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int shaderProgram;
|
||||||
|
shaderProgram = glCreateProgram();
|
||||||
|
glAttachShader(shaderProgram, vertexShader);
|
||||||
|
glAttachShader(shaderProgram, fragmentShader);
|
||||||
|
glLinkProgram(shaderProgram);
|
||||||
|
|
||||||
|
glUseProgram(shaderProgram);
|
||||||
|
|
||||||
|
// Oh yeah, and don't forget to delete the shader objects once we've linked them into the program object; we no longer need them anymore:
|
||||||
|
glDeleteShader(vertexShader);
|
||||||
|
glDeleteShader(fragmentShader);
|
||||||
|
|
||||||
|
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
|
||||||
|
glEnableVertexAttribArray(0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// // 0. copy our vertices array in a buffer for OpenGL to use
|
||||||
|
// glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
|
// glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
|
||||||
|
// // 1. then set the vertex attributes pointers
|
||||||
|
// glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
|
||||||
|
// glEnableVertexAttribArray(0);
|
||||||
|
// // 2. use our shader program when we want to render an object
|
||||||
|
// glUseProgram(shaderProgram);
|
||||||
|
// // 3. now draw the object
|
||||||
|
// someOpenGLFunctionThatDrawsOurTriangle();
|
||||||
|
|
||||||
std::cout << "Eternity Engine" << std::endl;
|
std::cout << "Eternity Engine" << std::endl;
|
||||||
m_Logger = std::make_shared<Logger>();
|
m_Logger = std::make_shared<Logger>();
|
||||||
m_Controller = std::make_shared<Controller>();
|
m_Controller = std::make_shared<Controller>();
|
||||||
@ -81,6 +160,9 @@ namespace App
|
|||||||
glClearColor(0.39f, 0.58f, 0.93f, 1.f);
|
glClearColor(0.39f, 0.58f, 0.93f, 1.f);
|
||||||
// Clear color buffer
|
// Clear color buffer
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
glUseProgram(shaderProgram);
|
||||||
|
glBindVertexArray(VAO);
|
||||||
|
// someOpenGLFunctionThatDrawsOurTriangle();
|
||||||
// Update window with OpenGL rendering
|
// Update window with OpenGL rendering
|
||||||
SDL_GL_SwapWindow(m_Window);
|
SDL_GL_SwapWindow(m_Window);
|
||||||
}
|
}
|
||||||
@ -92,6 +174,9 @@ namespace App
|
|||||||
|
|
||||||
App::~App()
|
App::~App()
|
||||||
{
|
{
|
||||||
|
glDeleteVertexArrays(1, &VAO);
|
||||||
|
glDeleteBuffers(1, &VBO);
|
||||||
|
glDeleteProgram(shaderProgram);
|
||||||
SDL_DestroyWindow(m_Window);
|
SDL_DestroyWindow(m_Window);
|
||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
m_Logger.reset();
|
m_Logger.reset();
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
#include "App.hh"
|
#include "App.hh"
|
||||||
#include "Math.hh"
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user