namespace glw
Overview
OpenGL wrapper library namespace. Provides simplified interface for using OpenGL features. More…
namespace glw { // typedefs typedef TAttrib<gl::GLenum::GL_FLOAT, 1> Attrib1f; typedef TAttrib<gl::GLenum::GL_FLOAT, 2> Attrib2f; typedef TAttrib<gl::GLenum::GL_FLOAT, 3> Attrib3f; typedef TAttrib<gl::GLenum::GL_FLOAT, 4> Attrib4f; typedef TAttrib<gl::GLenum::GL_INT, 1> Attrib1i; typedef TAttrib<gl::GLenum::GL_INT, 2> Attrib2i; typedef TAttrib<gl::GLenum::GL_INT, 3> Attrib3i; typedef TAttrib<gl::GLenum::GL_INT, 4> Attrib4i; typedef std::shared_ptr<class ArrayObject> PArrayObject; typedef std::shared_ptr<class FrameBuffer> PFrameBuffer; typedef std::shared_ptr<class Shader> PShader; typedef std::shared_ptr<class Program> PProgram; typedef std::shared_ptr<class ProgramList> PProgramList; typedef std::shared_ptr<class Texture> PTexture; typedef std::shared_ptr<class Texture2D> PTexture2D; typedef std::shared_ptr<class Texture2dMultisample> PTexture2dMultisample; typedef std::shared_ptr<UniformBuffer<T>> PUniformBuffer; // enums enum ColorType; enum DataUsage; enum DepthDataFormat; enum DrawMode; enum Filtering; enum ShaderType; enum Wrapping; // structs struct Attrib; struct ShaderPipeline; template <gl::GLenum T, uint32_t N> struct TAttrib; // classes class ArrayObject; class FrameBuffer; class HiddenWindow; class Program; class ProgramList; class Shader; class Texture; class Texture2D; class Texture2dMultisample; template <typename T> class UniformBuffer; class Window; class WindowEventObserver; // global functions GLW_API std::string GetShaderBuildDirectory(); GLW_API void SetShaderBuildDirectory(const std::string& directory); GLW_API glw::PShader BuildShader(std::string filename, const glw::Shader::ReplaceMap replace_map); GLW_API glw::ShaderType GetShaderTypeFromFileName(const std::string& filename); GLW_API gl::GLenum ColorFormat(const ColorType color_data_type, const uint8_t channels); GLW_API bool IsOpenGLInitialized(); GLW_API std::string GetError(); GLW_API std::string GetOpenGlVendor(); GLW_API std::string GetOpenGlRenderer(); GLW_API std::string GetOpenGlVersion(); GLW_API utils::Version GetCurrentOpenGlVersion(); glw::PTexture2D SumDiffTextures(const glw::PTexture2D& texture1, const glw::PTexture2D& texture2, const glw::FrameBuffer::Settings& framebuffer_settings, const bool summation); glw::PTexture2D SumTextures(const glw::PTexture2D& texture1, const glw::PTexture2D& texture2, const glw::FrameBuffer::Settings& framebuffer_settings); glw::PTexture2D DiffTextures(const glw::PTexture2D& texture1, const glw::PTexture2D& texture2, const glw::FrameBuffer::Settings& framebuffer_settings); } // namespace glw
Detailed Documentation
OpenGL wrapper library namespace. Provides simplified interface for using OpenGL features.
Global Functions
GLW_API std::string GetShaderBuildDirectory()
Returns directory path where function BuildShader looks for shader files. Can be changed by calling SetShaderBuildDirectory.
GLW_API void SetShaderBuildDirectory(const std::string& directory)
Changes directory path where function BuildShader looks for shader files.
GLW_API glw::PShader BuildShader(std::string filename, const glw::Shader::ReplaceMap replace_map)
Builds shader file using extended build system, which supports file including, error checks, etc.
Parameters:
filename |
Name of shader file, which is looked for in directory set by SetShaderBuildDirectory. |
replace_map |
Searches for all occurrences of specified replacement pairs and replaces them. |
GLW_API glw::ShaderType GetShaderTypeFromFileName(const std::string& filename)
Creates ShaderType from extension of specified shader file name.
GLW_API gl::GLenum ColorFormat(const ColorType color_data_type, const uint8_t channels)
Creates OpenGL color format from desired data type per channel, and desired number of channels.
GLW_API bool IsOpenGLInitialized()
Returns true when OpenGL was initialized.
GLW_API std::string GetError()
Returns all errors generated by OpenGL since last time this function was called.
GLW_API utils::Version GetCurrentOpenGlVersion()
Get OpenGL version actually active on system.