Safe Haskell | None |
---|---|
Language | Haskell2010 |
SDL.Video.OpenGL
Synopsis
- defaultOpenGL :: OpenGLConfig
- data OpenGLConfig = OpenGLConfig {
- glColorPrecision :: V4 CInt
- glDepthPrecision :: CInt
- glStencilPrecision :: CInt
- glMultisampleSamples :: CInt
- glProfile :: Profile
- data GLContext
- glCreateContext :: (Functor m, MonadIO m) => Window -> m GLContext
- data Profile
- data Mode
- glMakeCurrent :: (Functor m, MonadIO m) => Window -> GLContext -> m ()
- glDeleteContext :: MonadIO m => GLContext -> m ()
- glGetDrawableSize :: MonadIO m => Window -> m (V2 CInt)
- glSwapWindow :: MonadIO m => Window -> m ()
- data SwapInterval
- swapInterval :: StateVar SwapInterval
- glGetProcAddress :: MonadIO m => CString -> m (Ptr ())
Creating and Configuring OpenGL Contexts
defaultOpenGL :: OpenGLConfig Source #
A set of default options for OpenGLConfig
defaultOpenGL
=OpenGLConfig
{glColorPrecision
= V4 8 8 8 0 ,glDepthPrecision
= 24 ,glStencilPrecision
= 8 ,glMultisampleSamples
= 1 ,glProfile
=Compatibility
Normal
2 1 }
data OpenGLConfig Source #
Configuration used when creating an OpenGL rendering context.
Constructors
OpenGLConfig | |
Fields
|
Instances
Eq OpenGLConfig Source # | |
Defined in SDL.Video.OpenGL | |
Ord OpenGLConfig Source # | |
Defined in SDL.Video.OpenGL Methods compare :: OpenGLConfig -> OpenGLConfig -> Ordering (<) :: OpenGLConfig -> OpenGLConfig -> Bool (<=) :: OpenGLConfig -> OpenGLConfig -> Bool (>) :: OpenGLConfig -> OpenGLConfig -> Bool (>=) :: OpenGLConfig -> OpenGLConfig -> Bool max :: OpenGLConfig -> OpenGLConfig -> OpenGLConfig min :: OpenGLConfig -> OpenGLConfig -> OpenGLConfig | |
Read OpenGLConfig Source # | |
Defined in SDL.Video.OpenGL Methods readsPrec :: Int -> ReadS OpenGLConfig readList :: ReadS [OpenGLConfig] readPrec :: ReadPrec OpenGLConfig readListPrec :: ReadPrec [OpenGLConfig] | |
Show OpenGLConfig Source # | |
Defined in SDL.Video.OpenGL Methods showsPrec :: Int -> OpenGLConfig -> ShowS show :: OpenGLConfig -> String showList :: [OpenGLConfig] -> ShowS | |
Generic OpenGLConfig Source # | |
Defined in SDL.Video.OpenGL Associated Types type Rep OpenGLConfig :: Type -> Type | |
type Rep OpenGLConfig Source # | |
Defined in SDL.Video.OpenGL type Rep OpenGLConfig = D1 ('MetaData "OpenGLConfig" "SDL.Video.OpenGL" "sdl2-2.5.2.0-6hjaY12qIyxIiDeeSUdpRn" 'False) (C1 ('MetaCons "OpenGLConfig" 'PrefixI 'True) ((S1 ('MetaSel ('Just "glColorPrecision") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (V4 CInt)) :*: S1 ('MetaSel ('Just "glDepthPrecision") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt)) :*: (S1 ('MetaSel ('Just "glStencilPrecision") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt) :*: (S1 ('MetaSel ('Just "glMultisampleSamples") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt) :*: S1 ('MetaSel ('Just "glProfile") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Profile))))) |
A created OpenGL context.
glCreateContext :: (Functor m, MonadIO m) => Window -> m GLContext Source #
Create a new OpenGL context and makes it the current context for the window.
Throws SDLException
if the window wasn't configured with OpenGL
support, or if context creation fails.
See SDL_GL_CreateContext
for C documentation.
The profile a driver should use when creating an OpenGL context.
Constructors
Core Mode CInt CInt | Use the OpenGL core profile, with a given major and minor version |
Compatibility Mode CInt CInt | Use the compatibilty profile with a given major and minor version. The compatibility profile allows you to use deprecated functions such as immediate mode |
ES Mode CInt CInt | Use an OpenGL profile for embedded systems |
Instances
Eq Profile Source # | |
Ord Profile Source # | |
Read Profile Source # | |
Defined in SDL.Video.OpenGL | |
Show Profile Source # | |
Generic Profile Source # | |
type Rep Profile Source # | |
Defined in SDL.Video.OpenGL type Rep Profile = D1 ('MetaData "Profile" "SDL.Video.OpenGL" "sdl2-2.5.2.0-6hjaY12qIyxIiDeeSUdpRn" 'False) (C1 ('MetaCons "Core" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Mode) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt))) :+: (C1 ('MetaCons "Compatibility" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Mode) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt))) :+: C1 ('MetaCons "ES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Mode) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt))))) |
The mode a driver should use when creating an OpenGL context.
Constructors
Normal | A normal profile with no special debugging support |
Debug | Use a debug context, allowing the usage of extensions such as |
Instances
Bounded Mode Source # | |
Defined in SDL.Video.OpenGL | |
Enum Mode Source # | |
Eq Mode Source # | |
Data Mode Source # | |
Defined in SDL.Video.OpenGL Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Mode -> c Mode gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Mode dataTypeOf :: Mode -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Mode) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mode) gmapT :: (forall b. Data b => b -> b) -> Mode -> Mode gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mode -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mode -> r gmapQ :: (forall d. Data d => d -> u) -> Mode -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Mode -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Mode -> m Mode gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Mode -> m Mode gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Mode -> m Mode | |
Ord Mode Source # | |
Read Mode Source # | |
Defined in SDL.Video.OpenGL | |
Show Mode Source # | |
Generic Mode Source # | |
type Rep Mode Source # | |
Defined in SDL.Video.OpenGL type Rep Mode = D1 ('MetaData "Mode" "SDL.Video.OpenGL" "sdl2-2.5.2.0-6hjaY12qIyxIiDeeSUdpRn" 'False) (C1 ('MetaCons "Normal" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Debug" 'PrefixI 'False) (U1 :: Type -> Type)) |
glMakeCurrent :: (Functor m, MonadIO m) => Window -> GLContext -> m () Source #
Set up an OpenGL context for rendering into an OpenGL window.
Throws SDLException
on failure.
See SDL_GL_MakeCurrent
for C documentation.
glDeleteContext :: MonadIO m => GLContext -> m () Source #
Delete the given OpenGL context.
You must make sure that there are no pending commands in the OpenGL command queue, the driver may still be processing commands even if you have stopped issuing them!
The glFinish
command will block until the command queue has been fully
processed. You should call that function before deleting a context.
See SDL_GL_DeleteContext
for C documentation.
Querying for the drawable size without a Renderer
glGetDrawableSize :: MonadIO m => Window -> m (V2 CInt) Source #
Get the size of a window's underlying drawable area in pixels (for use with glViewport).
It may differ from windowSize
if window was created with windowHighDPI
flag.
Swapping
The process of "swapping" means to move the back-buffer into the window contents itself.
glSwapWindow :: MonadIO m => Window -> m () Source #
Replace the contents of the front buffer with the back buffer's. The
contents of the back buffer are undefined, clear them with glClear
or
equivalent before drawing to them again.
See SDL_GL_SwapWindow
for C documentation.
data SwapInterval Source #
The swap interval for the current OpenGL context.
Constructors
ImmediateUpdates | No vertical retrace synchronization |
SynchronizedUpdates | The buffer swap is synchronized with the vertical retrace |
LateSwapTearing |
Instances
Bounded SwapInterval Source # | |
Defined in SDL.Video.OpenGL | |
Enum SwapInterval Source # | |
Defined in SDL.Video.OpenGL Methods succ :: SwapInterval -> SwapInterval pred :: SwapInterval -> SwapInterval toEnum :: Int -> SwapInterval fromEnum :: SwapInterval -> Int enumFrom :: SwapInterval -> [SwapInterval] enumFromThen :: SwapInterval -> SwapInterval -> [SwapInterval] enumFromTo :: SwapInterval -> SwapInterval -> [SwapInterval] enumFromThenTo :: SwapInterval -> SwapInterval -> SwapInterval -> [SwapInterval] | |
Eq SwapInterval Source # | |
Defined in SDL.Video.OpenGL | |
Data SwapInterval Source # | |
Defined in SDL.Video.OpenGL Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SwapInterval -> c SwapInterval gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SwapInterval toConstr :: SwapInterval -> Constr dataTypeOf :: SwapInterval -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SwapInterval) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SwapInterval) gmapT :: (forall b. Data b => b -> b) -> SwapInterval -> SwapInterval gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SwapInterval -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SwapInterval -> r gmapQ :: (forall d. Data d => d -> u) -> SwapInterval -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> SwapInterval -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> SwapInterval -> m SwapInterval gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SwapInterval -> m SwapInterval gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SwapInterval -> m SwapInterval | |
Ord SwapInterval Source # | |
Defined in SDL.Video.OpenGL Methods compare :: SwapInterval -> SwapInterval -> Ordering (<) :: SwapInterval -> SwapInterval -> Bool (<=) :: SwapInterval -> SwapInterval -> Bool (>) :: SwapInterval -> SwapInterval -> Bool (>=) :: SwapInterval -> SwapInterval -> Bool max :: SwapInterval -> SwapInterval -> SwapInterval min :: SwapInterval -> SwapInterval -> SwapInterval | |
Read SwapInterval Source # | |
Defined in SDL.Video.OpenGL Methods readsPrec :: Int -> ReadS SwapInterval readList :: ReadS [SwapInterval] readPrec :: ReadPrec SwapInterval readListPrec :: ReadPrec [SwapInterval] | |
Show SwapInterval Source # | |
Defined in SDL.Video.OpenGL Methods showsPrec :: Int -> SwapInterval -> ShowS show :: SwapInterval -> String showList :: [SwapInterval] -> ShowS | |
Generic SwapInterval Source # | |
Defined in SDL.Video.OpenGL Associated Types type Rep SwapInterval :: Type -> Type | |
ToNumber SwapInterval CInt Source # | |
Defined in SDL.Video.OpenGL Methods toNumber :: SwapInterval -> CInt Source # | |
FromNumber SwapInterval CInt Source # | |
Defined in SDL.Video.OpenGL Methods fromNumber :: CInt -> SwapInterval Source # | |
type Rep SwapInterval Source # | |
Defined in SDL.Video.OpenGL type Rep SwapInterval = D1 ('MetaData "SwapInterval" "SDL.Video.OpenGL" "sdl2-2.5.2.0-6hjaY12qIyxIiDeeSUdpRn" 'False) (C1 ('MetaCons "ImmediateUpdates" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SynchronizedUpdates" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LateSwapTearing" 'PrefixI 'False) (U1 :: Type -> Type))) |
swapInterval :: StateVar SwapInterval Source #
Get or set the swap interval for the current OpenGL context.
This StateVar
can be modified using $=
and the current value retrieved with get
.
See SDL_GL_SetSwapInterval
and SDL_GL_GetSwapInterval
for C documentation.
Function Loading
glGetProcAddress :: MonadIO m => CString -> m (Ptr ()) Source #