1
0
Fork 0
spectre/include/Spectre/Display/GLContext.h
2016-02-17 13:28:32 +01:00

46 lines
1.3 KiB
C++

#ifndef DISPLAY_GLCONTEXT_H
#define DISPLAY_GLCONTEXT_H
#include <Spectre/Math/Vector2.h>
class PlatformDisplay;
// Platform independant interface for OpenGL Contexts.
class GLContext
{
public :
static GLContext* create();
virtual ~GLContext();
// Create a GLContext for this perticular display.
virtual bool create(const PlatformDisplay* display) = 0;
virtual void destroy() = 0;
// Activate this context.
virtual bool activate() = 0;
// Deactivate this context.
virtual bool deactivate() = 0;
// Returns true if this context is the active one. false otherwise.
// There can only be one GL context active per thread.
virtual bool isActive() const = 0;
// Set the interval for when the front and back framebuffers should be swapped.
// The interval is the number of v-blanks that the gpu must wait before swapping buffers.
// 0 means that the gpu never waits, 1 means after exactly 1 v-blank and so on.
// This is usually refered to as enabling/disabling vertical synchronization.
virtual bool setSwapInterval(int interval) = 0;
// Set the size of the pixel buffer.
virtual void setSize(unsigned int width, unsigned int height) = 0;
// Swap front with back buffer and vice versa.
virtual void swapBuffers() = 0;
};
#endif /* DISPLAY_GLCONTEXT_H */