Skip to content

Commit a3d6d1c

Browse files
tngafwlehmannpolarina
authored andcommitted
Add createSoftwareRenderer
1 parent bf4da79 commit a3d6d1c

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
=====
33

44
* Add `SDL.Exception` module, exposing `SDLException`
5+
* Add new function, `createSoftwareRenderer`, to render onto a surface
56
* Add joystick POV hat support
67
* Remove deprecated functionality:
78
* `InitEverything` enumeration in `SDL.Init`

src/SDL/Video.hs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ module SDL.Video
4040

4141
-- * Renderer Management
4242
, createRenderer
43+
, createSoftwareRenderer
4344
, destroyRenderer
4445

4546
-- * Clipboard Handling
@@ -566,5 +567,14 @@ createRenderer (Window w) driver config =
566567
throwIfNull "SDL.Video.createRenderer" "SDL_CreateRenderer" $
567568
Raw.createRenderer w driver (toNumber config)
568569

570+
-- | Create a 2D software rendering context for the given surface.
571+
--
572+
-- See @<https://wiki.libsdl.org/SDL_CreateSoftwareRenderer>@
573+
createSoftwareRenderer :: MonadIO m => Surface -> m Renderer
574+
createSoftwareRenderer (Surface ptr _) =
575+
liftIO . fmap Renderer $
576+
throwIfNull "SDL.Video.createSoftwareRenderer" "SDL_CreateSoftwareRenderer" $
577+
Raw.createSoftwareRenderer ptr
578+
569579
destroyRenderer :: MonadIO m => Renderer -> m ()
570580
destroyRenderer (Renderer r) = Raw.destroyRenderer r

0 commit comments

Comments
 (0)