mirror of
https://github.com/MichaelFisher1997/opengl-cpp.git
synced 2025-04-27 06:03:10 +00:00
clang format added
This commit is contained in:
parent
6b0cc46045
commit
47f8068cdd
@ -2,21 +2,26 @@
|
||||
#include "Renderer.h"
|
||||
|
||||
IndexBuffer::IndexBuffer(const unsigned int *data, unsigned int count)
|
||||
: m_Count(count)
|
||||
{
|
||||
: m_Count(count) {
|
||||
ASSERT(sizeof(unsigned int) == sizeof(GLuint));
|
||||
//
|
||||
//std::cout << "m_RendererID: " << &m_RendererID << " " << m_RendererID << std::endl;
|
||||
// std::cout << "m_RendererID: " << &m_RendererID << " " << m_RendererID <<
|
||||
// std::endl;
|
||||
GLCall(glGenBuffers(1, &m_RendererID));
|
||||
GLCall(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_RendererID)); //select buffer called 'buffer'
|
||||
GLCall(glBufferData(GL_ELEMENT_ARRAY_BUFFER, count * sizeof(unsigned int), data, GL_STATIC_DRAW)); // assigne buffer size, static as we use many times, but does not change
|
||||
GLCall(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,
|
||||
m_RendererID)); // select buffer called 'buffer'
|
||||
GLCall(glBufferData(GL_ELEMENT_ARRAY_BUFFER, count * sizeof(unsigned int),
|
||||
data,
|
||||
GL_STATIC_DRAW)); // assigne buffer size, static as we use
|
||||
// many times, but does not change
|
||||
}
|
||||
|
||||
// Destructor
|
||||
IndexBuffer::~IndexBuffer() {
|
||||
if (m_RendererID != 0) { // Only delete if valid
|
||||
GLCall(glDeleteBuffers(1, &m_RendererID));
|
||||
std::cout << "IndexBuffer destroyed with RendererID: " << m_RendererID << std::endl;
|
||||
std::cout << "IndexBuffer destroyed with RendererID: " << m_RendererID
|
||||
<< std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,12 +54,12 @@ IndexBuffer& IndexBuffer::operator=(IndexBuffer&& other) noexcept {
|
||||
return *this;
|
||||
}
|
||||
|
||||
void IndexBuffer::Bind() const
|
||||
{
|
||||
GLCall(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_RendererID)); //select buffer called 'buffer'
|
||||
void IndexBuffer::Bind() const {
|
||||
GLCall(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,
|
||||
m_RendererID)); // select buffer called 'buffer'
|
||||
}
|
||||
|
||||
void IndexBuffer::Unbind() const
|
||||
{
|
||||
GLCall(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)); //select buffer called 'buffer'
|
||||
void IndexBuffer::Unbind() const {
|
||||
GLCall(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,
|
||||
0)); // select buffer called 'buffer'
|
||||
}
|
||||
|
@ -3,19 +3,20 @@
|
||||
|
||||
#include "Renderer.h"
|
||||
|
||||
|
||||
void GLClearError() {
|
||||
while (glGetError() != GL_NO_ERROR);
|
||||
|
||||
while (glGetError() != GL_NO_ERROR)
|
||||
;
|
||||
}
|
||||
|
||||
bool GLLogCall() {
|
||||
Color::Modifier red(Color::FG_RED);
|
||||
Color::Modifier def(Color::FG_DEFAULT);
|
||||
while (GLenum error = glGetError()) {
|
||||
std::cout << red << "[OpenGL Error] (" << error << ")" << def << std::endl; //if error, it will return a number, this needs to be converted to hex to then look up that value inn GL docs
|
||||
std::cout
|
||||
<< red << "[OpenGL Error] (" << error << ")" << def
|
||||
<< std::endl; // if error, it will return a number, this needs to be
|
||||
// converted to hex to then look up that value inn GL docs
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1,17 +1,16 @@
|
||||
#include "Shader.h"
|
||||
#include "IndexBuffer.h"
|
||||
#include "Renderer.h"
|
||||
#include "VertexArray.h"
|
||||
#include "VertexBuffer.h"
|
||||
#include "fstream"
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include "VertexBuffer.h"
|
||||
#include "VertexArray.h"
|
||||
#include "IndexBuffer.h"
|
||||
#include "fstream"
|
||||
#include "Renderer.h"
|
||||
#include <string>
|
||||
|
||||
Shader::Shader(const std::string &filepath)
|
||||
: m_FilePath(filepath), m_RendererID(0)
|
||||
{
|
||||
: m_FilePath(filepath), m_RendererID(0) {
|
||||
ShaderProgramSource source = ParseShader(filepath);
|
||||
|
||||
std::cout << "VERTEX" << std::endl << source.VertexSource << std::endl;
|
||||
@ -22,69 +21,51 @@ Shader::Shader(const std::string& filepath)
|
||||
GLCall(glUseProgram(m_RendererID));
|
||||
}
|
||||
|
||||
Shader::~Shader()
|
||||
{
|
||||
GLCall( glDeleteProgram(m_RendererID) );
|
||||
}
|
||||
Shader::~Shader() { GLCall(glDeleteProgram(m_RendererID)); }
|
||||
|
||||
void Shader::Bind() const
|
||||
{
|
||||
GLCall( glUseProgram(m_RendererID) );
|
||||
}
|
||||
void Shader::Bind() const { GLCall(glUseProgram(m_RendererID)); }
|
||||
|
||||
void Shader::Unbind() const
|
||||
{
|
||||
GLCall( glUseProgram(0) );
|
||||
}
|
||||
void Shader::Unbind() const { GLCall(glUseProgram(0)); }
|
||||
|
||||
int Shader::GetUniformLocation(const std::string& name)
|
||||
{
|
||||
int Shader::GetUniformLocation(const std::string &name) {
|
||||
if (m_UniformLocationCache.find(name) != m_UniformLocationCache.end())
|
||||
return m_UniformLocationCache[name];
|
||||
|
||||
GLCall(int location = glGetUniformLocation(m_RendererID, name.c_str()));
|
||||
if (location == -1)
|
||||
std::cout << "No active uniform variable with name " << name << " found" << std::endl;
|
||||
std::cout << "No active uniform variable with name " << name << " found"
|
||||
<< std::endl;
|
||||
|
||||
m_UniformLocationCache[name] = location;
|
||||
|
||||
return location;
|
||||
}
|
||||
|
||||
void Shader::SetUniform1f(const std::string& name, float value)
|
||||
{
|
||||
void Shader::SetUniform1f(const std::string &name, float value) {
|
||||
GLCall(glUniform1f(GetUniformLocation(name), value));
|
||||
}
|
||||
|
||||
void Shader::SetUniform4f(const std::string& name, float f0, float f1, float f2, float f3)
|
||||
{
|
||||
void Shader::SetUniform4f(const std::string &name, float f0, float f1, float f2,
|
||||
float f3) {
|
||||
GLCall(glUniform4f(GetUniformLocation(name), f0, f1, f2, f3));
|
||||
}
|
||||
|
||||
enum ShaderType
|
||||
{
|
||||
NONE = -1, VERTEX = 0, FRAGMENT = 1
|
||||
};
|
||||
enum ShaderType { NONE = -1, VERTEX = 0, FRAGMENT = 1 };
|
||||
|
||||
struct ShaderProgramSource Shader::ParseShader(const std::string& filepath)
|
||||
{
|
||||
struct ShaderProgramSource Shader::ParseShader(const std::string &filepath) {
|
||||
|
||||
std::ifstream stream(filepath);
|
||||
std::string line;
|
||||
std::stringstream ss[2];
|
||||
ShaderType type = NONE;
|
||||
|
||||
while (getline(stream, line))
|
||||
{
|
||||
if (line.find("#shader") != std::string::npos)
|
||||
{
|
||||
while (getline(stream, line)) {
|
||||
if (line.find("#shader") != std::string::npos) {
|
||||
if (line.find("vertex") != std::string::npos)
|
||||
type = VERTEX;
|
||||
else if (line.find("fragment") != std::string::npos)
|
||||
type = FRAGMENT;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
ss[(int)type] << line << '\n';
|
||||
}
|
||||
}
|
||||
@ -93,8 +74,8 @@ struct ShaderProgramSource Shader::ParseShader(const std::string& filepath)
|
||||
return sps;
|
||||
}
|
||||
|
||||
unsigned int Shader::CompileShader(unsigned int type, const std::string& source)
|
||||
{
|
||||
unsigned int Shader::CompileShader(unsigned int type,
|
||||
const std::string &source) {
|
||||
GLCall(unsigned int id = glCreateShader(type));
|
||||
const char *src = source.c_str();
|
||||
GLCall(glShaderSource(id, 1, &src, nullptr));
|
||||
@ -103,17 +84,15 @@ unsigned int Shader::CompileShader(unsigned int type, const std::string& source)
|
||||
// Error handling
|
||||
int result;
|
||||
GLCall(glGetShaderiv(id, GL_COMPILE_STATUS, &result));
|
||||
std::cout << (type == GL_VERTEX_SHADER ? "vertex" : "fragment") << " shader compile status: " << result << std::endl;
|
||||
if ( result == GL_FALSE )
|
||||
{
|
||||
std::cout << (type == GL_VERTEX_SHADER ? "vertex" : "fragment")
|
||||
<< " shader compile status: " << result << std::endl;
|
||||
if (result == GL_FALSE) {
|
||||
int length;
|
||||
GLCall(glGetShaderiv(id, GL_INFO_LOG_LENGTH, &length));
|
||||
char *message = (char *)alloca(length * sizeof(char));
|
||||
GLCall(glGetShaderInfoLog(id, length, &length, message));
|
||||
std::cout
|
||||
<< "Failed to compile "
|
||||
<< (type == GL_VERTEX_SHADER ? "vertex" : "fragment")
|
||||
<< "shader"
|
||||
std::cout << "Failed to compile "
|
||||
<< (type == GL_VERTEX_SHADER ? "vertex" : "fragment") << "shader"
|
||||
<< std::endl;
|
||||
std::cout << message << std::endl;
|
||||
GLCall(glDeleteShader(id));
|
||||
@ -123,8 +102,8 @@ unsigned int Shader::CompileShader(unsigned int type, const std::string& source)
|
||||
return id;
|
||||
}
|
||||
|
||||
unsigned int Shader::CreateShader(const std::string& vertexShader, const std::string& fragmentShader)
|
||||
{
|
||||
unsigned int Shader::CreateShader(const std::string &vertexShader,
|
||||
const std::string &fragmentShader) {
|
||||
// create a shader program
|
||||
unsigned int program = glCreateProgram();
|
||||
unsigned int vs = CompileShader(GL_VERTEX_SHADER, vertexShader);
|
||||
@ -139,8 +118,7 @@ unsigned int Shader::CreateShader(const std::string& vertexShader, const std::st
|
||||
|
||||
GLCall(glGetProgramiv(program, GL_LINK_STATUS, &program_linked));
|
||||
std::cout << "Program link status: " << program_linked << std::endl;
|
||||
if (program_linked != GL_TRUE)
|
||||
{
|
||||
if (program_linked != GL_TRUE) {
|
||||
GLsizei log_length = 0;
|
||||
GLchar message[1024];
|
||||
GLCall(glGetProgramInfoLog(program, 1024, &log_length, message));
|
||||
|
@ -1,8 +1,7 @@
|
||||
#include "VertexArray.h"
|
||||
#include "Renderer.h"
|
||||
|
||||
VertexArray::VertexArray()
|
||||
{
|
||||
VertexArray::VertexArray() {
|
||||
std::cout << "VertexArray::VertexArray()" << std::endl;
|
||||
std::cout << "m_RendererID: " << &m_RendererID << std::endl;
|
||||
GLCall(glGenVertexArrays(1, &m_RendererID));
|
||||
@ -11,16 +10,11 @@ VertexArray::VertexArray()
|
||||
if (!m_RendererID) {
|
||||
std::cerr << "Failed to generate VAO" << std::endl;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
VertexArray::~VertexArray()
|
||||
{
|
||||
GLCall(glDeleteVertexArrays(1, &m_RendererID));
|
||||
}
|
||||
VertexArray::~VertexArray() { GLCall(glDeleteVertexArrays(1, &m_RendererID)); }
|
||||
|
||||
void VertexArray::AddBuffer(const VertexBuffer& vb, const VertexBufferLayout& layout)
|
||||
{
|
||||
void VertexArray::AddBuffer(const VertexBuffer &vb,
|
||||
const VertexBufferLayout &layout) {
|
||||
Bind();
|
||||
vb.Bind();
|
||||
const std::vector<VertexBufferElement> elements = layout.GetElements();
|
||||
@ -28,14 +22,12 @@ void VertexArray::AddBuffer(const VertexBuffer& vb, const VertexBufferLayout& la
|
||||
for (unsigned int i = 0; i < elements.size(); i++) {
|
||||
const auto &element = elements[i];
|
||||
GLCall(glEnableVertexAttribArray(i));
|
||||
GLCall( glVertexAttribPointer(i, element.count, element.type, element.normalized,layout.GetStride(), INT2VOIDP(offset)) );
|
||||
GLCall(glVertexAttribPointer(i, element.count, element.type,
|
||||
element.normalized, layout.GetStride(),
|
||||
INT2VOIDP(offset)));
|
||||
offset += element.count * VertexBufferElement::GetSizeOfType(element.type);
|
||||
}
|
||||
}
|
||||
|
||||
void VertexArray::Bind() const {
|
||||
GLCall(glBindVertexArray(m_RendererID));
|
||||
}
|
||||
void VertexArray::Unbind() const {
|
||||
GLCall(glBindVertexArray(0));
|
||||
}
|
||||
void VertexArray::Bind() const { GLCall(glBindVertexArray(m_RendererID)); }
|
||||
void VertexArray::Unbind() const { GLCall(glBindVertexArray(0)); }
|
||||
|
@ -1,24 +1,22 @@
|
||||
#include "VertexBuffer.h"
|
||||
#include "Renderer.h"
|
||||
|
||||
VertexBuffer::VertexBuffer(const void* data, unsigned int size)
|
||||
{
|
||||
VertexBuffer::VertexBuffer(const void *data, unsigned int size) {
|
||||
GLCall(glGenBuffers(1, &m_RendererID));
|
||||
GLCall(glBindBuffer(GL_ARRAY_BUFFER, m_RendererID)); //select buffer called 'buffer'
|
||||
GLCall(glBufferData(GL_ARRAY_BUFFER, size, data, GL_STATIC_DRAW)); // assigne buffer size, static as we use many times, but does not change
|
||||
GLCall(glBindBuffer(GL_ARRAY_BUFFER,
|
||||
m_RendererID)); // select buffer called 'buffer'
|
||||
GLCall(glBufferData(GL_ARRAY_BUFFER, size, data,
|
||||
GL_STATIC_DRAW)); // assigne buffer size, static as we use
|
||||
// many times, but does not change
|
||||
}
|
||||
|
||||
VertexBuffer::~VertexBuffer()
|
||||
{
|
||||
GLCall(glDeleteBuffers(1, &m_RendererID));
|
||||
VertexBuffer::~VertexBuffer() { GLCall(glDeleteBuffers(1, &m_RendererID)); }
|
||||
|
||||
void VertexBuffer::Bind() const {
|
||||
GLCall(glBindBuffer(GL_ARRAY_BUFFER,
|
||||
m_RendererID)); // select buffer called 'buffer'
|
||||
}
|
||||
|
||||
void VertexBuffer::Bind() const
|
||||
{
|
||||
GLCall(glBindBuffer(GL_ARRAY_BUFFER, m_RendererID)); //select buffer called 'buffer'
|
||||
}
|
||||
|
||||
void VertexBuffer::Unbind() const
|
||||
{
|
||||
void VertexBuffer::Unbind() const {
|
||||
GLCall(glBindBuffer(GL_ARRAY_BUFFER, 0)); // select buffer called 'buffer'
|
||||
}
|
||||
|
@ -11,4 +11,3 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
69
src/sdl.cpp
69
src/sdl.cpp
@ -1,38 +1,25 @@
|
||||
#include <GL/glew.h> // Include GLEW before <SDL2/SDL.h>?
|
||||
#include "sdl.hpp"
|
||||
#include "VertexBufferLayout.h"
|
||||
#include <GL/glew.h> // Include GLEW before <SDL2/SDL.h>?
|
||||
#include <SDL2/SDL_video.h>
|
||||
#include <alloca.h>
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <ostream>
|
||||
#include <string>
|
||||
|
||||
#include "Renderer.h"
|
||||
#include "VertexBuffer.h"
|
||||
#include "VertexArray.h"
|
||||
#include "IndexBuffer.h"
|
||||
#include "Renderer.h"
|
||||
#include "Shader.h"
|
||||
#include "VertexArray.h"
|
||||
#include "VertexBuffer.h"
|
||||
|
||||
SdlWindow::SdlWindow(const char *title, int width, int height)
|
||||
: m_window(nullptr),
|
||||
m_renderer(nullptr),
|
||||
m_isRunning(false),
|
||||
m_isFullscreen(false),
|
||||
m_width(width),
|
||||
m_height(height),
|
||||
m_windowedWidth(width),
|
||||
m_windowedHeight(height),
|
||||
r(0.5f),
|
||||
m_glContext(nullptr),
|
||||
increment(0.05f),
|
||||
m_Shader(nullptr),
|
||||
m_Location(-1),
|
||||
m_IB(nullptr),
|
||||
m_VB(nullptr),
|
||||
m_VA(nullptr)
|
||||
{
|
||||
: m_window(nullptr), m_renderer(nullptr), m_isRunning(false),
|
||||
m_isFullscreen(false), m_width(width), m_height(height),
|
||||
m_windowedWidth(width), m_windowedHeight(height), r(0.5f),
|
||||
m_glContext(nullptr), increment(0.05f), m_Shader(nullptr), m_Location(-1),
|
||||
m_IB(nullptr), m_VB(nullptr), m_VA(nullptr) {
|
||||
|
||||
std::cout << "Step 0: hellow world" << std::endl;
|
||||
|
||||
@ -42,11 +29,8 @@ SdlWindow::SdlWindow(const char* title, int width, int height)
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
|
||||
std::cout << "Step 1: SDL_GL_SetAttribute completed" << std::endl;
|
||||
// 2. Create the window with OpenGL flag
|
||||
m_window = SDL_CreateWindow(title,
|
||||
SDL_WINDOWPOS_CENTERED,
|
||||
SDL_WINDOWPOS_CENTERED,
|
||||
width,
|
||||
height,
|
||||
m_window = SDL_CreateWindow(
|
||||
title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height,
|
||||
SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE);
|
||||
|
||||
if (!m_window) {
|
||||
@ -63,7 +47,8 @@ SdlWindow::SdlWindow(const char* title, int width, int height)
|
||||
std::cout << "Step 3: SDL_GL_CreateContext completed" << std::endl;
|
||||
|
||||
if (SDL_GL_MakeCurrent(m_window, m_glContext) != 0) {
|
||||
std::cerr << "Failed to make GL context current: " << SDL_GetError() << std::endl;
|
||||
std::cerr << "Failed to make GL context current: " << SDL_GetError()
|
||||
<< std::endl;
|
||||
return;
|
||||
}
|
||||
std::cout << "Step 4: SDL_GL_MakeCurrent completed" << std::endl;
|
||||
@ -72,7 +57,8 @@ SdlWindow::SdlWindow(const char* title, int width, int height)
|
||||
glewExperimental = GL_TRUE;
|
||||
GLenum glewErr = glewInit();
|
||||
if (glewErr != GLEW_OK) {
|
||||
std::cerr << "Failed to init GLEW: " << glewGetErrorString(glewErr) << std::endl;
|
||||
std::cerr << "Failed to init GLEW: " << glewGetErrorString(glewErr)
|
||||
<< std::endl;
|
||||
return;
|
||||
}
|
||||
std::cout << "Step 5: GLEW initialized successfully" << std::endl;
|
||||
@ -80,17 +66,18 @@ SdlWindow::SdlWindow(const char* title, int width, int height)
|
||||
#endif
|
||||
|
||||
std::cout << "OpenGL Version: " << glGetString(GL_VERSION) << std::endl;
|
||||
std::cout << "GLSL Version: " << glGetString(GL_SHADING_LANGUAGE_VERSION) << std::endl;
|
||||
std::cout << "GLSL Version: " << glGetString(GL_SHADING_LANGUAGE_VERSION)
|
||||
<< std::endl;
|
||||
std::cout << "Vendor: " << glGetString(GL_VENDOR) << std::endl;
|
||||
|
||||
|
||||
// 5. Set vsync (optional)
|
||||
SDL_GL_SetSwapInterval(1); // Vsync
|
||||
|
||||
// 6. Mark as running
|
||||
m_isRunning = true;
|
||||
|
||||
float positions[] = { // vertex for a triangle
|
||||
float positions[] = {
|
||||
// vertex for a triangle
|
||||
// x,y
|
||||
-0.5f, -0.5f, // 0
|
||||
0.5f, -0.5f, // 1
|
||||
@ -98,10 +85,7 @@ SdlWindow::SdlWindow(const char* title, int width, int height)
|
||||
-0.5f, 0.5f // 3
|
||||
};
|
||||
|
||||
unsigned int indices[] = {
|
||||
0, 1, 2,
|
||||
2, 3, 0
|
||||
};
|
||||
unsigned int indices[] = {0, 1, 2, 2, 3, 0};
|
||||
m_VA = new VertexArray();
|
||||
m_VB = new VertexBuffer(positions, 4 * 2 * sizeof(float));
|
||||
m_IB = new IndexBuffer(indices, 6);
|
||||
@ -111,15 +95,12 @@ SdlWindow::SdlWindow(const char* title, int width, int height)
|
||||
|
||||
m_VA->AddBuffer(*m_VB, layout);
|
||||
|
||||
|
||||
m_Shader = new Shader("res/shaders/Basic.shader");
|
||||
m_Shader->Bind();
|
||||
|
||||
|
||||
|
||||
}
|
||||
SdlWindow::~SdlWindow() {
|
||||
// If using SDL Renderer, destroy it. But if you’re purely using OpenGL, you might remove it.
|
||||
// If using SDL Renderer, destroy it. But if you’re purely using OpenGL, you
|
||||
// might remove it.
|
||||
if (m_renderer) {
|
||||
SDL_DestroyRenderer(m_renderer);
|
||||
m_renderer = nullptr;
|
||||
@ -169,8 +150,7 @@ SDL_Event event;
|
||||
std::cout << "Bye!" << std::endl;
|
||||
m_isRunning = false; // exit application
|
||||
}
|
||||
}
|
||||
else if (event.type == SDL_WINDOWEVENT) {
|
||||
} else if (event.type == SDL_WINDOWEVENT) {
|
||||
if (event.window.event == SDL_WINDOWEVENT_RESIZED) {
|
||||
// SDL gives the new width/height in event.window.data1/data2
|
||||
int newWidth = event.window.data1;
|
||||
@ -218,7 +198,8 @@ void SdlWindow::render() {
|
||||
m_IB->Bind();
|
||||
// TODO: Draw with OpenGL here (shaders, triangles, etc.)
|
||||
// glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, nullptr);
|
||||
GLCall(glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, nullptr)); //macro assert for debugging
|
||||
GLCall(glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT,
|
||||
nullptr)); // macro assert for debugging
|
||||
|
||||
// Swap buffers
|
||||
SDL_GL_SwapWindow(m_window);
|
||||
|
11
src/sdl.hpp
11
src/sdl.hpp
@ -9,11 +9,11 @@
|
||||
#include <GL/glew.h> // or <glad/glad.h> if using GLAD
|
||||
#endif
|
||||
|
||||
#include <string>
|
||||
#include "IndexBuffer.h"
|
||||
#include "VertexBufferLayout.h"
|
||||
#include "VertexArray.h"
|
||||
#include "Shader.h"
|
||||
#include "VertexArray.h"
|
||||
#include "VertexBufferLayout.h"
|
||||
#include <string>
|
||||
|
||||
// Forward declaration of classes and structs if needed
|
||||
// class SomethingElse;
|
||||
@ -29,7 +29,8 @@ public:
|
||||
// Run the main loop
|
||||
void run();
|
||||
// unsigned int compileShader(unsigned int type, const std::string& source);
|
||||
// unsigned int createShader(const std::string& vetexShader, const std::string& fragmentShader);
|
||||
// unsigned int createShader(const std::string& vetexShader, const
|
||||
// std::string& fragmentShader);
|
||||
// // for spliting our shaders
|
||||
// //struct ShaderProgramSource {
|
||||
// // std::string VetexSource, FragmentSource;
|
||||
@ -41,7 +42,6 @@ public:
|
||||
|
||||
void setFullscreen(bool fullscreen);
|
||||
|
||||
|
||||
private:
|
||||
// Private data members
|
||||
SDL_Window *m_window;
|
||||
@ -67,4 +67,3 @@ private:
|
||||
void update();
|
||||
void render();
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user