| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
SDL.Video.OpenGL
Synopsis
- defaultOpenGL :: OpenGLConfig
- data OpenGLConfig = OpenGLConfig {}
- 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=CompatibilityNormal2 1 }
data OpenGLConfig Source #
Configuration used when creating an OpenGL rendering context.
Constructors
| OpenGLConfig | |
Fields
| |
Instances
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
| Generic Profile Source # | |||||
Defined in SDL.Video.OpenGL Associated Types
| |||||
| Read Profile Source # | |||||
| Show Profile Source # | |||||
| Eq Profile Source # | |||||
| Ord Profile Source # | |||||
Defined in SDL.Video.OpenGL | |||||
| type Rep Profile Source # | |||||
Defined in SDL.Video.OpenGL type Rep Profile = D1 ('MetaData "Profile" "SDL.Video.OpenGL" "sdl2-2.5.5.1-AgF6e4ywebPJjPO67cQCnV" '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
| 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 Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Mode Source # toConstr :: Mode -> Constr Source # dataTypeOf :: Mode -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Mode) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mode) Source # gmapT :: (forall b. Data b => b -> b) -> Mode -> Mode Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mode -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mode -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Mode -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Mode -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Mode -> m Mode Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Mode -> m Mode Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Mode -> m Mode Source # | |
| Bounded Mode Source # | |
| Enum Mode Source # | |
| Generic Mode Source # | |
Defined in SDL.Video.OpenGL | |
| Read Mode Source # | |
| Show Mode Source # | |
| Eq Mode Source # | |
| Ord Mode Source # | |
| type Rep Mode Source # | |
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
| 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 Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SwapInterval Source # toConstr :: SwapInterval -> Constr Source # dataTypeOf :: SwapInterval -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SwapInterval) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SwapInterval) Source # gmapT :: (forall b. Data b => b -> b) -> SwapInterval -> SwapInterval Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SwapInterval -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SwapInterval -> r Source # gmapQ :: (forall d. Data d => d -> u) -> SwapInterval -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> SwapInterval -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SwapInterval -> m SwapInterval Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SwapInterval -> m SwapInterval Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SwapInterval -> m SwapInterval Source # | |||||
| Bounded SwapInterval Source # | |||||
Defined in SDL.Video.OpenGL | |||||
| Enum SwapInterval Source # | |||||
Defined in SDL.Video.OpenGL Methods succ :: SwapInterval -> SwapInterval Source # pred :: SwapInterval -> SwapInterval Source # toEnum :: Int -> SwapInterval Source # fromEnum :: SwapInterval -> Int Source # enumFrom :: SwapInterval -> [SwapInterval] Source # enumFromThen :: SwapInterval -> SwapInterval -> [SwapInterval] Source # enumFromTo :: SwapInterval -> SwapInterval -> [SwapInterval] Source # enumFromThenTo :: SwapInterval -> SwapInterval -> SwapInterval -> [SwapInterval] Source # | |||||
| Generic SwapInterval Source # | |||||
Defined in SDL.Video.OpenGL Associated Types
Methods from :: SwapInterval -> Rep SwapInterval x Source # to :: Rep SwapInterval x -> SwapInterval Source # | |||||
| Read SwapInterval Source # | |||||
Defined in SDL.Video.OpenGL | |||||
| Show SwapInterval Source # | |||||
Defined in SDL.Video.OpenGL | |||||
| Eq SwapInterval Source # | |||||
Defined in SDL.Video.OpenGL Methods (==) :: SwapInterval -> SwapInterval -> Bool Source # (/=) :: SwapInterval -> SwapInterval -> Bool Source # | |||||
| Ord SwapInterval Source # | |||||
Defined in SDL.Video.OpenGL Methods compare :: SwapInterval -> SwapInterval -> Ordering Source # (<) :: SwapInterval -> SwapInterval -> Bool Source # (<=) :: SwapInterval -> SwapInterval -> Bool Source # (>) :: SwapInterval -> SwapInterval -> Bool Source # (>=) :: SwapInterval -> SwapInterval -> Bool Source # max :: SwapInterval -> SwapInterval -> SwapInterval Source # min :: SwapInterval -> SwapInterval -> SwapInterval Source # | |||||
| FromNumber SwapInterval CInt Source # | |||||
Defined in SDL.Video.OpenGL Methods fromNumber :: CInt -> SwapInterval Source # | |||||
| ToNumber SwapInterval CInt Source # | |||||
Defined in SDL.Video.OpenGL Methods toNumber :: SwapInterval -> CInt Source # | |||||
| type Rep SwapInterval Source # | |||||
Defined in SDL.Video.OpenGL type Rep SwapInterval = D1 ('MetaData "SwapInterval" "SDL.Video.OpenGL" "sdl2-2.5.5.1-AgF6e4ywebPJjPO67cQCnV" '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.