Base Framework
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
OpenGLContext Class Reference

OpenGL rendering context. More...

#include <base/opengl/OpenGLContext.h>

Inherits WindowImpl, and OpenGLContextImpl.

Public Member Functions

 OpenGLContext (const Position &position, const Dimension &dimension, const Format &format)
 
void onDisplay () noexcept
 
void onResize (const Dimension &dimension) noexcept
 
- Public Member Functions inherited from WindowImpl
 WindowImpl ()
 
 WindowImpl (const Position &position, const Dimension &dimension, unsigned int flags)
 
Position getBindingOffset (Binding binding) const noexcept
 
void flush ()
 
void invalidate ()
 
String getServerVendor () const
 
unsigned int getServerRelease () const
 
unsigned int getFlags () const
 
void displayMenu (const Position &position, const Menu &menu)
 
bool getAutorepeat () const
 
void setAutorepeat (bool autorepeat)
 
String getTitle () const
 
void setTitle (const String &title)
 
String getIconTitle () const
 
void setIconTitle (const String &title)
 
Position getPosition () const
 
void setPosition (const Position &position)
 
Dimension getDimension () const
 
void setDimension (const Dimension &dimension)
 
void setRegion (const Position &position, const Dimension &dimension)
 
void setMinimumSize (const Dimension &dimension)
 
void setMaximumSize (const Dimension &dimension)
 
Cursor getCursor () const noexcept
 
void setCursor (Cursor cursor)
 
Position toGlobalPosition (const Position &position) const
 
Position getCursorPosition () const
 
void setCursorPosition (const Position &position)
 
void releaseCursorConfinement ()
 
void setCursorConfinement ()
 
void setCursorConfinement (const Position &position, const Dimension &dimension)
 
void disableClipping ()
 
Region getClipping () const
 
void setClipping (const Position &position, const Dimension &dimension)
 
void close ()
 
bool isChildOf (const WindowImpl &object)
 
bool isParentOf (const WindowImpl &object)
 
bool isMaximized ()
 
bool isMinimized ()
 
void maximize ()
 
void minimize ()
 
void normalize ()
 
bool isVisible () const noexcept
 
Visibility getVisibility () const noexcept
 
void show ()
 
void hide ()
 
bool isEnabled () const noexcept
 
void enable ()
 
void disable ()
 
void raise ()
 
void acquireFocus ()
 
bool getCapture () const
 
void setCapture (bool state)
 
DisplayMode getDisplayMode () const
 
void setDisplayMode (DisplayMode displayMode)
 
unsigned int getKeyState (unsigned int code) const
 
unsigned int getModifiers () const
 
virtual void onDestruction () noexcept
 
virtual void onMove (const Position &position) noexcept
 
virtual void onMouseMove (const Position &position, unsigned int buttons) noexcept
 
virtual void onMouseScope (bool scope) noexcept
 
virtual void onMouseButton (const Position &position, Mouse::Button button, Mouse::Event event, unsigned int state) noexcept
 
virtual void onMouseWheel (const Position &position, int delta, unsigned int buttons) noexcept
 
virtual void onKey (unsigned int key, unsigned int flags, unsigned int modifiers) noexcept
 
virtual void onIdle () noexcept
 
virtual bool onClose () noexcept
 
virtual void onVisibility (Visibility visibility) noexcept
 
virtual void onFocus (Focus focus) noexcept
 
virtual void onMenu (unsigned int identifier) noexcept
 
virtual void onCommand (unsigned int identifier) noexcept
 
void update ()
 
void wait ()
 
bool wait (unsigned int milliseconds)
 
bool openDispatch ()
 
bool hasMouse () noexcept
 
unsigned int getMouseButtons () noexcept
 
unsigned int getNumberOfMonitors () noexcept
 
Dimension getDisplayDimension () noexcept
 
bool isResponding (unsigned int milliseconds)
 
virtual ~WindowImpl () noexcept
 
 WindowImpl ()
 
 WindowImpl (const Position &position, const Dimension &dimension, unsigned int flags)
 
Position getBindingOffset (Binding binding) const noexcept
 
void flush ()
 
void invalidate ()
 
String getServerVendor () const
 
unsigned int getServerRelease () const
 
unsigned int getFlags () const
 
void displayMenu (const Position &position, const Menu &menu)
 
bool getAutorepeat () const
 
void setAutorepeat (bool autorepeat)
 
String getTitle () const
 
void setTitle (const String &title)
 
String getIconTitle () const
 
void setIconTitle (const String &title)
 
Position getPosition () const
 
void setPosition (const Position &position)
 
Dimension getDimension () const
 
void setDimension (const Dimension &dimension)
 
void setRegion (const Position &position, const Dimension &dimension)
 
void setMinimumSize (const Dimension &dimension)
 
void setMaximumSize (const Dimension &dimension)
 
Cursor getCursor () const noexcept
 
void setCursor (Cursor cursor)
 
Position toGlobalPosition (const Position &position) const
 
Position getCursorPosition () const
 
void setCursorPosition (const Position &position)
 
void releaseCursorConfinement ()
 
void setCursorConfinement ()
 
void setCursorConfinement (const Position &position, const Dimension &dimension)
 
void disableClipping ()
 
Region getClipping () const
 
void setClipping (const Position &position, const Dimension &dimension)
 
void close ()
 
bool isChildOf (const WindowImpl &object)
 
bool isParentOf (const WindowImpl &object)
 
bool isMaximized ()
 
bool isMinimized ()
 
void maximize ()
 
void minimize ()
 
void normalize ()
 
bool isVisible () const noexcept
 
Visibility getVisibility () const noexcept
 
void show ()
 
void hide ()
 
bool isEnabled () const noexcept
 
void enable ()
 
void disable ()
 
void raise ()
 
void acquireFocus ()
 
bool getCapture () const
 
void setCapture (bool state)
 
DisplayMode getDisplayMode () const
 
void setDisplayMode (DisplayMode displayMode)
 
unsigned int getKeyState (unsigned int code) const
 
unsigned int getModifiers () const
 
virtual void onDestruction () noexcept
 
virtual void onMove (const Position &position) noexcept
 
virtual void onMouseMove (const Position &position, unsigned int buttons) noexcept
 
virtual void onMouseScope (bool scope) noexcept
 
virtual void onMouseButton (const Position &position, Mouse::Button button, Mouse::Event event, unsigned int state) noexcept
 
virtual void onMouseWheel (const Position &position, int delta, unsigned int buttons) noexcept
 
virtual void onKey (unsigned int key, unsigned int flags, unsigned int modifiers) noexcept
 
virtual void onIdle () noexcept
 
virtual bool onClose () noexcept
 
virtual void onVisibility (Visibility visibility) noexcept
 
virtual void onFocus (Focus focus) noexcept
 
virtual void onMenu (unsigned int identifier) noexcept
 
virtual void onCommand (unsigned int identifier) noexcept
 
void update ()
 
void wait ()
 
bool wait (unsigned int milliseconds)
 
bool openDispatch ()
 
bool hasMouse () noexcept
 
unsigned int getMouseButtons () noexcept
 
unsigned int getNumberOfMonitors () noexcept
 
Dimension getDisplayDimension () noexcept
 
bool isResponding (unsigned int milliseconds)
 
virtual ~WindowImpl () noexcept
 
 WindowImpl ()
 
 WindowImpl (const Position &position, const Dimension &dimension, unsigned int flags)
 
Position getLocalBindingOffset (Binding binding) const noexcept
 
Position getBindingOffset (Binding binding) const noexcept
 
void flush ()
 
void invalidate ()
 
String getServerVendor () const
 
unsigned int getServerRelease () const
 
unsigned int getFlags () const
 
void displayMenu (const Position &position, const Menu &menu)
 
bool getAutorepeat () const
 
void setAutorepeat (bool autorepeat)
 
String getTitle () const
 
void setTitle (const String &title)
 
String getIconTitle () const
 
void setIconTitle (const String &title)
 
Position getPosition () const
 
void setPosition (const Position &position)
 
Dimension getDimension () const
 
void setDimension (const Dimension &dimension)
 
void setRegion (const Position &position, const Dimension &dimension)
 
void setMinimumSize (const Dimension &dimension)
 
void setMaximumSize (const Dimension &dimension)
 
Cursor getCursor () const noexcept
 
void setCursor (Cursor cursor)
 
Position toGlobalPosition (const Position &position) const
 
Position getCursorPosition () const
 
void setCursorPosition (const Position &position)
 
void releaseCursorConfinement ()
 
void setCursorConfinement ()
 
void setCursorConfinement (const Position &position, const Dimension &dimension)
 
void disableClipping ()
 
Region getClipping () const
 
void setClipping (const Position &position, const Dimension &dimension)
 
void close ()
 
bool isChildOf (const WindowImpl &object)
 
bool isParentOf (const WindowImpl &object)
 
bool isMaximized ()
 
bool isMinimized ()
 
void maximize ()
 
void minimize ()
 
void normalize ()
 
bool isVisible () const noexcept
 
Visibility getVisibility () const noexcept
 
void show ()
 
void hide ()
 
bool isEnabled () const noexcept
 
void enable ()
 
void disable ()
 
void raise ()
 
void acquireFocus ()
 
bool getCapture () const
 
void setCapture (bool state)
 
DisplayMode getDisplayMode () const
 
void setDisplayMode (DisplayMode displayMode)
 
unsigned int getKeyState (unsigned int code) const
 
unsigned int getModifiers () const
 
virtual void onDestruction () noexcept
 
virtual void onMove (const Position &position) noexcept
 
virtual void onMouseMove (const Position &position, unsigned int buttons) noexcept
 
virtual void onMouseScope (bool scope) noexcept
 
virtual void onMouseButton (const Position &position, Mouse::Button button, Mouse::Event event, unsigned int state) noexcept
 
virtual void onMouseWheel (const Position &position, int delta, unsigned int buttons) noexcept
 
virtual void onKey (unsigned int key, unsigned int flags, unsigned int modifiers) noexcept
 
virtual void onIdle () noexcept
 
virtual bool onClose () noexcept
 
virtual void onVisibility (Visibility visibility) noexcept
 
virtual void onFocus (Focus focus) noexcept
 
virtual void onMenu (unsigned int identifier) noexcept
 
virtual void onCommand (unsigned int identifier) noexcept
 
void update ()
 
void wait ()
 
bool wait (unsigned int milliseconds)
 
bool openDispatch ()
 
bool hasMouse () noexcept
 
unsigned int getMouseButtons () noexcept
 
unsigned int getNumberOfMonitors () noexcept
 
Dimension getDisplayDimension () noexcept
 
bool isResponding (unsigned int milliseconds)
 
virtual ~WindowImpl () noexcept
 
- Public Member Functions inherited from OpenGLContextImpl
 OpenGLContextImpl ()
 
String getGLClientVendor () const
 
String getGLClientRelease () const
 
String getGLClientExtensions () const
 
String getGLServerVendor () const
 
String getGLServerRelease () const
 
String getGLServerExtensions () const
 
unsigned int getNumberOfOverlayPlanes () const
 
unsigned int getNumberOfUnderlayPlanes () const
 
bool isDoubleBuffered () const noexcept
 
bool isColorIndexed () const noexcept
 
bool isStereoscopic () const noexcept
 
bool isDirect () const noexcept
 
bool isGeneric () const noexcept
 
bool isMultiSampled () const noexcept
 
bool isSwapLayers () const noexcept
 
bool hasAlphaBuffer () const noexcept
 
unsigned int getNumberOfColorBits () const noexcept
 
unsigned int getNumberOfRedBits () const noexcept
 
unsigned int getNumberOfGreenBits () const noexcept
 
unsigned int getNumberOfBlueBits () const noexcept
 
unsigned int getNumberOfAlphaBits () const noexcept
 
bool hasAccumulatorBuffer () const noexcept
 
unsigned int getNumberOfAcculumatorBits () const noexcept
 
unsigned int getNumberOfAcculumatorRedBits () const noexcept
 
unsigned int getNumberOfAcculumatorGreenBits () const noexcept
 
unsigned int getNumberOfAcculumatorBlueBits () const noexcept
 
unsigned int getNumberOfAcculumatorAlphaBits () const noexcept
 
bool hasDepthBuffer () const noexcept
 
unsigned int getNumberOfDepthBits () const noexcept
 
bool hasStencilBuffer () const noexcept
 
bool getNumberOfStencilBits () const noexcept
 
bool hasAuxBuffers () const noexcept
 
unsigned int getNumberOfAuxBuffers () const noexcept
 
bool hasCurrent () const
 
bool isCurrent () const
 
void makeCurrent ()
 
void deselect () noexcept
 
void swap ()
 
void swap (int plane)
 

Static Public Member Functions

static Array< FormatgetFormats (unsigned int flags)
 
- Static Public Member Functions inherited from WindowImpl
static unsigned int getMouseButtonIndex (Mouse::Button button) noexcept
 
static Literal getMouseButtonName (Mouse::Button button) noexcept
 
static void exit () noexcept
 
static void dispatch ()
 
static unsigned int getMouseButtonIndex (Mouse::Button button) noexcept
 
static Literal getMouseButtonName (Mouse::Button button) noexcept
 
static void exit () noexcept
 
static void dispatch ()
 
static unsigned int getMouseButtonIndex (Mouse::Button button) noexcept
 
static Literal getMouseButtonName (Mouse::Button button) noexcept
 
static void exit () noexcept
 
static void dispatch ()
 

Public Attributes

OpenGL openGL
 

Additional Inherited Members

- Public Types inherited from WindowImpl
enum  DisplayMode {
  MODE_WINDOW, MODE_FULL_SCREEN, MODE_WINDOW, MODE_FULL_SCREEN,
  MODE_WINDOW, MODE_FULL_SCREEN
}
 
enum  Cursor {
  INHERIT, NONE, WORKING_IN_BACKGROUND, ARROW,
  CROSSHAIR, HAND, HELP, NO,
  MOVING, NORTHEAST_SOUTHWEST, NORTH_SOUTH, NORTHWEST_SOUTHEAST,
  WEST_EAST, VERTICAL_ARROW, WAITING, INHERIT,
  NONE, WORKING_IN_BACKGROUND, ARROW, CROSSHAIR,
  HAND, HELP, NO, MOVING,
  NORTHEAST_SOUTHWEST, NORTH_SOUTH, NORTHWEST_SOUTHEAST, WEST_EAST,
  VERTICAL_ARROW, WAITING, INHERIT, NONE,
  WORKING_IN_BACKGROUND, ARROW, CROSSHAIR, HAND,
  HELP, NO, MOVING, NORTHEAST_SOUTHWEST,
  NORTH_SOUTH, NORTHWEST_SOUTHEAST, WEST_EAST, VERTICAL_ARROW,
  WAITING
}
 
enum  Visibility {
  INVISIBLE, OBSCURED, VISIBLE, INVISIBLE,
  OBSCURED, VISIBLE, INVISIBLE, OBSCURED,
  VISIBLE
}
 
enum  Flag {
  AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1, AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1,
  AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1
}
 
enum  Focus {
  LOST_FOCUS, ACQUIRED_FOCUS, LOST_FOCUS, ACQUIRED_FOCUS,
  LOST_FOCUS, ACQUIRED_FOCUS
}
 
enum  Binding {
  UPPER_LEFT, UPPER_CENTER, UPPER_RIGHT, MIDDLE_LEFT,
  MIDDLE_CENTER, MIDDLE_RIGHT, LOWER_LEFT, LOWER_CENTER,
  LOWER_RIGHT, UPPER_LEFT, UPPER_CENTER, UPPER_RIGHT,
  MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, LOWER_LEFT,
  LOWER_CENTER, LOWER_RIGHT, UPPER_LEFT, UPPER_CENTER,
  UPPER_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT,
  LOWER_LEFT, LOWER_CENTER, LOWER_RIGHT
}
 
enum  DisplayMode {
  MODE_WINDOW, MODE_FULL_SCREEN, MODE_WINDOW, MODE_FULL_SCREEN,
  MODE_WINDOW, MODE_FULL_SCREEN
}
 
enum  Cursor {
  INHERIT, NONE, WORKING_IN_BACKGROUND, ARROW,
  CROSSHAIR, HAND, HELP, NO,
  MOVING, NORTHEAST_SOUTHWEST, NORTH_SOUTH, NORTHWEST_SOUTHEAST,
  WEST_EAST, VERTICAL_ARROW, WAITING, INHERIT,
  NONE, WORKING_IN_BACKGROUND, ARROW, CROSSHAIR,
  HAND, HELP, NO, MOVING,
  NORTHEAST_SOUTHWEST, NORTH_SOUTH, NORTHWEST_SOUTHEAST, WEST_EAST,
  VERTICAL_ARROW, WAITING, INHERIT, NONE,
  WORKING_IN_BACKGROUND, ARROW, CROSSHAIR, HAND,
  HELP, NO, MOVING, NORTHEAST_SOUTHWEST,
  NORTH_SOUTH, NORTHWEST_SOUTHEAST, WEST_EAST, VERTICAL_ARROW,
  WAITING
}
 
enum  Visibility {
  INVISIBLE, OBSCURED, VISIBLE, INVISIBLE,
  OBSCURED, VISIBLE, INVISIBLE, OBSCURED,
  VISIBLE
}
 
enum  Flag {
  AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1, AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1,
  AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1
}
 
enum  Focus {
  LOST_FOCUS, ACQUIRED_FOCUS, LOST_FOCUS, ACQUIRED_FOCUS,
  LOST_FOCUS, ACQUIRED_FOCUS
}
 
enum  Binding {
  UPPER_LEFT, UPPER_CENTER, UPPER_RIGHT, MIDDLE_LEFT,
  MIDDLE_CENTER, MIDDLE_RIGHT, LOWER_LEFT, LOWER_CENTER,
  LOWER_RIGHT, UPPER_LEFT, UPPER_CENTER, UPPER_RIGHT,
  MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, LOWER_LEFT,
  LOWER_CENTER, LOWER_RIGHT, UPPER_LEFT, UPPER_CENTER,
  UPPER_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT,
  LOWER_LEFT, LOWER_CENTER, LOWER_RIGHT
}
 
enum  DisplayMode {
  MODE_WINDOW, MODE_FULL_SCREEN, MODE_WINDOW, MODE_FULL_SCREEN,
  MODE_WINDOW, MODE_FULL_SCREEN
}
 
enum  Cursor {
  INHERIT, NONE, WORKING_IN_BACKGROUND, ARROW,
  CROSSHAIR, HAND, HELP, NO,
  MOVING, NORTHEAST_SOUTHWEST, NORTH_SOUTH, NORTHWEST_SOUTHEAST,
  WEST_EAST, VERTICAL_ARROW, WAITING, INHERIT,
  NONE, WORKING_IN_BACKGROUND, ARROW, CROSSHAIR,
  HAND, HELP, NO, MOVING,
  NORTHEAST_SOUTHWEST, NORTH_SOUTH, NORTHWEST_SOUTHEAST, WEST_EAST,
  VERTICAL_ARROW, WAITING, INHERIT, NONE,
  WORKING_IN_BACKGROUND, ARROW, CROSSHAIR, HAND,
  HELP, NO, MOVING, NORTHEAST_SOUTHWEST,
  NORTH_SOUTH, NORTHWEST_SOUTHEAST, WEST_EAST, VERTICAL_ARROW,
  WAITING
}
 
enum  Visibility {
  INVISIBLE, OBSCURED, VISIBLE, INVISIBLE,
  OBSCURED, VISIBLE, INVISIBLE, OBSCURED,
  VISIBLE
}
 
enum  Flag {
  AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1, AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1,
  AUTO_CLEAR = 1 << 0, FIXED_SIZE = 1 << 1
}
 
enum  Focus {
  LOST_FOCUS, ACQUIRED_FOCUS, LOST_FOCUS, ACQUIRED_FOCUS,
  LOST_FOCUS, ACQUIRED_FOCUS
}
 
enum  Binding {
  UPPER_LEFT, UPPER_CENTER, UPPER_RIGHT, MIDDLE_LEFT,
  MIDDLE_CENTER, MIDDLE_RIGHT, LOWER_LEFT, LOWER_CENTER,
  LOWER_RIGHT, UPPER_LEFT, UPPER_CENTER, UPPER_RIGHT,
  MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, LOWER_LEFT,
  LOWER_CENTER, LOWER_RIGHT, UPPER_LEFT, UPPER_CENTER,
  UPPER_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT,
  LOWER_LEFT, LOWER_CENTER, LOWER_RIGHT
}
 
- Public Types inherited from OpenGLContextImpl
enum  Flag {
  COLOR_INDEXED = 1, DOUBLE_BUFFERED = COLOR_INDEXED << 1, ACCUMULATOR = DOUBLE_BUFFERED << 1, ALPHA = ACCUMULATOR << 1,
  DEPTH = ALPHA << 1, STENCIL = DEPTH << 1, AUX = STENCIL << 1, MULTI_SAMPLE = AUX << 1,
  STEREO = MULTI_SAMPLE << 1, LUMINANCE = STEREO << 1, RGB = LUMINANCE << 1, OVERLAY = RGB << 1,
  UNDERLAY = OVERLAY << 1, SWAP_LAYER, DIRECT = UNDERLAY << 1, GENERIC = DIRECT << 1
}
 
- Protected Member Functions inherited from WindowImpl
void construct () noexcept
 
void construct () noexcept
 
void construct () noexcept
 
- Static Protected Member Functions inherited from OpenGLContextImpl
static void loadModule ()
 
- Protected Attributes inherited from WindowImpl
String title
 
String iconTitle
 
Position position
 
Dimension dimension
 
unsigned int flags = 0
 
Dimension minimumSize
 
Dimension maximumSize
 
void * screenHandle = nullptr
 
void * graphicsContextHandle = nullptr
 
- Protected Attributes inherited from Drawable
void * drawableHandle = nullptr
 
- Protected Attributes inherited from OpenGLContextImpl
void * graphicsContextHandle = nullptr
 
void * renderingContextHandle = nullptr
 
unsigned int flags = 0
 
uint8 colorBits = 0
 
uint8 redBits = 0
 
uint8 redShift = 0
 
uint8 greenBits = 0
 
uint8 greenShift = 0
 
uint8 blueBits = 0
 
uint8 blueShift = 0
 
uint8 alphaBits = 0
 
uint8 alphaShift = 0
 
uint8 accumulatorBits = 0
 
uint8 accumulatorRedBits = 0
 
uint8 accumulatorGreenBits = 0
 
uint8 accumulatorBlueBits = 0
 
uint8 accumulatorAlphaBits = 0
 
uint8 depthBits = 0
 
uint8 stencilBits = 0
 
uint8 auxBuffers = 0
 
unsigned int numberOfOverlayPlanes = 0
 
unsigned int numberOfUnderlayPlanes = 0
 
- Static Protected Attributes inherited from WindowImpl
static void * displayHandle
 

Detailed Description

OpenGL rendering context.

OpenGL rendering context.

Version
1.0

Constructor & Destructor Documentation

◆ OpenGLContext()

OpenGLContext::OpenGLContext ( const Position position,
const Dimension dimension,
const Format format 
)

Initializes a new OpenGL context.

Member Function Documentation

◆ getFormats()

static Array<Format> OpenGLContext::getFormats ( unsigned int  flags)
static

Returns the available formats.

◆ onDisplay()

void OpenGLContext::onDisplay ( )
virtualnoexcept

Invoked when the display should be updated.

Reimplemented from WindowImpl.

◆ onResize()

void OpenGLContext::onResize ( const Dimension dimension)
virtualnoexcept

Invoked when the window has been resized.

Parameters
dimensionThe new dimension of the window.

Reimplemented from WindowImpl.

Member Data Documentation

◆ openGL

OpenGL OpenGLContext::openGL

OpenGL property.