diff --git a/FinalProject/fragmentshader.fs b/FinalProject/fragmentshader.fs index e2d67ce..8ec2a19 100644 --- a/FinalProject/fragmentshader.fs +++ b/FinalProject/fragmentshader.fs @@ -3,5 +3,5 @@ out vec4 FragColor; void main() { - FragColor = vec4(0.0f, 0.0f, 0.0f, 1.0f); + FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f); } \ No newline at end of file diff --git a/FinalProject/shader.cpp b/FinalProject/shader.cpp index 4acc3c2..268e76a 100644 --- a/FinalProject/shader.cpp +++ b/FinalProject/shader.cpp @@ -1,6 +1,9 @@ #pragma once #include +#include +#include +#include #include "shader.h" #include "logger.h" @@ -11,8 +14,21 @@ VertexShader::VertexShader(const std::string& source){ } void VertexShader::compile(const std::string& source) { - const char* sourcePtr = source.c_str(); - OPENGL_EXTRA_FUNCTIONS->glShaderSource(_shaderId, 1, &sourcePtr, nullptr); + std::string codeStr; + std::ifstream file; + file.exceptions(std::ifstream::failbit | std::ifstream::badbit); + try { + file.open(source); + std::stringstream stream; + stream << file.rdbuf(); + file.close(); + codeStr = stream.str(); + } + catch (std::ifstream::failure e) { + Logger::error("Failed to read vertex shader file"); + } + const char* code = codeStr.c_str(); + OPENGL_EXTRA_FUNCTIONS->glShaderSource(_shaderId, 1, &code, nullptr); OPENGL_EXTRA_FUNCTIONS->glCompileShader(_shaderId); int success; char infoLog[512]; @@ -29,8 +45,21 @@ FragmentShader::FragmentShader(const std::string& source){ } void FragmentShader::compile(const std::string& source) { - const char* sourcePtr = source.c_str(); - OPENGL_EXTRA_FUNCTIONS->glShaderSource(_shaderId, 1, &sourcePtr, nullptr); + std::string codeStr; + std::ifstream file; + file.exceptions(std::ifstream::failbit | std::ifstream::badbit); + try { + file.open(source); + std::stringstream stream; + stream << file.rdbuf(); + file.close(); + codeStr = stream.str(); + } + catch (std::ifstream::failure e) { + Logger::error("Failed to read vertex shader file"); + } + const char* code = codeStr.c_str(); + OPENGL_EXTRA_FUNCTIONS->glShaderSource(_shaderId, 1, &code, nullptr); OPENGL_EXTRA_FUNCTIONS->glCompileShader(_shaderId); int success; char infoLog[512]; @@ -47,8 +76,21 @@ GeometryShader::GeometryShader(const std::string& source) { } void GeometryShader::compile(const std::string& source) { - const char* sourcePtr = source.c_str(); - OPENGL_EXTRA_FUNCTIONS->glShaderSource(_shaderId, 1, &sourcePtr, nullptr); + std::string codeStr; + std::ifstream file; + file.exceptions(std::ifstream::failbit | std::ifstream::badbit); + try { + file.open(source); + std::stringstream stream; + stream << file.rdbuf(); + file.close(); + codeStr = stream.str(); + } + catch (std::ifstream::failure e) { + Logger::error("Failed to read vertex shader file"); + } + const char* code = codeStr.c_str(); + OPENGL_EXTRA_FUNCTIONS->glShaderSource(_shaderId, 1, &code, nullptr); OPENGL_EXTRA_FUNCTIONS->glCompileShader(_shaderId); int success; char infoLog[512]; diff --git a/FinalProject/vertexshader.vs b/FinalProject/vertexshader.vs index 6f70f09..cdd6dd3 100644 --- a/FinalProject/vertexshader.vs +++ b/FinalProject/vertexshader.vs @@ -1 +1,7 @@ -#pragma once +#version 330 core +layout (location = 0) in vec3 aPos; + +void main() +{ + gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0); +} \ No newline at end of file