1+ module Web.GPU.GPUShaderModule (compilationInfo , GPUCompilationMessageType , error , warning , info ) where
2+
3+ import Prelude
4+
5+ import Effect (Effect )
6+ import Web.GPU.Internal.Types (GPUShaderModule )
7+ import Web.GPU.Internal.Unsigned (UnsignedLongLong )
8+ import Web.Promise (Promise )
9+
10+ newtype GPUCompilationMessageType = GPUCompilationMessageType String
11+
12+ derive instance Eq GPUCompilationMessageType
13+ derive instance Ord GPUCompilationMessageType
14+ derive newtype instance Show GPUCompilationMessageType
15+
16+ error :: GPUCompilationMessageType
17+ error = GPUCompilationMessageType " error"
18+
19+ warning :: GPUCompilationMessageType
20+ warning = GPUCompilationMessageType " warning"
21+
22+ info :: GPUCompilationMessageType
23+ info = GPUCompilationMessageType " info"
24+
25+ type GPUCompilationMessage =
26+ { message :: String
27+ , type :: GPUCompilationMessageType
28+ , lineNum :: UnsignedLongLong
29+ , linePos :: UnsignedLongLong
30+ , offset :: UnsignedLongLong
31+ , length :: UnsignedLongLong
32+ }
33+
34+ type GPUCompilationInfo =
35+ { messages :: Array GPUCompilationMessage
36+ }
37+
38+ foreign import compilationInfoImpl :: GPUShaderModule -> Effect (Promise GPUCompilationInfo )
39+
40+ compilationInfo :: GPUShaderModule -> Effect (Promise GPUCompilationInfo )
41+ compilationInfo = compilationInfoImpl
0 commit comments