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 }