mischief-render
Safe HaskellNone
LanguageGHC2024

Mischief.Render

Synopsis

Mischief Render

This is the official rendering library for the Mischief game engine. It has tools for rendering, shading, and animating meshes and other objects. It uses SDL and WGPU, being compatible with most major rendering backends (Vulkan, Metal, DirectX, WebGPU, etc.).

The renderer is highly customizable and extensible. Custom, strongly-typed shaders are written directly in Haskell. Materials are easy to schedule, extend, and modify.

Dependencies

You will need to manually install the following libraries (click for install guide):

The Rendering Book

data RenderPlugin Source #

Instances

Instances details
Eq RenderPlugin Source # 
Instance details

Defined in Mischief.Render.Plugin

Plugin RenderPlugin Source # 
Instance details

Defined in Mischief.Render.Plugin

Methods

deps :: [Dependency] #

init :: System () #

data Camera Source #

Constructors

Camera 

Instances

Instances details
Component Camera Source # 
Instance details

Defined in Mischief.Render.Camera

Associated Types

type IsExclusiveRel Camera 
Instance details

Defined in Mischief.Render.Camera

type IsExclusiveRel Camera Source # 
Instance details

Defined in Mischief.Render.Camera

data OutputTo Source #

Add this as a relationship between a camera and a window to have the camera's output texture be rendered to that window.

Exclusive.

Constructors

OutputTo 

data RenderFirst Source #

Instances

Instances details
Schedule RenderFirst Source # 
Instance details

Defined in Mischief.Render.Core

data RenderLast Source #

Instances

Instances details
Schedule RenderLast Source # 
Instance details

Defined in Mischief.Render.Core

data RenderPostprocess Source #

Instances

Instances details
Schedule RenderPostprocess Source # 
Instance details

Defined in Mischief.Render.Core

data RenderPrepare Source #

Instances

Instances details
Schedule RenderPrepare Source # 
Instance details

Defined in Mischief.Render.Core

data RenderTransparent Source #

Instances

Instances details
Schedule RenderTransparent Source # 
Instance details

Defined in Mischief.Render.Core

data RenderUpdate Source #

Instances

Instances details
Schedule RenderUpdate Source # 
Instance details

Defined in Mischief.Render.Core

createBuffer :: forall (a :: Type -> Type). Bufferable a => RenderDevice -> System (Buffer a) Source #

maintainBuffer :: forall (a :: Type -> Type). (Typeable a, Component (a CPU), Bufferable a) => System () Source #

data Buffer (a :: k) Source #

Instances

Instances details
(Typeable a, Typeable k) => Component (Buffer a) Source # 
Instance details

Defined in Mischief.Render.Buffer

Associated Types

type IsExclusiveRel (Buffer a) 
Instance details

Defined in Mischief.Render.Buffer

type IsExclusiveRel (Buffer a) Source # 
Instance details

Defined in Mischief.Render.Buffer

data CPU Source #

data GPU Source #

data RenderLayers Source #

Instances

Instances details
Default RenderLayers Source # 
Instance details

Defined in Mischief.Render.Layers

Methods

def :: RenderLayers #

Semigroup RenderLayers Source # 
Instance details

Defined in Mischief.Render.Layers

Bits RenderLayers Source # 
Instance details

Defined in Mischief.Render.Layers

Show RenderLayers Source # 
Instance details

Defined in Mischief.Render.Layers

Eq RenderLayers Source # 
Instance details

Defined in Mischief.Render.Layers

Component RenderLayers Source # 
Instance details

Defined in Mischief.Render.Layers

Associated Types

type IsExclusiveRel RenderLayers 
Instance details

Defined in Mischief.Render.Layers

type IsExclusiveRel RenderLayers Source # 
Instance details

Defined in Mischief.Render.Layers

data Clear Source #

Constructors

DontClear 
Clear (V3 Float) 

data RenderOptions Source #

Constructors

RenderOptions 

Fields

Instances

Instances details
Default RenderOptions Source # 
Instance details

Defined in Mischief.Render.Material.Definition

Methods

def :: RenderOptions #