Base Framework
Classes | Public Types | Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
OpenGLContextImpl Class Reference

OpenGL rendering context. More...

#include <base/opengl/OpenGLContextImpl.h>

Inherits Drawable.

Inherited by OpenGLContext, OpenGLPixmapContext, and OpenGLWidget.

Classes

class  Format
 

Public Types

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
}
 

Public Member Functions

 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 Protected Member Functions

static void loadModule ()
 

Protected Attributes

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
 
- Protected Attributes inherited from Drawable
void * drawableHandle = nullptr
 

Detailed Description

OpenGL rendering context.

Base class of all OpenGL rendering contexts.

Version
1.0

Member Enumeration Documentation

◆ Flag

OpenGL format flags.

Enumerator
COLOR_INDEXED 

Color index.

DOUBLE_BUFFERED 

Request double buffered.

ACCUMULATOR 

Accumulator.

ALPHA 

Request alpha/transparency support.

DEPTH 

Depth buffer support.

STENCIL 

Stencil buffer support.

AUX 

Auxiliary buffer support.

MULTI_SAMPLE 

Multi sample support.

STEREO 

Stereo support.

LUMINANCE 

Luminance support.

SWAP_LAYER 

Swap individual layers.

DIRECT 

Direct rendering support (accelerated).

GENERIC 

Generic implementation.

Constructor & Destructor Documentation

◆ OpenGLContextImpl()

OpenGLContextImpl::OpenGLContextImpl ( )

Initializes an OpenGL rendering context.

Member Function Documentation

◆ deselect()

void OpenGLContextImpl::deselect ( )
noexcept

Deselects the OpenGL context of the executing thread.

◆ getGLClientExtensions()

String OpenGLContextImpl::getGLClientExtensions ( ) const

Returns the client extensions.

◆ getGLClientRelease()

String OpenGLContextImpl::getGLClientRelease ( ) const

Returns the release of the client.

◆ getGLClientVendor()

String OpenGLContextImpl::getGLClientVendor ( ) const

Returns the vendor of the client.

◆ getGLServerExtensions()

String OpenGLContextImpl::getGLServerExtensions ( ) const

Returns the server extensions.

◆ getGLServerRelease()

String OpenGLContextImpl::getGLServerRelease ( ) const

Returns the release of the server.

◆ getGLServerVendor()

String OpenGLContextImpl::getGLServerVendor ( ) const

Returns the vendor of the server.

◆ getNumberOfAcculumatorAlphaBits()

unsigned int OpenGLContextImpl::getNumberOfAcculumatorAlphaBits ( ) const
inlinenoexcept

Returns the number of alpha bits for the accumulator buffer.

◆ getNumberOfAcculumatorBits()

unsigned int OpenGLContextImpl::getNumberOfAcculumatorBits ( ) const
inlinenoexcept

Returns the number of accumulator bits.

◆ getNumberOfAcculumatorBlueBits()

unsigned int OpenGLContextImpl::getNumberOfAcculumatorBlueBits ( ) const
inlinenoexcept

Returns the number of blue bits for the accumulator buffer.

◆ getNumberOfAcculumatorGreenBits()

unsigned int OpenGLContextImpl::getNumberOfAcculumatorGreenBits ( ) const
inlinenoexcept

Returns the number of green bits for the accumulator buffer.

◆ getNumberOfAcculumatorRedBits()

unsigned int OpenGLContextImpl::getNumberOfAcculumatorRedBits ( ) const
inlinenoexcept

Returns the number of red bits for the accumulator buffer.

◆ getNumberOfAlphaBits()

unsigned int OpenGLContextImpl::getNumberOfAlphaBits ( ) const
inlinenoexcept

Returns the number of alpha bits.

◆ getNumberOfAuxBuffers()

unsigned int OpenGLContextImpl::getNumberOfAuxBuffers ( ) const
inlinenoexcept

Returns the number of auxiliary buffers.

◆ getNumberOfBlueBits()

unsigned int OpenGLContextImpl::getNumberOfBlueBits ( ) const
inlinenoexcept

Returns the number of blue bits.

◆ getNumberOfColorBits()

unsigned int OpenGLContextImpl::getNumberOfColorBits ( ) const
inlinenoexcept

Returns the number of color bits (excluding the alpha bits).

◆ getNumberOfDepthBits()

unsigned int OpenGLContextImpl::getNumberOfDepthBits ( ) const
inlinenoexcept

Returns the number of depth bits.

◆ getNumberOfGreenBits()

unsigned int OpenGLContextImpl::getNumberOfGreenBits ( ) const
inlinenoexcept

Returns the number of green bits.

◆ getNumberOfOverlayPlanes()

unsigned int OpenGLContextImpl::getNumberOfOverlayPlanes ( ) const
inline

Returns the number of overlay planes.

◆ getNumberOfRedBits()

unsigned int OpenGLContextImpl::getNumberOfRedBits ( ) const
inlinenoexcept

Returns the number of red bits.

◆ getNumberOfStencilBits()

bool OpenGLContextImpl::getNumberOfStencilBits ( ) const
inlinenoexcept

Returns the number of stencil bits.

◆ getNumberOfUnderlayPlanes()

unsigned int OpenGLContextImpl::getNumberOfUnderlayPlanes ( ) const
inline

Returns the number of underlay planes.

◆ hasAccumulatorBuffer()

bool OpenGLContextImpl::hasAccumulatorBuffer ( ) const
inlinenoexcept

Returns true if an accumulator buffer is available.

◆ hasAlphaBuffer()

bool OpenGLContextImpl::hasAlphaBuffer ( ) const
inlinenoexcept

Returns true is alpha buffer is available.

◆ hasAuxBuffers()

bool OpenGLContextImpl::hasAuxBuffers ( ) const
inlinenoexcept

Returns true if auxiliary buffers are available.

◆ hasCurrent()

bool OpenGLContextImpl::hasCurrent ( ) const

Returns true if the executing thread has an associated OpenGL context.

◆ hasDepthBuffer()

bool OpenGLContextImpl::hasDepthBuffer ( ) const
inlinenoexcept

Returns true if depth buffer is available.

◆ hasStencilBuffer()

bool OpenGLContextImpl::hasStencilBuffer ( ) const
inlinenoexcept

Returns true if stencil buffer is available.

◆ isColorIndexed()

bool OpenGLContextImpl::isColorIndexed ( ) const
inlinenoexcept

Returns true if the context is color indexed.

◆ isCurrent()

bool OpenGLContextImpl::isCurrent ( ) const

Returns true if the OpenGL context is the current context of the executing thread.

◆ isDirect()

bool OpenGLContextImpl::isDirect ( ) const
inlinenoexcept

Returns true if the context is direct (accelerated).

◆ isDoubleBuffered()

bool OpenGLContextImpl::isDoubleBuffered ( ) const
inlinenoexcept

Returns true is the context is double buffered.

◆ isGeneric()

bool OpenGLContextImpl::isGeneric ( ) const
inlinenoexcept

Returns true if the context is the generic implementation.

◆ isMultiSampled()

bool OpenGLContextImpl::isMultiSampled ( ) const
inlinenoexcept

Returns true if the multi sample.

◆ isStereoscopic()

bool OpenGLContextImpl::isStereoscopic ( ) const
inlinenoexcept

Returns true if the context is stereoscopic.

◆ isSwapLayers()

bool OpenGLContextImpl::isSwapLayers ( ) const
inlinenoexcept

Returns true if the layers may be swapped individually.

◆ loadModule()

static void OpenGLContextImpl::loadModule ( )
staticprotected

Loads the OpenGL module.

◆ makeCurrent()

void OpenGLContextImpl::makeCurrent ( )

Selects this OpenGL context as the current context of the executing thread.

◆ swap() [1/2]

void OpenGLContextImpl::swap ( )

Swaps all the buffers.

◆ swap() [2/2]

void OpenGLContextImpl::swap ( int  plane)

Swaps the specified layer.

Parameters
planeThe layer to swap.

Member Data Documentation

◆ numberOfOverlayPlanes

unsigned int OpenGLContextImpl::numberOfOverlayPlanes = 0
protected

The number of overlay planes.

◆ numberOfUnderlayPlanes

unsigned int OpenGLContextImpl::numberOfUnderlayPlanes = 0
protected

The number of underlay planes.

◆ renderingContextHandle

void* OpenGLContextImpl::renderingContextHandle = nullptr
protected

Opaque handle to OpenGL rendering context.