#pragma once #include "BsGLPrerequisites.h" namespace BansheeEngine { /** * @brief Abstract class that encapsulated an OpenGL context. Each platform * should provide its own GLContext specialization. */ class BS_RSGL_EXPORT GLContext { public: GLContext(); virtual ~GLContext(); /** * @brief Activates the rendering context (all subsequent rendering commands will be executed on it). */ virtual void setCurrent() = 0; /** * @brief Deactivates the rendering context. Normally called just before setCurrent is called on another context. */ virtual void endCurrent() = 0; /** * @brief Releases the render context, freeing all of its resources. */ virtual void releaseContext() {} }; }