SFML 2.5.1

- Main Page
- Related Pages
- Topics
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Public Attributes | List of all members
sf::ContextSettings Class Reference
Window module

Structure defining the settings of the OpenGL context attached to a window. More...

`#include <ContextSettings.hpp>`

## Public Types

enum | Attribute { Default = 0 , Core = 1 << 0 , Debug = 1 << 2 }
| Enumeration of the context attribute flags. More...

## Public Member Functions

| ContextSettings (unsigned int depth=0, unsigned int stencil=0, unsigned int antialiasing=0, unsigned int major=1, unsigned int minor=1, unsigned int attributes=Default, bool sRgb=false)
| Default constructor.

## Public Attributes

unsigned int | depthBits
| Bits of the depth buffer.
unsigned int | stencilBits
| Bits of the stencil buffer.
unsigned int | antialiasingLevel
| Level of antialiasing.
unsigned int | majorVersion
| Major number of the context version to create.
unsigned int | minorVersion
| Minor number of the context version to create.
Uint32 | attributeFlags
| The attribute flags to create the context with.
bool | sRgbCapable
| Whether the context framebuffer is sRGB capable.

## Detailed Description

Structure defining the settings of the OpenGL context attached to a window.

ContextSettings allows to define several advanced settings of the OpenGL context attached to a window.

All these settings with the exception of the compatibility flag and anti-aliasing level have no impact on the regular SFML rendering (graphics module), so you may need to use this structure only if you're using SFML as a windowing system for custom OpenGL rendering.

The depthBits and stencilBits members define the number of bits per pixel requested for the (respectively) depth and stencil buffers.

antialiasingLevel represents the requested number of multisampling levels for anti-aliasing.

majorVersion and minorVersion define the version of the OpenGL context that you want. Only versions greater or equal to 3.0 are relevant; versions lesser than 3.0 are all handled the same way (i.e. you can use any version < 3.0 if you don't want an OpenGL 3 context).

When requesting a context with a version greater or equal to 3.2, you have the option of specifying whether the context should follow the core or compatibility profile of all newer (>= 3.2) OpenGL specifications. For versions 3.0 and 3.1 there is only the core profile. By default a compatibility context is created. You only need to specify the core flag if you want a core profile context to use with your own OpenGL rendering. Warning: The graphics module will not function if you request a core profile context. Make sure the attributes are set to Default if you want to use the graphics module.

Setting the debug attribute flag will request a context with additional debugging features enabled. Depending on the system, this might be required for advanced OpenGL debugging. OpenGL debugging is disabled by default.

Special Note for OS X: Apple only supports choosing between either a legacy context (OpenGL 2.1) or a core context (OpenGL version depends on the operating system version but is at least 3.2). Compatibility contexts are not supported. Further information is available on the OpenGL Capabilities Tables page. OS X also currently does not support debug contexts.

Please note that these values are only a hint. No failure will be reported if one or more of these values are not supported by the system; instead, SFML will try to find the closest valid match. You can then retrieve the settings that the window actually used to create its context, with Window::getSettings().

Definition at line 37 of file ContextSettings.hpp.

## Member Enumeration Documentation

## ◆ Attribute

enum sf::ContextSettings::Attribute

Enumeration of the context attribute flags.

Enumerator
Default | Non-debug, compatibility context (this and the core attribute are mutually exclusive)
Core | Core attribute.
Debug | Debug attribute.

Definition at line 43 of file ContextSettings.hpp.

## Constructor & Destructor Documentation

## ◆ ContextSettings()

sf::ContextSettings::ContextSettings | ( | unsigned int | depth = 0,
|  | unsigned int | stencil = 0,
|  | unsigned int | antialiasing = 0,
|  | unsigned int | major = 1,
|  | unsigned int | minor = 1,
|  | unsigned int | attributes = Default,
|  | bool | sRgb = false )

inlineexplicit

Default constructor.

Parameters

  depth | Depth buffer bits
  stencil | Stencil buffer bits
  antialiasing | Antialiasing level
  major | Major number of the context version
  minor | Minor number of the context version
  attributes | Attribute flags of the context
  sRgb | sRGB capable framebuffer

Definition at line 62 of file ContextSettings.hpp.

## Member Data Documentation

## ◆ antialiasingLevel

unsigned int sf::ContextSettings::antialiasingLevel

Level of antialiasing.

Definition at line 78 of file ContextSettings.hpp.

## ◆ attributeFlags

Uint32 sf::ContextSettings::attributeFlags

The attribute flags to create the context with.

Definition at line 81 of file ContextSettings.hpp.

## ◆ depthBits

unsigned int sf::ContextSettings::depthBits

Bits of the depth buffer.

Definition at line 76 of file ContextSettings.hpp.

## ◆ majorVersion

unsigned int sf::ContextSettings::majorVersion

Major number of the context version to create.

Definition at line 79 of file ContextSettings.hpp.

## ◆ minorVersion

unsigned int sf::ContextSettings::minorVersion

Minor number of the context version to create.

Definition at line 80 of file ContextSettings.hpp.

## ◆ sRgbCapable

bool sf::ContextSettings::sRgbCapable

Whether the context framebuffer is sRGB capable.

Definition at line 82 of file ContextSettings.hpp.

## ◆ stencilBits

unsigned int sf::ContextSettings::stencilBits

Bits of the stencil buffer.

Definition at line 77 of file ContextSettings.hpp.

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

- ContextSettings.hpp