From ef74ae83db1d3049e4e890df77d25ac6e1f7719f Mon Sep 17 00:00:00 2001 From: drumsetmonkey Date: Thu, 15 Oct 2015 09:07:05 -0400 Subject: Added glew and shader loading --- Makefile | 6 +++--- include/common.h | 3 ++- include/entities.h | 4 ---- main.cpp | 29 +++++++++++++++++++++++++++++ shader.frag | 13 +++++++++++++ src/entities.cpp | 8 ++++---- src/ui.cpp | 2 +- 7 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 shader.frag diff --git a/Makefile b/Makefile index 387f5f3..da4e36a 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ LIBS = -lGL WIN_LIBS = -lopengl32 -lmingw32 -FLAGS = -m32 -std=c++11 -Iinclude -Iinclude/freetype2 -lSDL2main -lSDL2 -lfreetype -lSDL2_image -lSDL2_mixer +FLAGS = -m32 -std=c++11 -Iinclude -Iinclude/freetype2 -lGL -lGLEW -lSDL2main -lSDL2 -lfreetype -lSDL2_image -lSDL2_mixer -all: - @rm -f out/*.o +all: + @rm -f out/*.o @cd src; $(MAKE) $(MFLAGS) @echo " CXX main.cpp" @g++ $(FLAGS) -o main main.cpp out/*.o $(LIBS) diff --git a/include/common.h b/include/common.h index b2ef8a3..2cf98e4 100644 --- a/include/common.h +++ b/include/common.h @@ -8,9 +8,10 @@ #include #include #include +#include +#include #include #include -#include typedef struct { float x; float y; }vec2; diff --git a/include/entities.h b/include/entities.h index fc2f35c..5b6bcf1 100644 --- a/include/entities.h +++ b/include/entities.h @@ -100,7 +100,3 @@ ENTITY TYPES <<<<<<< HEAD |->1 Rabbit **/ -======= -|->1 Skirl -**/ ->>>>>>> 58716d5e4f20eb5a30025c88fe5119a0e40c4187 diff --git a/main.cpp b/main.cpp index 5595c7e..a8c6cd2 100644 --- a/main.cpp +++ b/main.cpp @@ -48,6 +48,10 @@ unsigned int millis(void){ int main(int argc, char *argv[]){ // Initialize SDL + if(glewInit() < 0){ + std::cout << "GLEW was not able to initialize! Error: " << std::endl; + return -1; + } if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0){ std::cout << "SDL was not able to initialize! Error: " << SDL_GetError() << std::endl; return -1; @@ -93,6 +97,31 @@ int main(int argc, char *argv[]){ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); SDL_ShowCursor(SDL_DISABLE); // Hide mouse cursor so we can draw our own + /** + * SHADERS + **/ + + /*GLuint fragShader; + GLuint shaderProgram; + + const GLchar *shaderSource = "shader.frag"; + GLint bufferln = GL_FALSE; + + shaderProgram = glCreateProgram(); + fragShader = glCreateShader(GL_FRAGMENT_SHADER); + glShaderSource(fragShader, 1, &shaderSource, NULL); + glCompileShader(fragShader); + glGetShaderiv(fragShader, GL_COMPILE_STATUS, &bufferln); + if (bufferln == GL_TRUE){ + std::cout << "Error compiling shader" << std::endl; + } + glAttachShader(shaderProgram, fragShader); + glLinkProgram(shaderProgram); + glValidateProgram(shaderProgram); + + //glEnable(GL_DEPTH_TEST); + //glEnable(GL_MULTISAMPLE);*/ + names = fopen("assets/names_en-us", "r+"); // Open the names file initEverything(); // Run world maker thing in src/gameplay.cpp diff --git a/shader.frag b/shader.frag new file mode 100644 index 0000000..7627a12 --- /dev/null +++ b/shader.frag @@ -0,0 +1,13 @@ +#version 140 + +uniform vec2 lightLocation; +uniform vec3 lightColor; +uniform float screenHeight; + +void main(){ + float distance = length(lightLocation - gl_FragCoord.xy); + float attenuation = 1.0 / distance; + vec4 color = vec4(attenuation, attenuation, attenuation, pow(attenuation, 3)) * vec4(lightColor, 1); + + gl_FragColor = color; +} \ No newline at end of file diff --git a/src/entities.cpp b/src/entities.cpp index 0457ba1..f9bd015 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -109,10 +109,10 @@ void Entity::draw(void){ //draws the entities texState-=1; if(texState==0)up=true; } - }if(ground == 0){ - glBindTexture(GL_TEXTURE_2D, texture[1]); } - else if(vel.x != 0){ + if(ground == 0){ + glBindTexture(GL_TEXTURE_2D, texture[1]); + }else if(vel.x != 0){ switch(texState){ case 0: glBindTexture(GL_TEXTURE_2D,texture[1]); @@ -156,7 +156,7 @@ void Entity::draw(void){ //draws the entities ui::setFontSize(16); ui::putText(((SCREEN_WIDTH / 2 ) + loc.x) - 125, SCREEN_HEIGHT - ui::fontSize, "Health: %d/%d",health,maxHealth); glColor3ub(255,0,0); - glRectf((SCREEN_WIDTH / 2 + loc.x) - 125, SCREEN_HEIGHT - 32, ((SCREEN_WIDTH / 2 + loc.x) - 125) + (int)((int)(health / maxHealth) * 100), SCREEN_HEIGHT - 32 + 12); + glRectf((SCREEN_WIDTH / 2 + loc.x) - 125, SCREEN_HEIGHT - 32, ((SCREEN_WIDTH / 2 + loc.x) - 125) + (((float)health / (float)maxHealth) * 100), SCREEN_HEIGHT - 32 + 12); } if(near){ ui::setFontSize(14); diff --git a/src/ui.cpp b/src/ui.cpp index fe5414c..5c5df20 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -55,7 +55,7 @@ namespace ui { abort(); } // Load the bitmap with OpenGL - glActiveTexture(GL_TEXTURE0); + //glActiveTexture(GL_TEXTURE0); glGenTextures(1,&ftex); glBindTexture(GL_TEXTURE_2D,ftex); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); -- cgit v1.2.3