| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Mischief.Render
Synopsis
- module Mischief.SDL.Window
- data RenderPlugin
- module Mischief.Render.Sprite.Common
- cameraSwapView :: Entity -> Query System TextureView
- cameraView :: Entity -> Query System TextureView
- data Camera = Camera
- data OutputTo = OutputTo
- module Mischief.Render.Material
- data RenderAdapter
- data RenderDevice
- data RenderFirst
- data RenderLast
- data RenderPostprocess
- data RenderPrepare
- data RenderQueue
- data RenderTransparent
- data RenderUpdate
- createBuffer :: forall (a :: Type -> Type). Bufferable a => RenderDevice -> System (Buffer a)
- maintainBuffer :: forall (a :: Type -> Type). (Typeable a, Component (a CPU), Bufferable a) => System ()
- uploadBuffer :: Bufferable a => RenderQueue -> Buffer a -> a CPU -> System ()
- data Buffer (a :: k)
- data CPU
- data GPU
- layer0 :: RenderLayers
- layer1 :: RenderLayers
- layer10 :: RenderLayers
- layer11 :: RenderLayers
- layer12 :: RenderLayers
- layer13 :: RenderLayers
- layer14 :: RenderLayers
- layer15 :: RenderLayers
- layer16 :: RenderLayers
- layer17 :: RenderLayers
- layer18 :: RenderLayers
- layer19 :: RenderLayers
- layer2 :: RenderLayers
- layer20 :: RenderLayers
- layer21 :: RenderLayers
- layer22 :: RenderLayers
- layer23 :: RenderLayers
- layer24 :: RenderLayers
- layer25 :: RenderLayers
- layer26 :: RenderLayers
- layer27 :: RenderLayers
- layer28 :: RenderLayers
- layer29 :: RenderLayers
- layer3 :: RenderLayers
- layer30 :: RenderLayers
- layer31 :: RenderLayers
- layer4 :: RenderLayers
- layer5 :: RenderLayers
- layer6 :: RenderLayers
- layer7 :: RenderLayers
- layer8 :: RenderLayers
- layer9 :: RenderLayers
- data RenderLayers
- data Clear
- data RenderOptions = RenderOptions {}
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
1. Introduction
- 1.1. Starting Out
- 1.2. Your First Animation
- 1.3. Your First Shader
2. Guides
module Mischief.SDL.Window
data RenderPlugin Source #
Instances
| Eq RenderPlugin Source # | |
Defined in Mischief.Render.Plugin | |
| Plugin RenderPlugin Source # | |
Defined in Mischief.Render.Plugin | |
cameraView :: Entity -> Query System TextureView Source #
Constructors
| Camera |
Instances
| Component Camera Source # | |||||
Defined in Mischief.Render.Camera Associated Types
| |||||
| type IsExclusiveRel Camera Source # | |||||
Defined in Mischief.Render.Camera | |||||
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 |
Instances
| Component OutputTo Source # | |||||
Defined in Mischief.Render.Camera Associated Types
| |||||
| type IsExclusiveRel OutputTo Source # | |||||
Defined in Mischief.Render.Camera | |||||
module Mischief.Render.Material
data RenderAdapter Source #
Instances
| Component RenderAdapter Source # | |||||
Defined in Mischief.Render.Core Associated Types
Methods required :: Set DefaultComponentType # onAdd :: [Hook RenderAdapter] # onSet :: [Hook RenderAdapter] # onRemove :: [Hook RenderAdapter] # onAddRel :: [HookRel RenderAdapter] # onSetRel :: [HookRel RenderAdapter] # onRemoveRel :: [HookRel RenderAdapter] # | |||||
| type IsExclusiveRel RenderAdapter Source # | |||||
Defined in Mischief.Render.Core | |||||
data RenderDevice Source #
Instances
| Component RenderDevice Source # | |||||
Defined in Mischief.Render.Core Associated Types
Methods required :: Set DefaultComponentType # onAdd :: [Hook RenderDevice] # onSet :: [Hook RenderDevice] # onRemove :: [Hook RenderDevice] # onAddRel :: [HookRel RenderDevice] # onSetRel :: [HookRel RenderDevice] # onRemoveRel :: [HookRel RenderDevice] # | |||||
| type IsExclusiveRel RenderDevice Source # | |||||
Defined in Mischief.Render.Core | |||||
data RenderFirst Source #
Instances
| Schedule RenderFirst Source # | |
Defined in Mischief.Render.Core | |
data RenderLast Source #
Instances
| Schedule RenderLast Source # | |
Defined in Mischief.Render.Core | |
data RenderPostprocess Source #
Instances
| Schedule RenderPostprocess Source # | |
Defined in Mischief.Render.Core | |
data RenderPrepare Source #
Instances
| Schedule RenderPrepare Source # | |
Defined in Mischief.Render.Core | |
data RenderQueue Source #
Instances
| Component RenderQueue Source # | |||||
Defined in Mischief.Render.Core Associated Types
Methods required :: Set DefaultComponentType # onAdd :: [Hook RenderQueue] # onSet :: [Hook RenderQueue] # onRemove :: [Hook RenderQueue] # onAddRel :: [HookRel RenderQueue] # onSetRel :: [HookRel RenderQueue] # onRemoveRel :: [HookRel RenderQueue] # | |||||
| type IsExclusiveRel RenderQueue Source # | |||||
Defined in Mischief.Render.Core | |||||
data RenderTransparent Source #
Instances
| Schedule RenderTransparent Source # | |
Defined in Mischief.Render.Core | |
data RenderUpdate Source #
Instances
| Schedule RenderUpdate Source # | |
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 #
uploadBuffer :: Bufferable a => RenderQueue -> Buffer a -> a CPU -> System () Source #
Instances
| (Typeable a, Typeable k) => Component (Buffer a) Source # | |||||
Defined in Mischief.Render.Buffer Associated Types
| |||||
| type IsExclusiveRel (Buffer a) Source # | |||||
Defined in Mischief.Render.Buffer | |||||
data RenderLayers Source #
Instances
data RenderOptions Source #
Constructors
| RenderOptions | |
Instances
| Default RenderOptions Source # | |
Defined in Mischief.Render.Material.Definition Methods def :: RenderOptions # | |