gore-and-ash-lambdacube-0.2.0.0: Core module for Gore&Ash engine that do something.

Copyright(c) Anton Gushcha, 2016
LicenseBSD3
Maintainerncrashed@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Game.GoreAndAsh.LambdaCube.API

Description

 

Synopsis

Documentation

class (MonadIO m, MonadThrow m) => MonadLambdaCube m where Source #

Low level monadic API for module.

Methods

lambdacubeUpdateSize :: Word -> Word -> m () Source #

Update viewport size for rendering engine Should be called when window size is changed (or every frame)

lambdacubeAddPipeline :: [FilePath] -> String -> PipelineId -> Writer PipelineSchema a -> m () Source #

Compile and register new pipeline.

Throws: PipeLineCompileFailed or PipeLineAlreadyRegistered when failed.

lambdacubeDeletePipeline :: PipelineId -> m () Source #

Removes pipeline from engine, deallocates all storages for rendering storages

Note: if pipeline with the name doesn't exists, do nothing.

lambdacubeCreateStorage :: PipelineId -> m (StorageId, GLStorage) Source #

Creates new storage (corresponding to one game object)

Note: if pipeline not found, throws PipeLineNotFound

lambdacubeDeleteStorage :: StorageId -> m () Source #

Removes storage for pipeline, deallocates it

Note: if storage with the id doesn't exists, do nothing

lambdacubeGetStorage :: StorageId -> m GLStorage Source #

Getting storage by ID

Throws StorageNotFound if no storage found

lambdacubeRenderStorageLast :: StorageId -> m () Source #

Adds storage to rendering queue

lambdacubeRenderStorageFirst :: StorageId -> m () Source #

Adds storage to rendering queue

lambdacubeStopRendering :: StorageId -> m () Source #

Removes storage from rendering queue

data LambdaCubeException Source #

Exception type that could be thrown by the module

Constructors

PipeLineCompileFailed String PipelineId String

Thrown when a pipeline compilation failed, first is pipeline main module, last is error message

PipeLineAlreadyRegistered PipelineId

Thrown when tries to register the same pipeline twice

PipeLineNotFound PipelineId

Trhown when tries to create storage for unregistered pipeline

StorageNotFound StorageId

Thrown when tries to get unregistered storage

PipeLineIncompatible StorageId String

Thrown when failed to bind pipeline to context, contains pipeline name and error message

Instances

Show LambdaCubeException Source # 
Generic LambdaCubeException Source # 
Exception LambdaCubeException Source # 
type Rep LambdaCubeException Source #