Struct SDL_GLAttr

#[repr(transparent)]
pub struct SDL_GLAttr(pub i32);
Available on crate feature dep_sdl3 only.
Expand description

An enumeration of OpenGL configuration attributes.

While you can set most OpenGL attributes normally, the attributes listed above must be known before SDL creates the window that will be used with the OpenGL context. These attributes are set and read with SDL_GL_SetAttribute() and SDL_GL_GetAttribute().

In some cases, these attributes are minimum requests; the GL does not promise to give you exactly what you asked for. It’s possible to ask for a 16-bit depth buffer and get a 24-bit one instead, for example, or to ask for no stencil buffer and still have one available. Context creation should fail if the GL can’t provide your requested attributes at a minimum, but you should check to see exactly what you got.

§Availability

This enum is available since SDL 3.2.0.

§Known values (sdl3-sys)

Associated constantGlobal constantDescription
RED_SIZESDL_GL_RED_SIZEthe minimum number of bits for the red channel of the color buffer; defaults to 3.
GREEN_SIZESDL_GL_GREEN_SIZEthe minimum number of bits for the green channel of the color buffer; defaults to 3.
BLUE_SIZESDL_GL_BLUE_SIZEthe minimum number of bits for the blue channel of the color buffer; defaults to 2.
ALPHA_SIZESDL_GL_ALPHA_SIZEthe minimum number of bits for the alpha channel of the color buffer; defaults to 0.
BUFFER_SIZESDL_GL_BUFFER_SIZEthe minimum number of bits for frame buffer size; defaults to 0.
DOUBLEBUFFERSDL_GL_DOUBLEBUFFERwhether the output is single or double buffered; defaults to double buffering on.
DEPTH_SIZESDL_GL_DEPTH_SIZEthe minimum number of bits in the depth buffer; defaults to 16.
STENCIL_SIZESDL_GL_STENCIL_SIZEthe minimum number of bits in the stencil buffer; defaults to 0.
ACCUM_RED_SIZESDL_GL_ACCUM_RED_SIZEthe minimum number of bits for the red channel of the accumulation buffer; defaults to 0.
ACCUM_GREEN_SIZESDL_GL_ACCUM_GREEN_SIZEthe minimum number of bits for the green channel of the accumulation buffer; defaults to 0.
ACCUM_BLUE_SIZESDL_GL_ACCUM_BLUE_SIZEthe minimum number of bits for the blue channel of the accumulation buffer; defaults to 0.
ACCUM_ALPHA_SIZESDL_GL_ACCUM_ALPHA_SIZEthe minimum number of bits for the alpha channel of the accumulation buffer; defaults to 0.
STEREOSDL_GL_STEREOwhether the output is stereo 3D; defaults to off.
MULTISAMPLEBUFFERSSDL_GL_MULTISAMPLEBUFFERSthe number of buffers used for multisample anti-aliasing; defaults to 0.
MULTISAMPLESAMPLESSDL_GL_MULTISAMPLESAMPLESthe number of samples used around the current pixel used for multisample anti-aliasing.
ACCELERATED_VISUALSDL_GL_ACCELERATED_VISUALset to 1 to require hardware acceleration, set to 0 to force software rendering; defaults to allow either.
RETAINED_BACKINGSDL_GL_RETAINED_BACKINGnot used (deprecated).
CONTEXT_MAJOR_VERSIONSDL_GL_CONTEXT_MAJOR_VERSIONOpenGL context major version.
CONTEXT_MINOR_VERSIONSDL_GL_CONTEXT_MINOR_VERSIONOpenGL context minor version.
CONTEXT_FLAGSSDL_GL_CONTEXT_FLAGSsome combination of 0 or more of elements of the SDL_GLContextFlag enumeration; defaults to 0.
CONTEXT_PROFILE_MASKSDL_GL_CONTEXT_PROFILE_MASKtype of GL context (Core, Compatibility, ES). See SDL_GLProfile; default value depends on platform.
SHARE_WITH_CURRENT_CONTEXTSDL_GL_SHARE_WITH_CURRENT_CONTEXTOpenGL context sharing; defaults to 0.
FRAMEBUFFER_SRGB_CAPABLESDL_GL_FRAMEBUFFER_SRGB_CAPABLErequests sRGB capable visual; defaults to 0.
CONTEXT_RELEASE_BEHAVIORSDL_GL_CONTEXT_RELEASE_BEHAVIORsets context the release behavior. See SDL_GLContextReleaseFlag; defaults to FLUSH.
CONTEXT_RESET_NOTIFICATIONSDL_GL_CONTEXT_RESET_NOTIFICATIONset context reset notification. See SDL_GLContextResetNotification; defaults to NO_NOTIFICATION.
CONTEXT_NO_ERRORSDL_GL_CONTEXT_NO_ERROR
FLOATBUFFERSSDL_GL_FLOATBUFFERS
EGL_PLATFORMSDL_GL_EGL_PLATFORM

Tuple Fields§

§0: i32

Implementations§

§

impl SDL_GLAttr

pub const RED_SIZE: SDL_GLAttr

the minimum number of bits for the red channel of the color buffer; defaults to 3.

pub const GREEN_SIZE: SDL_GLAttr

the minimum number of bits for the green channel of the color buffer; defaults to 3.

pub const BLUE_SIZE: SDL_GLAttr

the minimum number of bits for the blue channel of the color buffer; defaults to 2.

pub const ALPHA_SIZE: SDL_GLAttr

the minimum number of bits for the alpha channel of the color buffer; defaults to 0.

pub const BUFFER_SIZE: SDL_GLAttr

the minimum number of bits for frame buffer size; defaults to 0.

pub const DOUBLEBUFFER: SDL_GLAttr

whether the output is single or double buffered; defaults to double buffering on.

pub const DEPTH_SIZE: SDL_GLAttr

the minimum number of bits in the depth buffer; defaults to 16.

pub const STENCIL_SIZE: SDL_GLAttr

the minimum number of bits in the stencil buffer; defaults to 0.

pub const ACCUM_RED_SIZE: SDL_GLAttr

the minimum number of bits for the red channel of the accumulation buffer; defaults to 0.

pub const ACCUM_GREEN_SIZE: SDL_GLAttr

the minimum number of bits for the green channel of the accumulation buffer; defaults to 0.

pub const ACCUM_BLUE_SIZE: SDL_GLAttr

the minimum number of bits for the blue channel of the accumulation buffer; defaults to 0.

pub const ACCUM_ALPHA_SIZE: SDL_GLAttr

the minimum number of bits for the alpha channel of the accumulation buffer; defaults to 0.

pub const STEREO: SDL_GLAttr

whether the output is stereo 3D; defaults to off.

pub const MULTISAMPLEBUFFERS: SDL_GLAttr

the number of buffers used for multisample anti-aliasing; defaults to 0.

pub const MULTISAMPLESAMPLES: SDL_GLAttr

the number of samples used around the current pixel used for multisample anti-aliasing.

pub const ACCELERATED_VISUAL: SDL_GLAttr

set to 1 to require hardware acceleration, set to 0 to force software rendering; defaults to allow either.

pub const RETAINED_BACKING: SDL_GLAttr

not used (deprecated).

pub const CONTEXT_MAJOR_VERSION: SDL_GLAttr

OpenGL context major version.

pub const CONTEXT_MINOR_VERSION: SDL_GLAttr

OpenGL context minor version.

pub const CONTEXT_FLAGS: SDL_GLAttr

some combination of 0 or more of elements of the SDL_GLContextFlag enumeration; defaults to 0.

pub const CONTEXT_PROFILE_MASK: SDL_GLAttr

type of GL context (Core, Compatibility, ES). See SDL_GLProfile; default value depends on platform.

pub const SHARE_WITH_CURRENT_CONTEXT: SDL_GLAttr

OpenGL context sharing; defaults to 0.

pub const FRAMEBUFFER_SRGB_CAPABLE: SDL_GLAttr

requests sRGB capable visual; defaults to 0.

pub const CONTEXT_RELEASE_BEHAVIOR: SDL_GLAttr

sets context the release behavior. See SDL_GLContextReleaseFlag; defaults to FLUSH.

pub const CONTEXT_RESET_NOTIFICATION: SDL_GLAttr

set context reset notification. See SDL_GLContextResetNotification; defaults to NO_NOTIFICATION.

pub const CONTEXT_NO_ERROR: SDL_GLAttr

pub const FLOATBUFFERS: SDL_GLAttr

pub const EGL_PLATFORM: SDL_GLAttr

Trait Implementations§

§

impl Clone for SDL_GLAttr

§

fn clone(&self) -> SDL_GLAttr

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Default for SDL_GLAttr

§

fn default() -> SDL_GLAttr

Returns the “default value” for a type. Read more
§

impl From<SDL_GLAttr> for i32

§

fn from(value: SDL_GLAttr) -> i32

Converts to this type from the input type.
§

impl Hash for SDL_GLAttr

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl Ord for SDL_GLAttr

§

fn cmp(&self, other: &SDL_GLAttr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
§

impl PartialEq for SDL_GLAttr

§

fn eq(&self, other: &SDL_GLAttr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for SDL_GLAttr

§

fn partial_cmp(&self, other: &SDL_GLAttr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
§

impl Copy for SDL_GLAttr

§

impl Eq for SDL_GLAttr

§

impl StructuralPartialEq for SDL_GLAttr

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ByteSized for T

Source§

const BYTE_ALIGN: usize = _

The alignment of this type in bytes.
Source§

const BYTE_SIZE: usize = _

The size of this type in bytes.
Source§

fn byte_align(&self) -> usize

Returns the alignment of this type in bytes.
Source§

fn byte_size(&self) -> usize

Returns the size of this type in bytes. Read more
Source§

fn ptr_size_ratio(&self) -> [usize; 2]

Returns the size ratio between Ptr::BYTES and BYTE_SIZE. Read more
Source§

impl<T, R> Chain<R> for T
where T: ?Sized,

Source§

fn chain<F>(self, f: F) -> R
where F: FnOnce(Self) -> R, Self: Sized,

Chain a function which takes the parameter by value.
Source§

fn chain_ref<F>(&self, f: F) -> R
where F: FnOnce(&Self) -> R,

Chain a function which takes the parameter by shared reference.
Source§

fn chain_mut<F>(&mut self, f: F) -> R
where F: FnOnce(&mut Self) -> R,

Chain a function which takes the parameter by exclusive reference.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> ExtAny for T
where T: Any + ?Sized,

Source§

fn type_id() -> TypeId

Returns the TypeId of Self. Read more
Source§

fn type_of(&self) -> TypeId

Returns the TypeId of self. Read more
Source§

fn type_name(&self) -> &'static str

Returns the type name of self. Read more
Source§

fn type_is<T: 'static>(&self) -> bool

Returns true if Self is of type T. Read more
Source§

fn type_hash(&self) -> u64

Returns a deterministic hash of the TypeId of Self.
Source§

fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64

Returns a deterministic hash of the TypeId of Self using a custom hasher.
Source§

fn as_any_ref(&self) -> &dyn Any
where Self: Sized,

Upcasts &self as &dyn Any. Read more
Source§

fn as_any_mut(&mut self) -> &mut dyn Any
where Self: Sized,

Upcasts &mut self as &mut dyn Any. Read more
Source§

fn as_any_box(self: Box<Self>) -> Box<dyn Any>
where Self: Sized,

Upcasts Box<self> as Box<dyn Any>. Read more
Source§

fn downcast_ref<T: 'static>(&self) -> Option<&T>

Available on crate feature unsafe_layout only.
Returns some shared reference to the inner value if it is of type T. Read more
Source§

fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T>

Available on crate feature unsafe_layout only.
Returns some exclusive reference to the inner value if it is of type T. Read more
Source§

impl<T> ExtMem for T
where T: ?Sized,

Source§

const NEEDS_DROP: bool = _

Know whether dropping values of this type matters, in compile-time.
Source§

fn mem_align_of<T>() -> usize

Returns the minimum alignment of the type in bytes. Read more
Source§

fn mem_align_of_val(&self) -> usize

Returns the alignment of the pointed-to value in bytes. Read more
Source§

fn mem_size_of<T>() -> usize

Returns the size of a type in bytes. Read more
Source§

fn mem_size_of_val(&self) -> usize

Returns the size of the pointed-to value in bytes. Read more
Source§

fn mem_copy(&self) -> Self
where Self: Copy,

Bitwise-copies a value. Read more
Source§

fn mem_needs_drop(&self) -> bool

Returns true if dropping values of this type matters. Read more
Source§

fn mem_drop(self)
where Self: Sized,

Drops self by running its destructor. Read more
Source§

fn mem_forget(self)
where Self: Sized,

Forgets about self without running its destructor. Read more
Source§

fn mem_replace(&mut self, other: Self) -> Self
where Self: Sized,

Replaces self with other, returning the previous value of self. Read more
Source§

fn mem_take(&mut self) -> Self
where Self: Default,

Replaces self with its default value, returning the previous value of self. Read more
Source§

fn mem_swap(&mut self, other: &mut Self)
where Self: Sized,

Swaps the value of self and other without deinitializing either one. Read more
Source§

unsafe fn mem_zeroed<T>() -> T

Available on crate feature unsafe_layout only.
Returns the value of type T represented by the all-zero byte-pattern. Read more
Source§

unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst

Available on crate feature unsafe_layout only.
Returns the value of type T represented by the all-zero byte-pattern. Read more
Source§

fn mem_as_bytes(&self) -> &[u8]
where Self: Sync + Unpin,

Available on crate feature unsafe_slice only.
View a Sync + Unpin self as &[u8]. Read more
Source§

fn mem_as_bytes_mut(&mut self) -> &mut [u8]
where Self: Sync + Unpin,

Available on crate feature unsafe_slice only.
View a Sync + Unpin self as &mut [u8]. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

Source§

impl<T> Hook for T

Source§

fn hook_ref<F>(self, f: F) -> Self
where F: FnOnce(&Self),

Applies a function which takes the parameter by shared reference, and then returns the (possibly) modified owned value. Read more
Source§

fn hook_mut<F>(self, f: F) -> Self
where F: FnOnce(&mut Self),

Applies a function which takes the parameter by exclusive reference, and then returns the (possibly) modified owned value. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

§

fn into_sample(self) -> T

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

§

impl<T> Ungil for T
where T: Send,