1 /*
2  * Copyright (c) 2002-2008 LWJGL Project
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  *   notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  *   notice, this list of conditions and the following disclaimer in the
14  *   documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of 'LWJGL' nor the names of
17  *   its contributors may be used to endorse or promote products derived
18  *   from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 package org.lwjgl.opengl;
33 
34 import org.lwjgl.util.generator.*;
35 import org.lwjgl.util.generator.opengl.GLsizei;
36 import org.lwjgl.util.generator.opengl.GLuint;
37 
38 import java.nio.*;
39 
40 @Dependent
41 @Extension(postfix = "")
42 public interface ARB_gpu_shader_fp64 {
43 
44 	/**
45 	 * Returned in the <type> parameter of GetActiveUniform, and
46 	 * GetTransformFeedbackVarying:
47 	 */
48 	int GL_DOUBLE_VEC2 = 0x8FFC;
49 	int GL_DOUBLE_VEC3 = 0x8FFD;
50 	int GL_DOUBLE_VEC4 = 0x8FFE;
51 	int GL_DOUBLE_MAT2 = 0x8F46;
52 	int GL_DOUBLE_MAT3 = 0x8F47;
53 	int GL_DOUBLE_MAT4 = 0x8F48;
54 	int GL_DOUBLE_MAT2x3 = 0x8F49;
55 	int GL_DOUBLE_MAT2x4 = 0x8F4A;
56 	int GL_DOUBLE_MAT3x2 = 0x8F4B;
57 	int GL_DOUBLE_MAT3x4 = 0x8F4C;
58 	int GL_DOUBLE_MAT4x2 = 0x8F4D;
59 	int GL_DOUBLE_MAT4x3 = 0x8F4E;
60 
61 	@Reuse("GL40")
glUniform1d(int location, double x)62 	void glUniform1d(int location, double x);
63 
64 	@Reuse("GL40")
glUniform2d(int location, double x, double y)65 	void glUniform2d(int location, double x, double y);
66 
67 	@Reuse("GL40")
glUniform3d(int location, double x, double y, double z)68 	void glUniform3d(int location, double x, double y, double z);
69 
70 	@Reuse("GL40")
glUniform4d(int location, double x, double y, double z, double w)71 	void glUniform4d(int location, double x, double y, double z, double w);
72 
73 	@Reuse("GL40")
74 	@StripPostfix("value")
glUniform1dv(int location, @AutoSize(R) @GLsizei int count, @Const DoubleBuffer value)75 	void glUniform1dv(int location, @AutoSize("value") @GLsizei int count, @Const DoubleBuffer value);
76 
77 	@Reuse("GL40")
78 	@StripPostfix("value")
glUniform2dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)79 	void glUniform2dv(int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const DoubleBuffer value);
80 
81 	@Reuse("GL40")
82 	@StripPostfix("value")
glUniform3dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)83 	void glUniform3dv(int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const DoubleBuffer value);
84 
85 	@Reuse("GL40")
86 	@StripPostfix("value")
glUniform4dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)87 	void glUniform4dv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const DoubleBuffer value);
88 
89 	@Reuse("GL40")
90 	@StripPostfix("value")
glUniformMatrix2dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)91 	void glUniformMatrix2dv(int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
92 
93 	@Reuse("GL40")
94 	@StripPostfix("value")
glUniformMatrix3dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)95 	void glUniformMatrix3dv(int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
96 
97 	@Reuse("GL40")
98 	@StripPostfix("value")
glUniformMatrix4dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)99 	void glUniformMatrix4dv(int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
100 
101 	@Reuse("GL40")
102 	@StripPostfix("value")
glUniformMatrix2x3dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)103 	void glUniformMatrix2x3dv(int location, @AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
104 
105 	@Reuse("GL40")
106 	@StripPostfix("value")
glUniformMatrix2x4dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)107 	void glUniformMatrix2x4dv(int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
108 
109 	@Reuse("GL40")
110 	@StripPostfix("value")
glUniformMatrix3x2dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)111 	void glUniformMatrix3x2dv(int location, @AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
112 
113 	@Reuse("GL40")
114 	@StripPostfix("value")
glUniformMatrix3x4dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)115 	void glUniformMatrix3x4dv(int location, @AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
116 
117 	@Reuse("GL40")
118 	@StripPostfix("value")
glUniformMatrix4x2dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)119 	void glUniformMatrix4x2dv(int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
120 
121 	@Reuse("GL40")
122 	@StripPostfix("value")
glUniformMatrix4x3dv(int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)123 	void glUniformMatrix4x3dv(int location, @AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
124 
125 	@Reuse("GL40")
126 	@StripPostfix("params")
glGetUniformdv(@Luint int program, int location, @OutParameter @Check DoubleBuffer params)127 	void glGetUniformdv(@GLuint int program, int location, @OutParameter @Check DoubleBuffer params);
128 
129 	// ----
130 
131 	@Dependent("GL_EXT_direct_state_access")
glProgramUniform1dEXT(@Luint int program, int location, double x)132 	void glProgramUniform1dEXT(@GLuint int program, int location, double x);
133 
134 	@Dependent("GL_EXT_direct_state_access")
glProgramUniform2dEXT(@Luint int program, int location, double x, double y)135 	void glProgramUniform2dEXT(@GLuint int program, int location, double x, double y);
136 
137 	@Dependent("GL_EXT_direct_state_access")
glProgramUniform3dEXT(@Luint int program, int location, double x, double y, double z)138 	void glProgramUniform3dEXT(@GLuint int program, int location, double x, double y, double z);
139 
140 	@Dependent("GL_EXT_direct_state_access")
glProgramUniform4dEXT(@Luint int program, int location, double x, double y, double z, double w)141 	void glProgramUniform4dEXT(@GLuint int program, int location, double x, double y, double z, double w);
142 
143 	@Dependent("GL_EXT_direct_state_access")
144 	@StripPostfix(value="value", extension="EXT")
glProgramUniform1dvEXT(@Luint int program, int location, @AutoSize(value = R) @GLsizei int count, @Const DoubleBuffer value)145 	void glProgramUniform1dvEXT(@GLuint int program, int location, @AutoSize(value = "value") @GLsizei int count, @Const DoubleBuffer value);
146 
147 	@Dependent("GL_EXT_direct_state_access")
148 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniform2dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)149 	void glProgramUniform2dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 1") @GLsizei int count, @Const DoubleBuffer value);
150 
151 	@Dependent("GL_EXT_direct_state_access")
152 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniform3dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)153 	void glProgramUniform3dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / 3") @GLsizei int count, @Const DoubleBuffer value);
154 
155 	@Dependent("GL_EXT_direct_state_access")
156 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniform4dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, @Const DoubleBuffer value)157 	void glProgramUniform4dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, @Const DoubleBuffer value);
158 
159 	@Dependent("GL_EXT_direct_state_access")
160 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix2dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)161 	void glProgramUniformMatrix2dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 2") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
162 
163 	@Dependent("GL_EXT_direct_state_access")
164 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix3dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)165 	void glProgramUniformMatrix3dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
166 
167 	@Dependent("GL_EXT_direct_state_access")
168 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix4dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)169 	void glProgramUniformMatrix4dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 4") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
170 
171 	@Dependent("GL_EXT_direct_state_access")
172 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix2x3dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)173 	void glProgramUniformMatrix2x3dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (2 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
174 
175 	@Dependent("GL_EXT_direct_state_access")
176 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix2x4dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)177 	void glProgramUniformMatrix2x4dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
178 
179 	@Dependent("GL_EXT_direct_state_access")
180 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix3x2dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)181 	void glProgramUniformMatrix3x2dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 2)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
182 
183 	@Dependent("GL_EXT_direct_state_access")
184 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix3x4dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)185 	void glProgramUniformMatrix3x4dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (3 * 4)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
186 
187 	@Dependent("GL_EXT_direct_state_access")
188 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix4x2dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)189 	void glProgramUniformMatrix4x2dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " >> 3") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
190 
191 	@Dependent("GL_EXT_direct_state_access")
192 	@StripPostfix(value = "value", extension = "EXT")
glProgramUniformMatrix4x3dvEXT(@Luint int program, int location, @AutoSize(value = R, expression = R) @GLsizei int count, boolean transpose, @Const DoubleBuffer value)193 	void glProgramUniformMatrix4x3dvEXT(@GLuint int program, int location, @AutoSize(value = "value", expression = " / (4 * 3)") @GLsizei int count, boolean transpose, @Const DoubleBuffer value);
194 
195 }