summaryrefslogtreecommitdiff
path: root/src/LambdaCube/GL.hs
blob: 5436125e95e0228d575b900e22b8165a89fcbcd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
module LambdaCube.GL (
    -- Schema
    module LambdaCube.PipelineSchema,
    -- IR
    V2(..),V3(..),V4(..),
    -- Array, Buffer, Texture
    Array(..),
    ArrayType(..),
    Buffer,
    BufferSetter,
    IndexStream(..),
    Stream(..),
    StreamSetter,
    FetchPrimitive(..),
    InputType(..),
    Primitive(..),
    SetterFun,
    TextureData,
    InputSetter(..),
    fromStreamType,
    sizeOfArrayType,
    toStreamType,
    compileBuffer,
    disposeBuffer,
    updateBuffer,
    bufferSize,
    arraySize,
    arrayType,
    uploadTexture2DToGPU,
    uploadTexture2DToGPU',
    disposeTexture,

    -- GL: Renderer, Storage, Object
    GLUniformName,
    GLRenderer,
    GLStorage,
    Object,
    schema,
    schemaFromPipeline,
    allocRenderer,
    disposeRenderer,
    setStorage,
    renderFrame,
    allocStorage,
    disposeStorage,
    uniformSetter,
    addObject,
    removeObject,
    enableObject,
    setObjectOrder,
    objectUniformSetter,
    setScreenSize,
    sortSlotObjects,

    uniformBool,
    uniformV2B,
    uniformV3B,
    uniformV4B,

    uniformWord,
    uniformV2U,
    uniformV3U,
    uniformV4U,

    uniformInt,
    uniformV2I,
    uniformV3I,
    uniformV4I,

    uniformFloat,
    uniformV2F,
    uniformV3F,
    uniformV4F,

    uniformM22F,
    uniformM23F,
    uniformM24F,
    uniformM32F,
    uniformM33F,
    uniformM34F,
    uniformM42F,
    uniformM43F,
    uniformM44F,

    uniformFTexture2D,

    -- schema builder utility functions
    (@:),
    defObjectArray,
    defUniforms,
    makeSchema,

    (@=),
    updateUniforms,
    updateObjectUniforms
) where

import LambdaCube.GL.Type
import LambdaCube.GL.Backend
import LambdaCube.GL.Data
import LambdaCube.GL.Input
import LambdaCube.IR
import LambdaCube.Linear
import LambdaCube.PipelineSchema
import LambdaCube.PipelineSchemaUtil