break;
case SDLK_LSHIFT:
timeshift = true;
- Graphix::enableEffects(EF_MOTION_BLUR);
+ Graphix::enableEffects(EF_MOTION_BLUR_ACC);
break;
default:
break;
{
case SDLK_LSHIFT:
timeshift = false;
- Graphix::disableEffects(EF_MOTION_BLUR);
+ Graphix::disableEffects(EF_MOTION_BLUR_ACC);
break;
default:
break;
\r
#include "Graphix\Shader.h"\r
#include "Graphix\Graphix.h"\r
-#include "Graphix\Texture.h"\r
+#include "Graphix\Textures.h"\r
#include "Fps.h"\r
#include "Events.h"\r
\r
void Graphix::init()\r
{\r
\r
+ /*SDL INIT*/\r
if (SDL_Init(sdlFlags) != 0)\r
{\r
Message::error((string)"SDL_Init: " + SDL_GetError());\r
\r
sdl_glcontext = SDL_GL_CreateContext(sdl_window);\r
\r
+ SDL_ShowCursor(SDL_DISABLE);\r
+\r
+\r
+ /*OpenGL INIT*/\r
GLenum err = glewInit();\r
if (err != GLEW_OK)\r
{\r
}\r
#endif\r
\r
- SDL_ShowCursor(SDL_DISABLE);\r
\r
glEnable(GL_DEPTH_TEST);\r
\r
void Graphix::clear()\r
{\r
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r
- if (testEffect(EF_MOTION_BLUR))\r
+\r
+ if (testEffect(EF_MOTION_BLUR_ACC))\r
{\r
glAccum(GL_RETURN, MOTION_BLUR_INTENS);\r
glClear(GL_ACCUM_BUFFER_BIT);\r
\r
void Graphix::swap()\r
{\r
- if (testEffect(EF_MOTION_BLUR))\r
+ if (testEffect(EF_MOTION_BLUR_ACC))\r
glAccum(GL_ACCUM, MOTION_BLUR_COEFF);\r
+\r
SDL_GL_SwapWindow(sdl_window);\r
}\r
\r
enum Effects {
EF_NOTHING = 0,
- EF_MOTION_BLUR = BIT(1),
+ EF_MOTION_BLUR_ACC = BIT(1),
EF_TRANSPARENCY = BIT(2),
EF_BLOOM = BIT(3)
};
//#include "Model\IMetaMesh.h"
//#include "Model\SkyBox.h"
//#include "Model\BBox.h"
+#include "Model\Plane.h"
useModel(mat4(1.f));
Shader::gActive()->setUniformLocation("uPlain", 1);
+ Shader::gActive()->setUniformLocation("uFar", 0);
- glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+ glDrawArrays(GL_QUADS, 0, 4);
glBindVertexArray(0);
}
void Plane::bt_init(bool isConvex)
{
if(bt_collision_shape==nullptr)
- bt_collision_shape = new btBoxShape(btVector3(.5f, .5f, .001f));
+ bt_collision_shape = new btBoxShape(btVector3(.5f, .5f, .01f));
}
\r
useModel(_modelMat);\r
\r
+ Shader::gActive()->setUniformLocation("uPlain", 0);\r
Shader::gActive()->setUniformLocation("uFar", 1);\r
\r
Model::drawModel();\r
+++ /dev/null
-#include "Texture.h"
-#include <GL\glew.h>
-#include "FreeImage.h"
-#include <iostream>
-#include "../GLM.h"
-
-#include "../Message.h"
-#include "Graphix.h"
-#include "Shader.h"
-
-using std::string;
-using std::unordered_map;
-
-
-Texture::Texture(const string& _path, const vec4& _material) : path(_path), handle(-1), TEXTURE_TYPE(-1), material(_material)
-{
- //Message::info("Error from before?");
- //Graphix::getGlError();
- //Message::info("Do some Stuff");
-
-
- texHandle& t_ptr = texture_Map[_path];
-
- if (t_ptr.handle >= 0)
- {
- handle = t_ptr.handle;
- return;
- }
-
- glGenTextures(1, &handle);
-
- auto path_type = path.substr(path.find_last_of("_")+1);
- path_type = path_type.substr(0, path_type.find_first_of("."));
-
- if (path_type == "CUBE")
- {
- TEXTURE_TYPE = GL_TEXTURE_CUBE_MAP;
- }
- else if (path_type == "2D")
- {
- TEXTURE_TYPE = GL_TEXTURE_2D;
- }
- else
- {
- Message::info("Texture : Undefined Type, was set to default (2D)");
- TEXTURE_TYPE = GL_TEXTURE_2D;
- }
- glBindTexture(TEXTURE_TYPE, handle);
-
- FREE_IMAGE_FORMAT format = FreeImage_GetFileType(("../textures/" + path).c_str());//Automatocally detects the format
- if (format == FIF_UNKNOWN)
- {
- Message::error("Texture: Couldn't detect texture file format.");
- }
- FIBITMAP* data = FreeImage_Load(format, ("../textures/" + path).c_str());
- if (!data)
- {
- Message::error("Texture: Couldn't read texture file.");
- }
-
- //FIBITMAP* temp = data;
- data = FreeImage_ConvertTo32Bits(data);
- if (!data)
- {
- Message::error("Texture: Couldn't convert texture file to bit format.");
- }
- //FreeImage_Unload(temp);
-
- unsigned int width = FreeImage_GetWidth(data);
- unsigned int height = FreeImage_GetHeight(data);
-
- //unsigned int width, height;
-
- //FIBITMAP *data = FreeImage_Load(FIF_PNG, path.c_str(), PNG_DEFAULT);
- //Graphix::getGlError();
-// if (TEXTURE_TYPE == GL_TEXTURE_2D)
- {
- glTexImage2D(TEXTURE_TYPE, 0, GL_RGBA8, width, height, 0, GL_BGRA, GL_UNSIGNED_BYTE, (GLvoid*)FreeImage_GetBits(data));
- //Message::info("TexImage");
- //Graphix::getGlError();
- //Message::info("Other Stuff");
- glGenerateMipmap(TEXTURE_TYPE);
- }
-// else if (TEXTURE_TYPE == GL_TEXTURE_CUBE_MAP)
-
-
- glTexParameteri(TEXTURE_TYPE, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
- glTexParameteri(TEXTURE_TYPE, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- if (TEXTURE_TYPE == -1)
- {
- glTexParameteri(TEXTURE_TYPE, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(TEXTURE_TYPE, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glTexParameteri(TEXTURE_TYPE, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
- }
-
- t_ptr.handle = handle;
- //Graphix::getGlError();
- //Message::info("Done");
-
-}
-
-Texture::~Texture()
-{
- glDeleteTextures(1, &handle);
-}
-
-Texture* Texture::newTexture(const string& _path, const vec4& _material)
-{
- texHandle& t_ptr = texture_Map[_path];
-
- if (t_ptr.ptr == nullptr)
- {
- t_ptr.ptr = new Texture(_path, _material);
- }
-
- ++t_ptr.count;
-
- return t_ptr.ptr;
-}
-
-void Texture::deleteTexture(const string& _path)
-{
- texHandle& t_ptr = texture_Map[_path];
-
- if (t_ptr.ptr == nullptr)
- {
- Message::warning("deleteTexture: " + _path + " doesn't exist.");
- return;
- }
-
- --t_ptr.count;
-
- if (!t_ptr.count)
- {
- delete t_ptr.ptr;
- texture_Map.erase(_path);
- }
-}
-
-void Texture::useTexture() const
-{
-
- /* bind Texture*/
- int unit = 0;
- glActiveTexture(GL_TEXTURE0 + unit);
- glBindTexture(TEXTURE_TYPE, handle);
-
- Shader::gActive()->setUniformLocation("uColorTexture", unit);
-
- /* bind Material*/
- Shader::gActive()->setUniformLocation("material", material);
-}
-
-Texture::operator string() const
-{
- return path;
-}
-
-unordered_map<string, Texture::texHandle> Texture::texture_Map;
\ No newline at end of file
+++ /dev/null
-#pragma once
-
-#include "../GLM.h"
-
-#include <string>
-#include <unordered_map>
-
-class Texture
-{
-public:
- static Texture* newTexture(const std::string& path, const vec4& material);
- static void deleteTexture(const std::string& path);
-
- virtual void useTexture() const;
-
- operator std::string() const;
-
-private:
- Texture(const std::string& path, const vec4& material);
- ~Texture();
-
- unsigned int handle;
- std::string path;
- unsigned int TEXTURE_TYPE;
-
- typedef struct texStruct
- {
- int handle=-1;
- unsigned int count=0;
- Texture* ptr=nullptr;
- } texHandle;
-
- vec4 material;
-
- static std::unordered_map<std::string, texHandle> texture_Map;
-};
\ No newline at end of file
--- /dev/null
+#pragma once
+
+#include "Textures/Texture.h"
+//#include "Textures\tImage.h"
+#include "Textures\tBuffer.h"
--- /dev/null
+#include "Texture.h"
+#include <GL\glew.h>
+
+#include "../../Message.h"
+
+#include "tImage.h"
+
+using std::string;
+using std::unordered_map;
+
+
+Texture::Texture()
+ : texture_internal(GL_RGB16F), texture_format(GL_RGB),texture_target(GL_TEXTURE_2D),texture_type(GL_FLOAT)
+{
+ glGenTextures(1, &handle);
+}
+
+Texture::~Texture()
+{
+ glDeleteTextures(1, &handle);
+}
+
+Texture* Texture::newTImage(const string& _path, const vec4& _material)
+{
+ texHandle& t_ptr = texture_Map[_path];
+
+ if (t_ptr.ptr == nullptr)
+ {
+ t_ptr.ptr = new tImage(_path, _material);
+ handle_Map[t_ptr.ptr->handle] = &t_ptr;
+ }
+
+ ++t_ptr.count;
+
+ return t_ptr.ptr;
+}
+
+void Texture::deleteTImage(unsigned int _handle)
+{
+ texHandle& t_ptr = *handle_Map[_handle];
+
+ if (t_ptr.ptr == nullptr)
+ {
+ Message::warning("deleteTexture: Image doesn't exist.");
+ return;
+ }
+
+ --t_ptr.count;
+
+ if (!t_ptr.count)
+ {
+ texture_Map.erase(*t_ptr.ptr);
+ //delete t_ptr.ptr;
+ }
+}
+
+unsigned int Texture::getTTarget() const
+{
+ return texture_target;
+}
+
+
+Texture::operator unsigned int() const
+{
+ return handle;
+}
+
+void Texture::bindTexture()
+{
+ glBindTexture(texture_target, handle);
+
+ glTexParameteri(texture_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ glTexParameteri(texture_target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+ glTexParameteri(texture_target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(texture_target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ //glTexParameteri(texture_target, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
+
+ glTexImage2D(texture_target, 0, texture_internal, width, height, 0, texture_format, texture_type, data);
+}
+
+void Texture::unbindTexture()
+{
+ glDeleteTextures(1, &handle);
+ glGenTextures(1, &handle);
+}
+
+void Texture::useTexture() const
+{
+
+ /* bind Texture*/
+ int unit = 0;
+ glActiveTexture(GL_TEXTURE0 + unit);
+ glBindTexture(texture_target, handle);
+}
+
+void Texture::updateSize(unsigned int _width, unsigned int _height)
+{
+ width = _width;
+ height = _height;
+
+ glBindTexture(texture_target, handle);
+ glTexImage2D(texture_target, 0, texture_internal, width, height, 0, texture_format, texture_type, data);
+}
+
+
+unordered_map<string, Texture::texHandle> Texture::texture_Map;
+unordered_map<unsigned int, Texture::texHandle*> Texture::handle_Map;
\ No newline at end of file
--- /dev/null
+#pragma once
+
+#include "../../GLM.h"
+
+#include <string>
+#include <unordered_map>
+
+class tImage;
+
+class Texture
+{
+public:
+ static Texture* newTImage(const std::string& path, const vec4& material);
+ static void deleteTImage(const unsigned int handle);
+
+ Texture();
+ ~Texture();
+
+ virtual void bindTexture();
+ virtual void unbindTexture();
+ virtual void useTexture() const;
+
+ virtual void updateSize(unsigned int width, unsigned int height);
+
+ virtual operator unsigned int() const;
+
+ unsigned int getTTarget() const;
+
+protected:
+ unsigned int handle;
+
+ unsigned int texture_target;
+ unsigned int texture_internal;
+ unsigned int texture_format;
+ unsigned int texture_type;
+
+ void* data = nullptr;
+
+ unsigned int width = 0, height = 0;
+
+
+ typedef struct texStruct
+ {
+ unsigned int count=0;
+ tImage* ptr=nullptr;
+ } texHandle;
+
+ static std::unordered_map<std::string, texHandle> texture_Map;
+ static std::unordered_map<unsigned int, texHandle*> handle_Map;
+};
\ No newline at end of file
--- /dev/null
+#include "tBuffer.h"
+
+#include <GL\glew.h>
+#include "../Shader.h"
+
+
+tBuffer::tBuffer(unsigned int _dim)
+{
+ buffer_target = GL_FRAMEBUFFER;
+
+ /*gen Buffer*/
+ glGenBuffers(1, &handle);
+
+
+ /*gen Texture*/
+ textures = new Texture[_dim];
+}
+
+
+tBuffer::~tBuffer()
+{
+ delete textures;
+ glDeleteBuffers(1, &handle);
+}
+
+tBuffer::operator unsigned int() const
+{
+ return handle;
+}
+
+unsigned int tBuffer::getDim() const
+{
+ return dim;
+}
+
+Texture* tBuffer::getTexture(unsigned int i) const
+{
+ return &textures[i];
+}
+
+void tBuffer::bindBuffer()
+{
+ glBindFramebuffer(buffer_target, handle);
+ for (unsigned int i = 0; i < dim; i++)
+ {
+ textures[i].bindTexture();
+ glFramebufferTexture2D(buffer_target, GL_COLOR_ATTACHMENT0 + i, textures[i].getTTarget(), textures[i], 0);
+ }
+
+}
+
+void tBuffer::unbindBuffer()
+{
+ for (unsigned int i = 0; i < dim; i++)
+ {
+ textures[i].unbindTexture();
+ }
+ glDeleteBuffers(1, &handle);
+ glGenBuffers(1, &handle);
+
+}
+
+void tBuffer::useBuffer() const
+{
+ glBindFramebuffer(buffer_target, handle);
+}
\ No newline at end of file
--- /dev/null
+#pragma once
+#include "Texture.h"
+
+class tBuffer
+{
+public:
+ tBuffer(unsigned int dim=1);
+ virtual ~tBuffer();
+
+ virtual void bindBuffer();
+ virtual void unbindBuffer();
+ virtual void useBuffer() const;
+
+ operator unsigned int() const;
+
+ unsigned int getDim() const;
+ Texture* getTexture(unsigned int i = 0) const;
+
+ unsigned int dim;
+ Texture* textures = nullptr;
+protected:
+ unsigned int handle;
+ unsigned int buffer_target;
+
+
+
+};
+
--- /dev/null
+#include "tImage.h"
+
+#include <GL\glew.h>
+#include "../Shader.h"
+#include "FreeImage.h"
+
+
+#include "../../Message.h"
+
+using std::string;
+
+tImage::tImage(const string& _path, const vec4& _material) : path(_path), material(_material)
+{
+ auto path_type = _path.substr(_path.find_last_of("_") + 1);
+ path_type = path_type.substr(0, path_type.find_first_of("."));
+
+ if (path_type == "CUBE")
+ {
+ texture_target = GL_TEXTURE_CUBE_MAP;
+ }
+ else if (path_type == "2D")
+ {
+ texture_target = GL_TEXTURE_2D;
+ }
+ else
+ {
+ Message::info("Texture : Undefined Type, was set to default (2D)");
+ }
+
+ format = FreeImage_GetFileType(("../textures/" + _path).c_str());
+ if (format == FIF_UNKNOWN)
+ {
+ Message::error("Texture: Couldn't detect texture file format.");
+ }
+
+ texture_internal = GL_RGBA8;
+ texture_format = GL_BGRA;
+ texture_type = GL_UNSIGNED_BYTE;
+
+ loadImage(path);
+}
+
+
+tImage::~tImage()
+{
+ FreeImage_Unload((FIBITMAP*)data);
+}
+
+void tImage::bindTexture()
+{
+
+ Texture::bindTexture();
+ glGenerateMipmap(texture_target);
+
+}
+
+void tImage::useTexture() const
+{
+
+ /* bind Texture*/
+ int unit = 0;
+ glActiveTexture(GL_TEXTURE0 + unit);
+ glBindTexture(texture_target, handle);
+
+ Shader::gActive()->setUniformLocation("uColorTexture", unit);
+
+ /* bind Material*/
+ Shader::gActive()->setUniformLocation("material", material);
+}
+
+
+void tImage::loadImage(const std::string & _path)
+{
+
+ FIBITMAP* data = FreeImage_Load(format, ("../textures/" + path).c_str());
+ if (!data)
+ {
+ Message::error("Texture: Couldn't read texture file.");
+ }
+
+ data = FreeImage_ConvertTo32Bits(data);
+ if (!data)
+ {
+ Message::error("Texture: Couldn't convert texture file to bit format.");
+ }
+
+ width = FreeImage_GetWidth(data);
+ height = FreeImage_GetHeight(data);
+
+ Texture::data = (GLvoid*)FreeImage_GetBits(data);
+}
+
+
+tImage::operator std::string() const
+{
+ return path;
+}
\ No newline at end of file
--- /dev/null
+#pragma once
+#include "Texture.h"
+
+#include "../../GLM.h"
+#include <string>
+
+enum FREE_IMAGE_FORMAT;
+
+class tImage :
+ public Texture
+{
+public:
+ tImage(const std::string& path, const vec4& material);
+ virtual ~tImage();
+
+ virtual void bindTexture() override;
+ virtual void useTexture() const override;
+
+ operator std::string() const;
+
+protected:
+ void loadImage(const std::string& path);
+
+ vec4 material;
+
+ std::string path;
+ FREE_IMAGE_FORMAT format;
+};
+
#include "../Graphix/Model.h"
#include "../Events.h"
-#include "../Graphix/Texture.h"
+#include "../Graphix/Textures.h"
#include "../Message.h"
#include "../Graphix/Graphix.h"
#include "../Graphix/Shader.h"
-#include "../Graphix/Texture.h"
+#include "../Graphix/Textures.h"
#include "../Graphix/Model.h"
#include "../Message.h"
}
if (texturepath != "")
- texture = Texture::newTexture(texturepath, _material);
+ {
+ texture = Texture::newTImage(texturepath, _material);
+ texture->bindTexture();
+ }
+
if (texturepath == "model_duck_2D.png")
{
//Graphix::getGlError();
//modelID = _shader->getUniformLocation("modelMat");
if (texturepath != "")
- texture = Texture::newTexture(texturepath, _material);
+ {
+ texture = Texture::newTImage(texturepath, _material);
+ texture->bindTexture();
+ }
+
//Message::info("Creating SkyBox Shader");
//Graphix::getGlError();
if (texturepath == "model_duck_2D.png")
{
collide_group = COL_ENEMY;
- collision = Model::getBBoxModel();
}
+ collision = Model::getBBoxModel();
+
model->bindModel();
model->bindShader(shader);
//Message::info("Binding Shader");
if (texture!=nullptr)
- Texture::deleteTexture(*texture);
+ Texture::deleteTImage(*texture);
if (newModel)
{
#include "../Graphix/Shader.h"
#include "../Graphix/Model.h"
-#include "../Graphix/Texture.h"
+#include "../Graphix/Textures.h"
#include "../GLM.h"
<ClCompile Include="Graphix\Model\Plane.cpp" />\r
<ClCompile Include="Graphix\Model\SkyBox.cpp" />\r
<ClCompile Include="Graphix\PointLight.cpp" />\r
+ <ClCompile Include="Graphix\Textures\tBuffer.cpp" />\r
+ <ClCompile Include="Graphix\Textures\Texture.cpp" />\r
<ClCompile Include="Scene\EventBox.cpp" />\r
<ClCompile Include="Scene\Level.cpp" />\r
<ClCompile Include="Scene\Marvin.cpp" />\r
<ClCompile Include="Scene\Scene.cpp" />\r
<ClCompile Include="Scene\SceneObject.cpp" />\r
<ClCompile Include="Graphix\Shader.cpp" />\r
- <ClCompile Include="Graphix\Texture.cpp" />\r
<ClCompile Include="Graphix\ViewPort.cpp" />\r
<ClCompile Include="main.cpp" />\r
<ClCompile Include="Message.cpp" />\r
<ClCompile Include="Scene\Sky.cpp" />\r
<ClCompile Include="Scene\Timestamp.cpp" />\r
+ <ClCompile Include="Graphix\Textures\tImage.cpp" />\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="Average.h" />\r
<ClInclude Include="Graphix\Model\Plane.h" />\r
<ClInclude Include="Graphix\Model\SkyBox.h" />\r
<ClInclude Include="Graphix\PointLight.h" />\r
+ <ClInclude Include="Graphix\Textures.h" />\r
+ <ClInclude Include="Graphix\Textures\tBuffer.h" />\r
+ <ClInclude Include="Graphix\Textures\Texture.h" />\r
<ClInclude Include="Scene.h" />\r
<ClInclude Include="Scene\EventBox.h" />\r
<ClInclude Include="Scene\Level.h" />\r
<ClInclude Include="Scene\Scene.h" />\r
<ClInclude Include="Scene\SceneObject.h" />\r
<ClInclude Include="Graphix\Shader.h" />\r
- <ClInclude Include="Graphix\Texture.h" />\r
<ClInclude Include="Graphix\ViewPort.h" />\r
<ClInclude Include="Message.h" />\r
<ClInclude Include="Scene\Sky.h" />\r
<ClInclude Include="Scene\Timestamp.h" />\r
+ <ClInclude Include="Graphix\Textures\tImage.h" />\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets">\r
<ClCompile Include="Graphix\Shader.cpp">\r
<Filter>Source Files</Filter>\r
</ClCompile>\r
- <ClCompile Include="Graphix\Texture.cpp">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
<ClCompile Include="Graphix\ViewPort.cpp">\r
<Filter>Source Files</Filter>\r
</ClCompile>\r
<ClCompile Include="Graphix\Model\Plane.cpp">\r
<Filter>Source Files</Filter>\r
</ClCompile>\r
+ <ClCompile Include="Graphix\Textures\Texture.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="Graphix\Textures\tImage.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="Graphix\Textures\tBuffer.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="Fps.h">\r
<ClInclude Include="Graphix\Shader.h">\r
<Filter>Header Files</Filter>\r
</ClInclude>\r
- <ClInclude Include="Graphix\Texture.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
<ClInclude Include="Graphix\ViewPort.h">\r
<Filter>Header Files</Filter>\r
</ClInclude>\r
<ClInclude Include="Graphix\Model\Plane.h">\r
<Filter>Header Files</Filter>\r
</ClInclude>\r
+ <ClInclude Include="Graphix\Textures.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Graphix\Textures\Texture.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Graphix\Textures\tImage.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Graphix\Textures\tBuffer.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
out vec4 gl_FragColor;
uniform sampler2D u_texture;
-uniform bool uHorizontal;
+uniform bool uHorizontal = true;
uniform bool uSymetric = true;
uniform float weight[5] = float[](0.2270270270, 0.1945945946, 0.1216216216, 0.0540540541, 0.0162162162);