Version: 3.2.5
wxGLAttribsBase Class Reference

#include <wx/glcanvas.h>

+ Inheritance diagram for wxGLAttribsBase:

Detailed Description

This is the base class for wxGLAttributes and wxGLContextAttrs.

It stores internally the list required by OS and OpenGL driver for setting display and rendering context attributes.

Normally this class is not used directly. But there's a case where it its member functions are useful: setting attributes not handled by wxWidgets. Suppose the OpenGL Board sets a new functionality of the context, by adding a new attribute (let's call it NEW_CTX_F) and also a new type of context by allowing a new bit value (let's call it NEW_BITS) for the CONTEXT_PROFILE_MASK_ARB value. These new values can be added to the list using code like this:

// Some values
cxtAttrs.CoreProfile().OGLVersion(5, 0); // OGL 5.0, whenever available
cxtAttrs.PlatformDefaults();
// Values usually are platform-dependant named (even value assigned!)
#if defined(__WXMSW__)
cxtAttrs.AddAttribute(WGL_NEW_CTX_F);
cxtAttrs.AddAttribBits(WGL_CONTEXT_PROFILE_MASK_ARB, WGL_NEW_BITS);
#elif defined(__WXX11__)
cxtAttrs.AddAttribute(GLX_NEW_CTX_F);
cxtAttrs.AddAttribBits(GLX_CONTEXT_PROFILE_MASK_ARB, GLX_NEW_BITS);
#else
// Other platforms
#endif
cxtAttrs.EndList(); // Don't forget this
cxtAttrs.SetNeedsARB(true); // Context attributes are set by an ARB-function
void SetNeedsARB(bool needsARB=true)
Sets the necessity of using special ARB-functions (e.g.
void AddAttribBits(int searchVal, int combineVal)
Combine (bitwise OR) a given value with the existing one, if any.
void AddAttribute(int attribute)
Adds an integer value to the list of attributes.
This class is used for setting context attributes.
Definition: glcanvas.h:301
wxGLContextAttrs & PlatformDefaults()
Set platform specific defaults.
wxGLContextAttrs & OGLVersion(int vmayor, int vminor)
An easy way of requesting an OpenGL version.
void EndList()
The set of attributes must end with this one; otherwise, the GPU may display nothing at all.
wxGLContextAttrs & CoreProfile()
Request an OpenGL core profile for the context.
Since
3.1.0

Library:  wxGL
Category:  OpenGL
See also
wxGLCanvas, wxGLContext, wxGLContextAttrs, wxGLAttributes

Public Member Functions

 wxGLAttribsBase ()
 Constructor. More...
 
void AddAttribute (int attribute)
 Adds an integer value to the list of attributes. More...
 
void AddAttribBits (int searchVal, int combineVal)
 Combine (bitwise OR) a given value with the existing one, if any. More...
 
void SetNeedsARB (bool needsARB=true)
 Sets the necessity of using special ARB-functions (e.g. More...
 
void Reset ()
 Delete contents and sets ARB-flag to false. More...
 
const int * GetGLAttrs () const
 Returns a pointer to the internal list of attributes. More...
 
int GetSize ()
 Returns the size of the internal list of attributes. More...
 
bool NeedsARB () const
 Returns the current value of the ARB-flag. More...
 

Constructor & Destructor Documentation

◆ wxGLAttribsBase()

wxGLAttribsBase::wxGLAttribsBase ( )

Constructor.

Member Function Documentation

◆ AddAttribBits()

void wxGLAttribsBase::AddAttribBits ( int  searchVal,
int  combineVal 
)

Combine (bitwise OR) a given value with the existing one, if any.

This function first searches for an identifier and then combines the given value with the value right after the identifier. If the identifier is not found, two new values (i.e. the identifier and the given value) are added to the list.

Parameters
searchValThe identifier to search for.
combineValThe value to combine with the existing one.

◆ AddAttribute()

void wxGLAttribsBase::AddAttribute ( int  attribute)

Adds an integer value to the list of attributes.

Parameters
attributeThe value to add.

◆ GetGLAttrs()

const int* wxGLAttribsBase::GetGLAttrs ( ) const

Returns a pointer to the internal list of attributes.

It's very unlikely you need this function. If the list is empty the returned value is NULL.

◆ GetSize()

int wxGLAttribsBase::GetSize ( )

Returns the size of the internal list of attributes.

Remember that the last value in the list must be a '0' (zero). So, a minimal list is of size = 2, the first value is meaningful and the last is '0'.

◆ NeedsARB()

bool wxGLAttribsBase::NeedsARB ( ) const

Returns the current value of the ARB-flag.

See also
SetNeedsARB

◆ Reset()

void wxGLAttribsBase::Reset ( )

Delete contents and sets ARB-flag to false.

◆ SetNeedsARB()

void wxGLAttribsBase::SetNeedsARB ( bool  needsARB = true)

Sets the necessity of using special ARB-functions (e.g.

wglCreateContextAttribsARB in MSW) for some of the attributes of the list. Multi-sampling and modern context require these ARB-functions.

Parameters
needsARBtrue if an ARB-function is needed for any of the attributes.
See also
NeedsARB