h-raylib-4.6.0.5: Raylib bindings for Haskell
Safe HaskellSafe-Inferred
LanguageHaskell2010

Raylib.Util

Synopsis

Bracket functions

withWindow :: (MonadIO m, MonadMask m) => Int -> Int -> String -> Int -> (WindowResources -> m b) -> m b Source #

drawing :: (MonadIO m, MonadMask m) => m b -> m b Source #

mode2D :: (MonadIO m, MonadMask m) => Camera2D -> m b -> m b Source #

mode3D :: (MonadIO m, MonadMask m) => Camera3D -> m b -> m b Source #

textureMode :: (MonadIO m, MonadMask m) => RenderTexture -> m b -> m b Source #

shaderMode :: (MonadIO m, MonadMask m) => Shader -> m b -> m b Source #

blendMode :: (MonadIO m, MonadMask m) => BlendMode -> m b -> m b Source #

scissorMode :: (MonadIO m, MonadMask m) => Int -> Int -> Int -> Int -> m b -> m b Source #

Game loop functions

whileWindowOpen Source #

Arguments

:: MonadIO m 
=> (a -> m a)

The game loop. Its only argument should be the current application state, and it should return a new state.

-> a

The initial application state.

-> m a

The application state after the last frame.

Calls the game loop every frame as long as the window is open. For larger projects, instead of using this function, consider making a custom game loop for flexibility.

whileWindowOpen_ :: MonadIO m => (a -> m a) -> a -> m () Source #

Same as whileWindowOpen, but discards the final state.

whileWindowOpen0 :: MonadIO m => m () -> m () Source #

Same as whileWindowOpen, but without application state.

Miscellaneous

cameraDirectionRay :: Camera3D -> Ray Source #

Gets the direction of a camera as a ray.

setMaterialShader Source #

Arguments

:: Model

The model to operate on

-> Int

The index of the material

-> Shader

The shader to use

-> Model

The modified model

Sets the shader of a material at a specific index (WARNING: This will fail if the index provided is out of bounds).

inGHCi :: Bool Source #

True if the program is running in GHCi

class Freeable a where Source #

Minimal complete definition

Nothing

Methods

rlFreeDependents :: a -> Ptr a -> IO () Source #

rlFree :: a -> Ptr a -> IO () Source #

Instances

Instances details
Freeable CBool Source # 
Instance details

Defined in Raylib.ForeignUtil

Freeable CChar Source # 
Instance details

Defined in Raylib.ForeignUtil

Freeable CFloat Source # 
Instance details

Defined in Raylib.ForeignUtil

Freeable CInt Source # 
Instance details

Defined in Raylib.ForeignUtil

Methods

rlFreeDependents :: CInt -> Ptr CInt -> IO () Source #

rlFree :: CInt -> Ptr CInt -> IO () Source #

Freeable CShort Source # 
Instance details

Defined in Raylib.ForeignUtil

Freeable CUChar Source # 
Instance details

Defined in Raylib.ForeignUtil

Freeable CUInt Source # 
Instance details

Defined in Raylib.ForeignUtil

Freeable CUShort Source # 
Instance details

Defined in Raylib.ForeignUtil

Freeable AudioStream Source # 
Instance details

Defined in Raylib.Types

Freeable BoneInfo Source # 
Instance details

Defined in Raylib.Types

Freeable BoundingBox Source # 
Instance details

Defined in Raylib.Types

Freeable Camera2D Source # 
Instance details

Defined in Raylib.Types

Freeable Camera3D Source # 
Instance details

Defined in Raylib.Types

Freeable Color Source # 
Instance details

Defined in Raylib.Types

Freeable ConfigFlag Source # 
Instance details

Defined in Raylib.Types

Freeable FilePathList Source # 
Instance details

Defined in Raylib.Types

Freeable Font Source # 
Instance details

Defined in Raylib.Types

Methods

rlFreeDependents :: Font -> Ptr Font -> IO () Source #

rlFree :: Font -> Ptr Font -> IO () Source #

Freeable GlyphInfo Source # 
Instance details

Defined in Raylib.Types

Freeable Image Source # 
Instance details

Defined in Raylib.Types

Freeable Material Source # 
Instance details

Defined in Raylib.Types

Freeable MaterialMap Source # 
Instance details

Defined in Raylib.Types

Freeable Matrix Source # 
Instance details

Defined in Raylib.Types

Freeable Mesh Source # 
Instance details

Defined in Raylib.Types

Methods

rlFreeDependents :: Mesh -> Ptr Mesh -> IO () Source #

rlFree :: Mesh -> Ptr Mesh -> IO () Source #

Freeable Model Source # 
Instance details

Defined in Raylib.Types

Freeable ModelAnimation Source # 
Instance details

Defined in Raylib.Types

Freeable Music Source # 
Instance details

Defined in Raylib.Types

Freeable NPatchInfo Source # 
Instance details

Defined in Raylib.Types

Freeable RAudioBuffer Source # 
Instance details

Defined in Raylib.Types

Freeable RAudioProcessor Source # 
Instance details

Defined in Raylib.Types

Freeable RLDrawCall Source # 
Instance details

Defined in Raylib.Types

Freeable RLRenderBatch Source # 
Instance details

Defined in Raylib.Types

Freeable RLVertexBuffer Source # 
Instance details

Defined in Raylib.Types

Freeable Ray Source # 
Instance details

Defined in Raylib.Types

Methods

rlFreeDependents :: Ray -> Ptr Ray -> IO () Source #

rlFree :: Ray -> Ptr Ray -> IO () Source #

Freeable RayCollision Source # 
Instance details

Defined in Raylib.Types

Freeable Rectangle Source # 
Instance details

Defined in Raylib.Types

Freeable RenderTexture Source # 
Instance details

Defined in Raylib.Types

Freeable Shader Source # 
Instance details

Defined in Raylib.Types

Freeable Sound Source # 
Instance details

Defined in Raylib.Types

Freeable Texture Source # 
Instance details

Defined in Raylib.Types

Freeable Transform Source # 
Instance details

Defined in Raylib.Types

Freeable Vector2 Source # 
Instance details

Defined in Raylib.Types

Freeable Vector3 Source # 
Instance details

Defined in Raylib.Types

Freeable Vector4 Source # 
Instance details

Defined in Raylib.Types

Freeable VrDeviceInfo Source # 
Instance details

Defined in Raylib.Types

Freeable VrStereoConfig Source # 
Instance details

Defined in Raylib.Types

Freeable Wave Source # 
Instance details

Defined in Raylib.Types

Methods

rlFreeDependents :: Wave -> Ptr Wave -> IO () Source #

rlFree :: Wave -> Ptr Wave -> IO () Source #

(Freeable a, Storable a) => Freeable [a] Source # 
Instance details

Defined in Raylib.ForeignUtil

Methods

rlFreeDependents :: [a] -> Ptr [a] -> IO () Source #

rlFree :: [a] -> Ptr [a] -> IO () Source #