[gens-sdl] GLShaderFastBlur: Ported the Fast Blur shader from gens-qt4.
authorDavid Korth <gerbilsoft@gerbilsoft.com>
Wed, 2 Sep 2015 01:26:52 +0000 (21:26 -0400)
committerDavid Korth <gerbilsoft@gerbilsoft.com>
Wed, 2 Sep 2015 01:26:52 +0000 (21:26 -0400)
commit698909990bc58dad7edd9cd83e2d6bd68c35c7bd
tree2d7ec748699738765165ee31c2df12d5b6083ed8
parentc53017c49d2434ea79df0f2d84b8d4ea896c7708
[gens-sdl] GLShaderFastBlur: Ported the Fast Blur shader from gens-qt4.

This includes the GLShader base class.

There's a few differences between the gens-sdl version and the
original gens-qt4 version:

- GLEW is no longer conditional. There's no point in supporting
  a build without GLEW, since GLEW makes GL feature detection
  much easier.

- GLBackend handles the shaders directly, instead of using
  a separate GLShaderManager class.

- init() and end() return error codes, as do enable() and disable().

- The two shader name variables have been combined into a single
  variable, m_shaderName. Only one type of each shader can be in
  use at any given time, so there's no point in reserving memory
  for both the ARB fp name and the ATi fragment shader name.

- GLShaderFastBlur: The actual fragment program text is now stored
  in a private class, using const char[] instead of const char *const.
  This reduces memory usage by one pointer.

- sizeof() is used to determine the program size. Note that the NULL
  terminator should not be included. NVIDIA's Windows driver refuses
  to compile the shader if it is included; Mesa's r300g driver doesn't
  care if it is or not.
src/gens-sdl/CMakeLists.txt
src/gens-sdl/GLBackend.cpp
src/gens-sdl/GLShader.cpp [new file with mode: 0644]
src/gens-sdl/GLShader.hpp [new file with mode: 0644]
src/gens-sdl/GLShaderFastBlur.cpp [new file with mode: 0644]
src/gens-sdl/GLShaderFastBlur.hpp [new file with mode: 0644]