Skip to content

Commit 230b7a1

Browse files
committed
Added support for ARB_compute_shader.
1 parent b362a99 commit 230b7a1

File tree

3 files changed

+109
-0
lines changed

3 files changed

+109
-0
lines changed

OpenGLRaw.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ library
4545
Graphics.Rendering.OpenGL.Raw.ARB,
4646
Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat,
4747
Graphics.Rendering.OpenGL.Raw.ARB.Compatibility,
48+
Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader,
4849
Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer,
4950
Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile,
5051
Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat,

src/Graphics/Rendering/OpenGL/Raw/ARB.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ module Graphics.Rendering.OpenGL.Raw.ARB (
8989
module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3, -- #94
9090
module Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility, -- #95
9191
module Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters, -- #114
92+
module Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader, -- #122
9293
module Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility, -- #127
9394
module Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject, -- #137
9495
module Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject -- #148
@@ -165,6 +166,7 @@ import Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect
165166
import Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3
166167
import Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility
167168
import Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters
169+
import Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader
168170
import Graphics.Rendering.OpenGL.Raw.ARB.ES3Compatibility
169171
import Graphics.Rendering.OpenGL.Raw.ARB.ShaderStorageBufferObject
170172
import Graphics.Rendering.OpenGL.Raw.ARB.QueryBufferObject
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
{-# LANGUAGE ForeignFunctionInterface, CPP #-}
2+
--------------------------------------------------------------------------------
3+
-- |
4+
-- Module : Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader
5+
-- Copyright : (c) Sven Panne 2013
6+
-- License : BSD3
7+
--
8+
-- Maintainer : Sven Panne <[email protected]>
9+
-- Stability : stable
10+
-- Portability : portable
11+
--
12+
-- All raw functions and tokens from the ARB_compute_shader extension, see
13+
-- <http://www.opengl.org/registry/specs/ARB/compute_shader.txt>.
14+
--
15+
--------------------------------------------------------------------------------
16+
17+
module Graphics.Rendering.OpenGL.Raw.ARB.ComputeShader (
18+
-- * Functions
19+
glDispatchCompute, glDispatchComputeIndirect,
20+
21+
-- * Tokens
22+
gl_COMPUTE_SHADER,
23+
gl_MAX_COMPUTE_UNIFORM_BLOCKS,
24+
gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
25+
gl_MAX_COMPUTE_IMAGE_UNIFORMS,
26+
gl_MAX_COMPUTE_SHARED_MEMORY_SIZE,
27+
gl_MAX_COMPUTE_UNIFORM_COMPONENTS,
28+
gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
29+
gl_MAX_COMPUTE_ATOMIC_COUNTERS,
30+
gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
31+
gl_MAX_COMPUTE_LOCAL_INVOCATIONS,
32+
gl_MAX_COMPUTE_WORK_GROUP_COUNT,
33+
gl_MAX_COMPUTE_WORK_GROUP_SIZE,
34+
gl_COMPUTE_LOCAL_WORK_SIZE,
35+
gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
36+
gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
37+
gl_DISPATCH_INDIRECT_BUFFER,
38+
gl_DISPATCH_INDIRECT_BUFFER_BINDING,
39+
gl_COMPUTE_SHADER_BIT
40+
) where
41+
42+
import Foreign.C.Types
43+
import Graphics.Rendering.OpenGL.Raw.Extensions
44+
import Graphics.Rendering.OpenGL.Raw.Core31.Types
45+
46+
#include "HsOpenGLRaw.h"
47+
48+
extensionNameString :: String
49+
extensionNameString = "GL_ARB_compute_shader"
50+
51+
EXTENSION_ENTRY(glDispatchCompute,GLuint -> GLuint -> GLuint -> IO ())
52+
EXTENSION_ENTRY(glDispatchComputeIndirect,GLintptr -> IO ())
53+
54+
gl_COMPUTE_SHADER :: GLenum
55+
gl_COMPUTE_SHADER = 0x91B9
56+
57+
gl_MAX_COMPUTE_UNIFORM_BLOCKS :: GLenum
58+
gl_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
59+
60+
gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS :: GLenum
61+
gl_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
62+
63+
gl_MAX_COMPUTE_IMAGE_UNIFORMS :: GLenum
64+
gl_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
65+
66+
gl_MAX_COMPUTE_SHARED_MEMORY_SIZE :: GLenum
67+
gl_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
68+
69+
gl_MAX_COMPUTE_UNIFORM_COMPONENTS :: GLenum
70+
gl_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
71+
72+
gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS :: GLenum
73+
gl_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
74+
75+
gl_MAX_COMPUTE_ATOMIC_COUNTERS :: GLenum
76+
gl_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
77+
78+
gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS :: GLenum
79+
gl_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
80+
81+
gl_MAX_COMPUTE_LOCAL_INVOCATIONS :: GLenum
82+
gl_MAX_COMPUTE_LOCAL_INVOCATIONS = 0x90EB
83+
84+
gl_MAX_COMPUTE_WORK_GROUP_COUNT :: GLenum
85+
gl_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
86+
87+
gl_MAX_COMPUTE_WORK_GROUP_SIZE :: GLenum
88+
gl_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
89+
90+
gl_COMPUTE_LOCAL_WORK_SIZE :: GLenum
91+
gl_COMPUTE_LOCAL_WORK_SIZE = 0x8267
92+
93+
gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER :: GLenum
94+
gl_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
95+
96+
gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER :: GLenum
97+
gl_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
98+
99+
gl_DISPATCH_INDIRECT_BUFFER :: GLenum
100+
gl_DISPATCH_INDIRECT_BUFFER = 0x90EE
101+
102+
gl_DISPATCH_INDIRECT_BUFFER_BINDING :: GLenum
103+
gl_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
104+
105+
gl_COMPUTE_SHADER_BIT :: GLbitfield
106+
gl_COMPUTE_SHADER_BIT = 0x00000020

0 commit comments

Comments
 (0)