External shader file loading.
This commit is contained in:
parent
3a2d18f731
commit
3f8fd07eb3
@ -143,6 +143,11 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="ShaderError.h" />
|
<ClInclude Include="ShaderError.h" />
|
||||||
|
<ClInclude Include="utils.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="fragShader.glsl" />
|
||||||
|
<None Include="vertShader.glsl" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
@ -23,5 +23,16 @@
|
|||||||
<ClInclude Include="ShaderError.h">
|
<ClInclude Include="ShaderError.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="utils.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="vertShader.glsl">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="fragShader.glsl">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
11
OpenGLTemplate/fragShader.glsl
Normal file
11
OpenGLTemplate/fragShader.glsl
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#version 430
|
||||||
|
out vec4 color;
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
color=vec4(
|
||||||
|
(gl_FragCoord.x - 300) / 5.f,
|
||||||
|
0.0,
|
||||||
|
5 - (gl_FragCoord.x - 300) / 5.f,
|
||||||
|
1.0
|
||||||
|
);
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GLFW/glfw3.h>
|
#include <GLFW/glfw3.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include "utils.h"
|
||||||
#include "ShaderError.h"
|
#include "ShaderError.h"
|
||||||
|
|
||||||
#define numVAOs 1
|
#define numVAOs 1
|
||||||
@ -14,21 +15,17 @@ GLuint createShaderProgram(){
|
|||||||
GLint linked;
|
GLint linked;
|
||||||
// catch errors while compiling shaders
|
// catch errors while compiling shaders
|
||||||
|
|
||||||
const char*vShaderSource=
|
|
||||||
"#version 430 \n"
|
|
||||||
"void main(void) \n"
|
|
||||||
"{gl_Position=vec4(0.0,0.0,0.0,1.0);}";
|
|
||||||
const char*fShaderSource=
|
|
||||||
"#version 430 \n"
|
|
||||||
"out vec4 color; \n"
|
|
||||||
"void main(void) \n"
|
|
||||||
"{ color=vec4((gl_FragCoord.x-300)/5.f,0.0,5-(gl_FragCoord.x-300)/5.f,1.0); }";
|
|
||||||
|
|
||||||
GLuint vShader=glCreateShader(GL_VERTEX_SHADER);
|
GLuint vShader=glCreateShader(GL_VERTEX_SHADER);
|
||||||
GLuint fShader=glCreateShader(GL_FRAGMENT_SHADER);
|
GLuint fShader=glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
|
|
||||||
glShaderSource(vShader,1,&vShaderSource,NULL);
|
std::string vertShaderStr=utils::readShaderSource("vertShader.glsl");
|
||||||
glShaderSource(fShader,1,&fShaderSource,NULL);
|
std::string fragShaderStr=utils::readShaderSource("fragShader.glsl");
|
||||||
|
|
||||||
|
const char*vertShaderSrc=vertShaderStr.c_str();
|
||||||
|
const char*fragShaderSrc=fragShaderStr.c_str();
|
||||||
|
|
||||||
|
glShaderSource(vShader,1,&vertShaderSrc,NULL);
|
||||||
|
glShaderSource(fShader,1,&fragShaderSrc,NULL);
|
||||||
|
|
||||||
glCompileShader(vShader);
|
glCompileShader(vShader);
|
||||||
ErrorCheck::checkOpenGLError();
|
ErrorCheck::checkOpenGLError();
|
||||||
|
22
OpenGLTemplate/utils.h
Normal file
22
OpenGLTemplate/utils.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <string>
|
||||||
|
#include <fstream>
|
||||||
|
#include <GL/glew.h>
|
||||||
|
|
||||||
|
namespace utils{
|
||||||
|
inline std::string readShaderSource(const char *filePath){
|
||||||
|
std::string content;
|
||||||
|
std::ifstream fileStream(filePath, std::ios::in);
|
||||||
|
std::string line = "";
|
||||||
|
if(fileStream.fail()){
|
||||||
|
std::cout<<"Could not open shader "<<filePath<<"!"<<std::endl;
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
while (fileStream.good()) {
|
||||||
|
getline(fileStream, line);
|
||||||
|
content.append(line + "\n");
|
||||||
|
}
|
||||||
|
fileStream.close();
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
}
|
5
OpenGLTemplate/vertShader.glsl
Normal file
5
OpenGLTemplate/vertShader.glsl
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#version 430
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
gl_Position=vec4(0.0,0.0,0.0,1.0);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user