diff options
-rw-r--r-- | assets/lightTest/Makefile | 6 | ||||
-rw-r--r-- | assets/lightTest/main.cp | 0 | ||||
-rw-r--r-- | assets/lightTest/main.cpp | 67 | ||||
-rw-r--r-- | include/common.h | 1 | ||||
-rw-r--r-- | main.cpp | 19 | ||||
-rw-r--r-- | shader.frag | 11 |
6 files changed, 100 insertions, 4 deletions
diff --git a/assets/lightTest/Makefile b/assets/lightTest/Makefile new file mode 100644 index 0000000..c4d1042 --- /dev/null +++ b/assets/lightTest/Makefile @@ -0,0 +1,6 @@ +LIBS = -lGL -lGLEW -lSDL2main -lSDL2 -lfreetype -lSDL2_image -lSDL2_mixer + +FLAGS = -m32 -std=c++11 -Iinclude -Iinclude/freetype2 + +all: + @g++ $(FLAGS) -o main main.cpp $(LIBS)
\ No newline at end of file diff --git a/assets/lightTest/main.cp b/assets/lightTest/main.cp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/lightTest/main.cp diff --git a/assets/lightTest/main.cpp b/assets/lightTest/main.cpp new file mode 100644 index 0000000..4091389 --- /dev/null +++ b/assets/lightTest/main.cpp @@ -0,0 +1,67 @@ +#include <GL/glew.h> + +#include <SDL2/SDL.h> +#include <SDL2/SDL_opengl.h> +#include <SDL2/SDL_image.h> +#include <SDL2/SDL_mixer.h> +#include <iostream> + +#define SCREEN_WIDTH 1280 +#define SCREEN_HEIGHT 720 + +SDL_Window* window; +SDL_GLContext mainGLContext = NULL; + +int main(void){ + 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; + } + // Run SDL_Quit when main returns + atexit(SDL_Quit); + + window = SDL_CreateWindow("Ass", + SDL_WINDOWPOS_UNDEFINED, // Spawn the window at random (undefined) x and y coordinates + SDL_WINDOWPOS_UNDEFINED, // + SCREEN_WIDTH, + SCREEN_HEIGHT, + SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL +#ifdef FULLSCREEN + | SDL_WINDOW_FULLSCREEN +#endif // FULLSCREEN + ); + + if(window==NULL){ + std::cout << "The window failed to generate! SDL_Error: " << SDL_GetError() << std::endl; + return -1; + } + + if((mainGLContext = SDL_GL_CreateContext(window)) == NULL){ + std::cout << "The OpenGL context failed to initialize! SDL_Error: " << SDL_GetError() << std::endl; + return -1; + } + + + GLenum err; + glewExperimental = GL_TRUE; + if((err=glewInit()) != GLEW_OK){ + std::cout << "GLEW was not able to initialize! Error: " << glewGetErrorString(err) << std::endl; + return -1; + } + + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + + glViewport(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + + bool gameRunning = true; + while(gameRunning){ + + } + SDL_GL_DeleteContext(mainGLContext); + SDL_DestroyWindow(window); + return 0; +}
\ No newline at end of file diff --git a/include/common.h b/include/common.h index 25d5abf..b0ffec7 100644 --- a/include/common.h +++ b/include/common.h @@ -24,6 +24,7 @@ #include <string> #include <fstream> + #ifdef __WIN32__ typedef unsigned int uint; #undef near @@ -215,7 +215,7 @@ typedef enum { RAIN } WEATHER; -#define DAY_CYCLE 10000 +#define DAY_CYCLE 3000 static WEATHER weather = SUNNY; static vec2 star[100]; @@ -369,7 +369,7 @@ int main(int argc, char *argv[]){ fragShader = glCreateShader(GL_FRAGMENT_SHADER); - std::string shaderFileContents = readFile("test.frag"); + std::string shaderFileContents = readFile("shader.frag"); const GLchar *shaderSource = shaderFileContents.c_str(); GLint bufferln = GL_FALSE; @@ -742,6 +742,21 @@ void render(){ currentWorld->draw(player); #ifdef SHADERS +<<<<<<< Updated upstream + glUseProgramObjectARB(shaderProgram); + glUniform2f(glGetUniformLocation(shaderProgram, "lightLocation"), 640,100); + glUniform3f(glGetUniformLocation(shaderProgram, "lightColor"), 1,1,1); + glUniform1f(glGetUniformLocation(shaderProgram, "lightStrength"), 100 + (1000-(shade*10))); + std::cout << 100 + (1000-(shade*10)) << std::endl; + //glBlendFunc(GL_ONE, GL_ONE); + #endif //SHADERS + + glColor4ub(0,0,0,200); + glRectf(offset.x-SCREEN_WIDTH/2,0,offset.x+SCREEN_WIDTH/2,SCREEN_HEIGHT); + + #ifdef SHADERS +======= +>>>>>>> Stashed changes glUseProgramObjectARB(0); #endif //SHADERS diff --git a/shader.frag b/shader.frag index 83c8bdc..6f90a5f 100644 --- a/shader.frag +++ b/shader.frag @@ -2,12 +2,19 @@ uniform vec2 lightLocation;
uniform vec3 lightColor;
+uniform float lightStrength;
uniform float screenHeight;
+uniform vec2 rayStart;
+uniform vec2 rayEnd;
+
+uniform sampler2D tex;
+uniform vec2 resolution;
+
void main(){
float distance = length(lightLocation - gl_FragCoord.xy);
- float attenuation = 3.0 / distance;
- vec4 color = vec4(attenuation, attenuation, attenuation, pow(attenuation, 3)) * vec4(lightColor, 1);
+ float attenuation = lightStrength / distance;
+ vec4 color = vec4(0, 0, 0, 0.8f - pow(attenuation, 3)) * vec4(lightColor, 1);
gl_FragColor = color;
}
\ No newline at end of file |