glbinding  3.0.2.58901078581f
A C++ binding for the OpenGL API, generated using the gl.xml specification.
glbinding::Function< ReturnType, Arguments > Class Template Reference

The Function represents an OpenGL API function with additional features, including: More...

#include <glbinding/include/glbinding/Function.h>

Inheritance diagram for glbinding::Function< ReturnType, Arguments >:
glbinding::AbstractFunction

Public Types

using Signature = ReturnType(WINAPI *)(Arguments...)
 The c pointer type for a function call. More...
 
using BeforeCallback = typename CallbackType< void, Arguments... >::type
 The callback type for the before callback. More...
 
using AfterCallback = typename CallbackType< ReturnType, Arguments... >::type
 The callback type for the after callback. More...
 

Public Member Functions

 Function (const char *name)
 Constructor. More...
 
ReturnType operator() (Arguments &...arguments) const
 Executes a function call on the resolved function pointer and passes the arguments. More...
 
ReturnType call (Arguments &...arguments) const
 Executes a function call on the resolved function pointer and passes the arguments. More...
 
ReturnType directCall (Arguments...arguments) const
 Executes a function call on the resolved function pointer and passes the arguments. More...
 
void setBeforeCallback (BeforeCallback callback)
 Register a callback that is triggered before a function call to the OpenGL driver. More...
 
void clearBeforeCallback ()
 Clears any previously registered before callback. More...
 
void setAfterCallback (AfterCallback callback)
 Register a callback that is triggered after a function call to the OpenGL driver. More...
 
void clearAfterCallback ()
 Clears any previously registered after callback. More...
 
BeforeCallback beforeCallback () const
 The accessor for the beforeCallback. More...
 
AfterCallback afterCallback () const
 The accessor for the afterCallback. More...
 
virtual bool hasState () const override
 Checks for existance of the current configured state. More...
 
virtual bool hasState (int pos) const override
 Checks for existance of a state. More...
 
virtual AbstractStatestate () const override
 Get current state. More...
 
virtual AbstractStatestate (int pos) const override
 Get state. More...
 
virtual void resizeStates (int count) override
 
- Public Member Functions inherited from glbinding::AbstractFunction
 AbstractFunction (const char *name)
 Constructor. More...
 
virtual ~AbstractFunction ()
 Destructor to guarantee correct memory deallocation of subclasses. More...
 
const char * name () const
 Get function name. More...
 
void resolveAddress ()
 Lookup the function pointer and stores it in the current state. More...
 
bool isResolved () const
 Check for a valid function pointer in the current state. More...
 
ProcAddress address () const
 Get function pointer. More...
 
CallbackMask callbackMask () const
 Get callback mask. More...
 
void setCallbackMask (CallbackMask mask)
 Reconfigures the callback mask for the current state. More...
 
void addCallbackMask (CallbackMask mask)
 Reconfigures the callback mask for the current state in means of a bit-wise 'or' operation with the current callback mask. More...
 
void removeCallbackMask (CallbackMask mask)
 Reconfigures the callback mask for the current state in means of a bit-wise 'clear' operation of the current callback mask. More...
 
bool isEnabled (CallbackMask mask) const
 Check if all bits of the parameter are set in the currently configured callback mask of the current state. More...
 
bool isAnyEnabled (CallbackMask mask) const
 Check if any bit of the parameter is set in the currently configured callback mask of the current state. More...
 

Protected Attributes

std::vector< Statem_states
 
BeforeCallback m_beforeCallback
 The currently registered before callback. More...
 
AfterCallback m_afterCallback
 The currently registered after callback. More...
 
- Protected Attributes inherited from glbinding::AbstractFunction
const char * m_name
 The OpenGL API function name, including the 'gl' prefix. More...
 

Friends

struct FunctionHelper< ReturnType, Arguments... >
 

Additional Inherited Members

- Static Public Member Functions inherited from glbinding::AbstractFunction
static void unresolved (const AbstractFunction *function)
 
static void before (const FunctionCall &call)
 
static void after (const FunctionCall &call)
 
static void log (FunctionCall &&call)
 
static int currentPos ()
 
static int maxPos ()
 

Detailed Description

template<typename ReturnType, typename... Arguments>
class glbinding::Function< ReturnType, Arguments >

The Function represents an OpenGL API function with additional features, including:

  • callbacks
  • direct call (omit all callbacks, logging, error checking, ...)
  • and function pointer resolving
Template Parameters
ReturnTypeThe return type of the function
ArgumentsThe types of the arguments

Member Typedef Documentation

template<typename ReturnType, typename... Arguments>
using glbinding::Function< ReturnType, Arguments >::Signature = ReturnType(WINAPI *) (Arguments...)

The c pointer type for a function call.

template<typename ReturnType, typename... Arguments>
using glbinding::Function< ReturnType, Arguments >::BeforeCallback = typename CallbackType<void, Arguments...>::type

The callback type for the before callback.

template<typename ReturnType, typename... Arguments>
using glbinding::Function< ReturnType, Arguments >::AfterCallback = typename CallbackType<ReturnType, Arguments...>::type

The callback type for the after callback.

Constructor & Destructor Documentation

template<typename ReturnType , typename... Arguments>
glbinding::Function< ReturnType, Arguments >::Function ( const char *  name)

Constructor.

Parameters
[in]nameThe actual exported OpenGL API function name, including the 'gl' prefix

References glbinding::Function< ReturnType, Arguments >::m_afterCallback, and glbinding::Function< ReturnType, Arguments >::m_beforeCallback.

Member Function Documentation

template<typename ReturnType , typename... Arguments>
ReturnType glbinding::Function< ReturnType, Arguments >::operator() ( Arguments &...  arguments) const
inline

Executes a function call on the resolved function pointer and passes the arguments.

Parameters
[in]argumentsThe arguments for the function call
Returns
The return value. (may be void and thus, nothing)
Remarks
This method respect currently activated callbacks and logging

References glbinding::Function< ReturnType, Arguments >::call().

template<typename ReturnType , typename... Arguments>
ReturnType glbinding::Function< ReturnType, Arguments >::call ( Arguments &...  arguments) const
inline

Executes a function call on the resolved function pointer and passes the arguments.

Parameters
[in]argumentsThe arguments for the function call
Returns
The return value. (may be void and thus, nothing)
Remarks
This method respect currently activated callbacks and logging

References glbinding::AbstractFunction::address(), glbinding::After, glbinding::Before, glbinding::FunctionHelper< ReturnType, Arguments >::call(), glbinding::AbstractFunction::isAnyEnabled(), glbinding::AbstractFunction::isEnabled(), glbinding::Logging, glbinding::Unresolved, and glbinding::AbstractFunction::unresolved().

Referenced by glbinding::Function< ReturnType, Arguments >::operator()().

template<typename ReturnType , typename... Arguments>
ReturnType glbinding::Function< ReturnType, Arguments >::directCall ( Arguments...  arguments) const
inline

Executes a function call on the resolved function pointer and passes the arguments.

Parameters
[in]argumentsThe arguments for the function call
Returns
The return value. (may be void and thus, nothing)
Remarks
This method omits all currently activated callbacks and logging

References glbinding::AbstractFunction::address().

template<typename ReturnType , typename... Arguments>
void glbinding::Function< ReturnType, Arguments >::setBeforeCallback ( BeforeCallback  callback)
inline

Register a callback that is triggered before a function call to the OpenGL driver.

Parameters
[in]callbackThe callback to register
Remarks
Keep in mind that in addition to a registered callback, the callback mask of this Function has to include the Before flag to enable the callback

References glbinding::Function< ReturnType, Arguments >::m_beforeCallback.

template<typename ReturnType , typename... Arguments>
void glbinding::Function< ReturnType, Arguments >::clearBeforeCallback ( )
inline

Clears any previously registered before callback.

References glbinding::Function< ReturnType, Arguments >::m_beforeCallback.

template<typename ReturnType , typename... Arguments>
void glbinding::Function< ReturnType, Arguments >::setAfterCallback ( AfterCallback  callback)
inline

Register a callback that is triggered after a function call to the OpenGL driver.

Parameters
[in]callbackThe callback to register
Remarks
Keep in mind that in addition to a registered callback, the callback mask of this Function has to include the After flag to enable the callback

References glbinding::Function< ReturnType, Arguments >::m_afterCallback.

template<typename ReturnType , typename... Arguments>
void glbinding::Function< ReturnType, Arguments >::clearAfterCallback ( )
inline

Clears any previously registered after callback.

References glbinding::Function< ReturnType, Arguments >::m_afterCallback.

template<typename ReturnType , typename... Arguments>
Function< ReturnType, Arguments... >::BeforeCallback glbinding::Function< ReturnType, Arguments >::beforeCallback ( ) const
inline

The accessor for the beforeCallback.

Returns
The beforeCallback

References glbinding::Function< ReturnType, Arguments >::m_beforeCallback.

template<typename ReturnType , typename... Arguments>
Function< ReturnType, Arguments... >::AfterCallback glbinding::Function< ReturnType, Arguments >::afterCallback ( ) const
inline

The accessor for the afterCallback.

Returns
The afterCallback

References glbinding::Function< ReturnType, Arguments >::m_afterCallback.

template<typename ReturnType , typename... Arguments>
bool glbinding::Function< ReturnType, Arguments >::hasState ( ) const
overridevirtual

Checks for existance of the current configured state.

Returns
'true' if the current state still exists, else 'false'
Remarks
This method is usually used to detect invalid state clean up

Implements glbinding::AbstractFunction.

References glbinding::AbstractFunction::currentPos().

template<typename ReturnType , typename... Arguments>
bool glbinding::Function< ReturnType, Arguments >::hasState ( int  pos) const
overridevirtual

Checks for existance of a state.

Parameters
[in]posThe index of the state to check
Returns
'true' if the state exists, else 'false'

Implements glbinding::AbstractFunction.

References glbinding::AbstractFunction::maxPos().

template<typename ReturnType , typename... Arguments>
AbstractState & glbinding::Function< ReturnType, Arguments >::state ( ) const
overridevirtual

Get current state.

Returns
The current state

Implements glbinding::AbstractFunction.

References glbinding::AbstractFunction::currentPos().

template<typename ReturnType , typename... Arguments>
AbstractState & glbinding::Function< ReturnType, Arguments >::state ( int  pos) const
overridevirtual

Get state.

Parameters
[in]posThe index of the state
Returns
The state

Implements glbinding::AbstractFunction.

References glbinding::Function< ReturnType, Arguments >::m_states, and glbinding::AbstractFunction::maxPos().

template<typename ReturnType , typename... Arguments>
void glbinding::Function< ReturnType, Arguments >::resizeStates ( int  count)
overridevirtual

Friends And Related Function Documentation

template<typename ReturnType, typename... Arguments>
friend struct FunctionHelper< ReturnType, Arguments... >
friend

Member Data Documentation

template<typename ReturnType, typename... Arguments>
std::vector<State> glbinding::Function< ReturnType, Arguments >::m_states
mutableprotected

The documentation for this class was generated from the following files: