-- |
-- Module      : WGPU.Internal.SDL.Surface
-- Description : SDL-specific surfaces.
module WGPU.Internal.SDL.Surface
  ( -- * Functions
    createSurface,
  )
where

import Control.Monad.IO.Class (MonadIO)
import qualified SDL (Window)
import WGPU.Internal.Instance (Instance, wgpuHsInstance)
import WGPU.Internal.Surface (Surface (Surface))
import qualified WGPU.Raw.SDLSurface (createSurface)

createSurface ::
  MonadIO m =>
  Instance ->
  SDL.Window ->
  m Surface
createSurface :: Instance -> Window -> m Surface
createSurface Instance
inst Window
window =
  Instance -> WGPUSurface -> Surface
Surface Instance
inst
    (WGPUSurface -> Surface) -> m WGPUSurface -> m Surface
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> WGPUHsInstance -> Window -> m WGPUSurface
forall (m :: * -> *).
MonadIO m =>
WGPUHsInstance -> Window -> m WGPUSurface
WGPU.Raw.SDLSurface.createSurface (Instance -> WGPUHsInstance
wgpuHsInstance Instance
inst) Window
window