#pragma once #include "BsWin32Prerequisites.h" #include "BsGLContext.h" namespace BansheeEngine { /** * @brief Windows specific implementation of an OpenGL context. */ class BS_RSGL_EXPORT Win32Context : public GLContext { public: /** * @brief Constructs a new context from a Windows device context and OpenGL rendering context. * Optionally you may specify that the context isn't owned by us (might be created by some external * library), in which case it will not be automatically released. */ Win32Context(HDC hdc, HGLRC glrc, bool ownsContext); virtual ~Win32Context(); /** * @copydoc GLContext::setCurrent */ virtual void setCurrent(); /** * @copydoc GLContext::endCurrent */ virtual void endCurrent(); /** * @copydoc GLContext::releaseContext */ virtual void releaseContext(); protected: HDC mHDC; HGLRC mGlrc; bool mOwnsContext; }; }