Skip to content

Commit f129106

Browse files
committed
Added support for ARB_tessellation_shader.
1 parent d3dd4d8 commit f129106

File tree

3 files changed

+172
-0
lines changed

3 files changed

+172
-0
lines changed

OpenGLRaw.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ library
8686
Graphics.Rendering.OpenGL.Raw.ARB.Shadow,
8787
Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient,
8888
Graphics.Rendering.OpenGL.Raw.ARB.Sync,
89+
Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader,
8990
Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp,
9091
Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject,
9192
Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression,

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ module Graphics.Rendering.OpenGL.Raw.ARB (
8686
-- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderBitEncoding, -- #82
8787
module Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery, -- #85
8888
module Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect, -- #87
89+
module Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader, -- #91
8990
module Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3, -- #94
9091
module Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility, -- #95
9192
module Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters, -- #114
@@ -163,6 +164,7 @@ import Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile
163164
import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery2
164165
import Graphics.Rendering.OpenGL.Raw.ARB.TimerQuery
165166
import Graphics.Rendering.OpenGL.Raw.ARB.DrawIndirect
167+
import Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader
166168
import Graphics.Rendering.OpenGL.Raw.ARB.TransformFeedback3
167169
import Graphics.Rendering.OpenGL.Raw.ARB.ES2Compatibility
168170
import Graphics.Rendering.OpenGL.Raw.ARB.ShaderAtomicCounters
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
{-# LANGUAGE ForeignFunctionInterface, CPP #-}
2+
--------------------------------------------------------------------------------
3+
-- |
4+
-- Module : Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader
5+
-- Copyright : (c) Sven Panne 2013
6+
-- License : BSD3
7+
--
8+
-- Maintainer : Sven Panne <svenpanne@gmail.com>
9+
-- Stability : stable
10+
-- Portability : portable
11+
--
12+
-- All raw functions and tokens from the ARB_tessellation_shader extension, see
13+
-- <http://www.opengl.org/registry/specs/ARB/tessellation_shader.txt>.
14+
--
15+
--------------------------------------------------------------------------------
16+
17+
module Graphics.Rendering.OpenGL.Raw.ARB.TessellationShader (
18+
-- * Functions
19+
glPatchParameteri,
20+
glPatchParameterfv,
21+
22+
-- * Tokens
23+
gl_PATCHES,
24+
gl_PATCH_VERTICES,
25+
gl_PATCH_DEFAULT_INNER_LEVEL,
26+
gl_PATCH_DEFAULT_OUTER_LEVEL,
27+
gl_TESS_CONTROL_OUTPUT_VERTICES,
28+
gl_TESS_GEN_MODE,
29+
gl_TESS_GEN_SPACING,
30+
gl_TESS_GEN_VERTEX_ORDER,
31+
gl_TESS_GEN_POINT_MODE,
32+
gl_TRIANGLES,
33+
gl_ISOLINES,
34+
gl_EQUAL,
35+
gl_FRACTIONAL_ODD,
36+
gl_FRACTIONAL_EVEN,
37+
gl_CCW,
38+
gl_CW,
39+
gl_MAX_PATCH_VERTICES,
40+
gl_MAX_TESS_GEN_LEVEL,
41+
gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
42+
gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
43+
gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
44+
gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
45+
gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
46+
gl_MAX_TESS_PATCH_COMPONENTS,
47+
gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
48+
gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
49+
gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
50+
gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
51+
gl_MAX_TESS_CONTROL_INPUT_COMPONENTS,
52+
gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
53+
gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
54+
gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
55+
gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
56+
gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
57+
gl_TESS_EVALUATION_SHADER,
58+
gl_TESS_CONTROL_SHADER
59+
) where
60+
61+
import Foreign.C.Types
62+
import Foreign.Ptr
63+
import Graphics.Rendering.OpenGL.Raw.Extensions
64+
import Graphics.Rendering.OpenGL.Raw.Core31.Tokens
65+
import Graphics.Rendering.OpenGL.Raw.Core31.Types
66+
67+
#include "HsOpenGLRaw.h"
68+
69+
extensionNameString :: String
70+
extensionNameString = "GL_ARB_ARB_tessellation_shader"
71+
72+
EXTENSION_ENTRY(glPatchParameteri,GLenum -> GLint -> IO ())
73+
EXTENSION_ENTRY(glPatchParameterfv,GLenum -> Ptr GLfloat -> IO ())
74+
75+
gl_PATCHES :: GLenum
76+
gl_PATCHES = 0x000E
77+
78+
gl_PATCH_VERTICES :: GLenum
79+
gl_PATCH_VERTICES = 0x8E72
80+
81+
gl_PATCH_DEFAULT_INNER_LEVEL :: GLenum
82+
gl_PATCH_DEFAULT_INNER_LEVEL = 0x8E73
83+
84+
gl_PATCH_DEFAULT_OUTER_LEVEL :: GLenum
85+
gl_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
86+
87+
gl_TESS_CONTROL_OUTPUT_VERTICES :: GLenum
88+
gl_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
89+
90+
gl_TESS_GEN_MODE :: GLenum
91+
gl_TESS_GEN_MODE = 0x8E76
92+
93+
gl_TESS_GEN_SPACING :: GLenum
94+
gl_TESS_GEN_SPACING = 0x8E77
95+
96+
gl_TESS_GEN_VERTEX_ORDER :: GLenum
97+
gl_TESS_GEN_VERTEX_ORDER = 0x8E78
98+
99+
gl_TESS_GEN_POINT_MODE :: GLenum
100+
gl_TESS_GEN_POINT_MODE = 0x8E79
101+
102+
gl_ISOLINES :: GLenum
103+
gl_ISOLINES = 0x8E7A
104+
105+
gl_FRACTIONAL_ODD :: GLenum
106+
gl_FRACTIONAL_ODD = 0x8E7B
107+
108+
gl_FRACTIONAL_EVEN :: GLenum
109+
gl_FRACTIONAL_EVEN = 0x8E7C
110+
111+
gl_MAX_PATCH_VERTICES :: GLenum
112+
gl_MAX_PATCH_VERTICES = 0x8E7D
113+
114+
gl_MAX_TESS_GEN_LEVEL :: GLenum
115+
gl_MAX_TESS_GEN_LEVEL = 0x8E7E
116+
117+
gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS :: GLenum
118+
gl_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
119+
120+
gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS :: GLenum
121+
gl_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
122+
123+
gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS :: GLenum
124+
gl_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
125+
126+
gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS :: GLenum
127+
gl_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
128+
129+
gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS :: GLenum
130+
gl_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
131+
132+
gl_MAX_TESS_PATCH_COMPONENTS :: GLenum
133+
gl_MAX_TESS_PATCH_COMPONENTS = 0x8E84
134+
135+
gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS :: GLenum
136+
gl_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
137+
138+
gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS :: GLenum
139+
gl_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
140+
141+
gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS :: GLenum
142+
gl_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
143+
144+
gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS :: GLenum
145+
gl_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
146+
147+
gl_MAX_TESS_CONTROL_INPUT_COMPONENTS :: GLenum
148+
gl_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
149+
150+
gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS :: GLenum
151+
gl_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
152+
153+
gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS :: GLenum
154+
gl_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
155+
156+
gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS :: GLenum
157+
gl_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
158+
159+
gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER :: GLenum
160+
gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
161+
162+
gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER :: GLenum
163+
gl_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
164+
165+
gl_TESS_EVALUATION_SHADER :: GLenum
166+
gl_TESS_EVALUATION_SHADER = 0x8E87
167+
168+
gl_TESS_CONTROL_SHADER :: GLenum
169+
gl_TESS_CONTROL_SHADER = 0x8E88

0 commit comments

Comments
 (0)