diff options
| author | lbavoil <[email protected]> | 2016-03-25 13:01:54 +0100 |
|---|---|---|
| committer | lbavoil <[email protected]> | 2016-03-25 13:01:54 +0100 |
| commit | 99174e4e5fb4b7079da80b35a6dfd68f3fd56a1c (patch) | |
| tree | fbcd4260d6c953d569a887505336a1c3f202e10f /src/AppState_GL.h | |
| download | hbaoplus-99174e4e5fb4b7079da80b35a6dfd68f3fd56a1c.tar.xz hbaoplus-99174e4e5fb4b7079da80b35a6dfd68f3fd56a1c.zip | |
GFSDK_HBAO+_distro_r3.0_cl20573789
Diffstat (limited to 'src/AppState_GL.h')
| -rw-r--r-- | src/AppState_GL.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/AppState_GL.h b/src/AppState_GL.h new file mode 100644 index 0000000..6ef03b2 --- /dev/null +++ b/src/AppState_GL.h @@ -0,0 +1,88 @@ +/* +* Copyright (c) 2008-2016, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "Common.h" + +namespace GFSDK +{ +namespace SSAO +{ +namespace GL +{ + +#if SUPPORT_GL + +//-------------------------------------------------------------------------------- +class AppState +{ +public: + AppState() + { + memset(this, 0, sizeof(*this)); + } + + void EnableState(const GFSDK_SSAO_GLFunctions& GL, GLboolean IsEnabled, GLenum Cap) + { + if (IsEnabled) + { + GL.glEnable(Cap); + } + else + { + GL.glDisable(Cap); + } + } + + void Save(const GFSDK_SSAO_GLFunctions& GL); + void Restore(const GFSDK_SSAO_GLFunctions& GL); + +private: + GLint m_DrawFBO; + GLint m_VAO; + + GLint m_ContextUBO; + GLint m_BindPointUBOs[3]; + + GLint m_ActiveTexture; + GLint m_TextureBinding2D; + GLint m_TextureBinding2DArray; + + GLint m_Program; + + GLint m_Viewport[4]; + GLfloat m_PolygonOffsetFactor; + GLfloat m_PolygonOffsetUnits; + + GLboolean m_CullFace; + GLboolean m_ScissorTest; + GLboolean m_Multisample; + GLboolean m_DepthTest; + GLboolean m_StencilTest; + GLboolean m_ColorLogicOp; + GLboolean m_SampleCoverage; + GLboolean m_SampleAlphaToCoverage; + + GLboolean m_Blend; + GLint m_BlendSrcRGB; + GLint m_BlendDstRGB; + GLint m_BlendSrcAlpha; + GLint m_BlendDstAlpha; + GLint m_BlendEquationRGB; + GLint m_BlendEquationAlpha; + GLfloat m_BlendColor[4]; + GLboolean m_ColorWriteMask[4]; +}; + +#endif // SUPPORT_GL + +} // namespace GL +} // namespace SSAO +} // namespace GFSDK |