1 /*
2  * Copyright (c) 2002-2011 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.*;
36 
37 import java.nio.Buffer;
38 import java.nio.ByteBuffer;
39 import java.nio.FloatBuffer;
40 import java.nio.IntBuffer;
41 
42 public interface NV_path_rendering {
43 
44 	/**
45 	 * Accepted in elements of the <commands> array parameter of
46 	 * PathCommandsNV and PathSubCommandsNV:
47 	 */
48 	int GL_CLOSE_PATH_NV                         = 0x00,
49 		GL_MOVE_TO_NV                            = 0x02,
50 		GL_RELATIVE_MOVE_TO_NV                   = 0x03,
51 		GL_LINE_TO_NV                            = 0x04,
52 		GL_RELATIVE_LINE_TO_NV                   = 0x05,
53 		GL_HORIZONTAL_LINE_TO_NV                 = 0x06,
54 		GL_RELATIVE_HORIZONTAL_LINE_TO_NV        = 0x07,
55 		GL_VERTICAL_LINE_TO_NV                   = 0x08,
56 		GL_RELATIVE_VERTICAL_LINE_TO_NV          = 0x09,
57 		GL_QUADRATIC_CURVE_TO_NV                 = 0x0A,
58 		GL_RELATIVE_QUADRATIC_CURVE_TO_NV        = 0x0B,
59 		GL_CUBIC_CURVE_TO_NV                     = 0x0C,
60 		GL_RELATIVE_CUBIC_CURVE_TO_NV            = 0x0D,
61 		GL_SMOOTH_QUADRATIC_CURVE_TO_NV          = 0x0E,
62 		GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F,
63 		GL_SMOOTH_CUBIC_CURVE_TO_NV              = 0x10,
64 		GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV     = 0x11,
65 		GL_SMALL_CCW_ARC_TO_NV                   = 0x12,
66 		GL_RELATIVE_SMALL_CCW_ARC_TO_NV          = 0x13,
67 		GL_SMALL_CW_ARC_TO_NV                    = 0x14,
68 		GL_RELATIVE_SMALL_CW_ARC_TO_NV           = 0x15,
69 		GL_LARGE_CCW_ARC_TO_NV                   = 0x16,
70 		GL_RELATIVE_LARGE_CCW_ARC_TO_NV          = 0x17,
71 		GL_LARGE_CW_ARC_TO_NV                    = 0x18,
72 		GL_RELATIVE_LARGE_CW_ARC_TO_NV           = 0x19,
73 		GL_CIRCULAR_CCW_ARC_TO_NV                = 0xF8,
74 		GL_CIRCULAR_CW_ARC_TO_NV                 = 0xFA,
75 		GL_CIRCULAR_TANGENT_ARC_TO_NV            = 0xFC,
76 		GL_ARC_TO_NV                             = 0xFE,
77 		GL_RELATIVE_ARC_TO_NV                    = 0xFF;
78 
79 	/** Accepted by the <format> parameter of PathStringNV: */
80 	int GL_PATH_FORMAT_SVG_NV = 0x9070,
81 		GL_PATH_FORMAT_PS_NV  = 0x9071;
82 
83 	/**
84 	 * Accepted by the <fontTarget> parameter of PathGlyphsNV and
85 	 * PathGlyphRangeNV:
86 	 */
87 	int GL_STANDARD_FONT_NAME_NV = 0x9072,
88 		GL_SYSTEM_FONT_NAME_NV   = 0x9073,
89 		GL_FILE_NAME_NV          = 0x9074;
90 
91 	/**
92 	 * Accepted by the <handleMissingGlyph> parameter of PathGlyphsNV and
93 	 * PathGlyphRangeNV:
94 	 */
95 	int GL_SKIP_MISSING_GLYPH_NV = 0x90A9,
96 		GL_USE_MISSING_GLYPH_NV  = 0x90AA;
97 
98 	/**
99 	 * Accepted by the <pname> parameter of PathParameterfNV,
100 	 * PathParameterfvNV, GetPathParameterfvNV, PathParameteriNV,
101 	 * PathParameterivNV, and GetPathParameterivNV:
102 	 */
103 	int GL_PATH_STROKE_WIDTH_NV      = 0x9075,
104 		GL_PATH_INITIAL_END_CAP_NV   = 0x9077,
105 		GL_PATH_TERMINAL_END_CAP_NV  = 0x9078,
106 		GL_PATH_JOIN_STYLE_NV        = 0x9079,
107 		GL_PATH_MITER_LIMIT_NV       = 0x907A,
108 		GL_PATH_INITIAL_DASH_CAP_NV  = 0x907C,
109 		GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D,
110 		GL_PATH_DASH_OFFSET_NV       = 0x907E,
111 		GL_PATH_CLIENT_LENGTH_NV     = 0x907F,
112 		GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4,
113 
114 	GL_PATH_FILL_MODE_NV             = 0x9080,
115 		GL_PATH_FILL_MASK_NV         = 0x9081,
116 		GL_PATH_FILL_COVER_MODE_NV   = 0x9082,
117 		GL_PATH_STROKE_COVER_MODE_NV = 0x9083,
118 		GL_PATH_STROKE_MASK_NV       = 0x9084;
119 
120 	/**
121 	 * Accepted by the <pname> parameter of PathParameterfNV and
122 	 * PathParameterfvNV:
123 	 */
124 	int GL_PATH_END_CAPS_NV  = 0x9076,
125 		GL_PATH_DASH_CAPS_NV = 0x907B;
126 
127 	/**
128 	 * Accepted by the <fillMode> parameter of StencilFillPathNV and
129 	 * StencilFillPathInstancedNV:
130 	 */
131 	int GL_COUNT_UP_NV   = 0x9088,
132 		GL_COUNT_DOWN_NV = 0x9089;
133 
134 	/**
135 	 * Accepted by the <color> parameter of PathColorGenNV,
136 	 * GetPathColorGenivNV, and GetPathColorGenfvNV:
137 	 */
138 	int GL_PRIMARY_COLOR      = 0x8577,  // from OpenGL 1.3
139 		GL_PRIMARY_COLOR_NV   = 0x852C,  // from NV_register_combiners
140 		GL_SECONDARY_COLOR_NV = 0x852D;  // from NV_register_combiners
141 
142 	/**
143 	 * Accepted by the <genMode> parameter of PathColorGenNV and
144 	 * PathTexGenNV:
145 	 */
146 	int GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A;
147 
148 	/**
149 	 * Accepted by the <coverMode> parameter of CoverFillPathNV and
150 	 * CoverFillPathInstancedNV:
151 	 */
152 	int GL_CONVEX_HULL_NV  = 0x908B,
153 		GL_BOUNDING_BOX_NV = 0x908D;
154 
155 	/**
156 	 * Accepted by the <transformType> parameter of
157 	 * StencilFillPathInstancedNV, StencilStrokePathInstancedNV,
158 	 * CoverFillPathInstancedNV, and CoverStrokePathInstancedNV:
159 	 */
160 	int GL_TRANSLATE_X_NV         = 0x908E,
161 		GL_TRANSLATE_Y_NV         = 0x908F,
162 		GL_TRANSLATE_2D_NV        = 0x9090,
163 		GL_TRANSLATE_3D_NV        = 0x9091,
164 		GL_AFFINE_2D_NV           = 0x9092,
165 		GL_AFFINE_3D_NV           = 0x9094,
166 		GL_TRANSPOSE_AFFINE_2D_NV = 0x9096,
167 		GL_TRANSPOSE_AFFINE_3D_NV = 0x9098;
168 
169 	/**
170 	 * Accepted by the <type> or <pathNameType> parameter of CallLists,
171 	 * StencilFillPathInstancedNV, StencilStrokePathInstancedNV,
172 	 * CoverFillPathInstancedNV, CoverStrokePathInstancedNV,
173 	 * GetPathMetricsNV, and GetPathSpacingNV:
174 	 */
175 	int GL_UTF8_NV  = 0x909A,
176 		GL_UTF16_NV = 0x909B;
177 
178 	/** Accepted by the <coverMode> parameter of CoverFillPathInstancedNV: */
179 	int GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C;
180 
181 	/**
182 	 * Accepted by the <pname> parameter of GetPathParameterfvNV and
183 	 * GetPathParameterivNV:
184 	 */
185 	int GL_PATH_COMMAND_COUNT_NV       = 0x909D,
186 		GL_PATH_COORD_COUNT_NV         = 0x909E,
187 		GL_PATH_DASH_ARRAY_COUNT_NV    = 0x909F,
188 		GL_PATH_COMPUTED_LENGTH_NV     = 0x90A0,
189 		GL_PATH_FILL_BOUNDING_BOX_NV   = 0x90A1,
190 		GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2;
191 
192 	/**
193 	 * Accepted by the <value> parameter of PathParameterfNV,
194 	 * PathParameterfvNV, PathParameteriNV, and PathParameterivNV
195 	 * when <pname> is one of PATH_END_CAPS_NV, PATH_INTIAL_END_CAP_NV,
196 	 * PATH_TERMINAL_END_CAP_NV, PATH_DASH_CAPS_NV, PATH_INITIAL_DASH_CAP_NV,
197 	 * and PATH_TERMINAL_DASH_CAP_NV:
198 	 */
199 	int GL_SQUARE_NV     = 0x90A3,
200 		GL_ROUND_NV      = 0x90A4,
201 		GL_TRIANGULAR_NV = 0x90A5;
202 
203 	/**
204 	 * Accepted by the <value> parameter of PathParameterfNV,
205 	 * PathParameterfvNV, PathParameteriNV, and PathParameterivNV
206 	 * when <pname> is PATH_JOIN_STYLE_NV:
207 	 */
208 	int GL_BEVEL_NV          = 0x90A6,
209 		GL_MITER_REVERT_NV   = 0x90A7,
210 		GL_MITER_TRUNCATE_NV = 0x90A8;
211 
212 	/**
213 	 * Accepted by the <value> parameter of PathParameterfNV,
214 	 * PathParameterfvNV, PathParameteriNV, and PathParameterivNV when
215 	 * <pname> is PATH_DASH_OFFSET_RESET_NV
216 	 */
217 	int GL_MOVE_TO_RESETS_NV    = 0x90B5,
218 		GL_MOVE_TO_CONTINUES_NV = 0x90B6;
219 
220 	/** Accepted by the <fontStyle> parameter of PathStringNV: */
221 	int GL_BOLD_BIT_NV   = 0x01,
222 		GL_ITALIC_BIT_NV = 0x02;
223 
224 	/**
225 	 * Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
226 	 * GetInteger64v, GetFloatv, and GetDoublev:
227 	 */
228 	int GL_PATH_ERROR_POSITION_NV = 0x90AB,
229 
230 	GL_PATH_FOG_GEN_MODE_NV = 0x90AC,
231 
232 	GL_PATH_STENCIL_FUNC_NV           = 0x90B7,
233 		GL_PATH_STENCIL_REF_NV        = 0x90B8,
234 		GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9,
235 
236 	GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV    = 0x90BD,
237 		GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE,
238 
239 	GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF;
240 
241 	/**
242 	 * Accepted as a bit within the <metricQueryMask> parameter of
243 	 * GetPathMetricRangeNV or GetPathMetricsNV:
244 	 */
245 
246 	int GL_GLYPH_WIDTH_BIT_NV                      = 0x01, // per-glyph metrics
247 		GL_GLYPH_HEIGHT_BIT_NV                     = 0x02,
248 		GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV       = 0x04,
249 		GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV       = 0x08,
250 		GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10,
251 		GL_GLYPH_VERTICAL_BEARING_X_BIT_NV         = 0x20,
252 		GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV         = 0x40,
253 		GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV   = 0x80,
254 		GL_GLYPH_HAS_KERNING_NV                    = 0x100,
255 		GL_FONT_X_MIN_BOUNDS_NV                    = 0x00010000, // per-font face metrics
256 		GL_FONT_Y_MIN_BOUNDS_NV                    = 0x00020000,
257 		GL_FONT_X_MAX_BOUNDS_NV                    = 0x00040000,
258 		GL_FONT_Y_MAX_BOUNDS_NV                    = 0x00080000,
259 		GL_FONT_UNITS_PER_EM_NV                    = 0x00100000,
260 		GL_FONT_ASCENDER_NV                        = 0x00200000,
261 		GL_FONT_DESCENDER_NV                       = 0x00400000,
262 		GL_FONT_HEIGHT_NV                          = 0x00800000,
263 		GL_FONT_MAX_ADVANCE_WIDTH_NV               = 0x01000000,
264 		GL_FONT_MAX_ADVANCE_HEIGHT_NV              = 0x02000000,
265 		GL_FONT_UNDERLINE_POSITION_NV              = 0x04000000,
266 		GL_FONT_UNDERLINE_THICKNESS_NV             = 0x08000000,
267 		GL_FONT_HAS_KERNING_NV                     = 0x10000000;
268 
269 	/** Accepted by the <pathListMode> parameter of GetPathSpacingNV: */
270 	int GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD,
271 		GL_ADJACENT_PAIRS_NV       = 0x90AE,
272 		GL_FIRST_TO_REST_NV        = 0x90AF;
273 
274 	/**
275 	 * Accepted by the <pname> parameter of GetPathColorGenivNV,
276 	 * GetPathColorGenfvNV, GetPathTexGenivNV and GetPathTexGenfvNV:
277 	 */
278 	int GL_PATH_GEN_MODE_NV         = 0x90B0,
279 		GL_PATH_GEN_COEFF_NV        = 0x90B1,
280 		GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2,
281 		GL_PATH_GEN_COMPONENTS_NV   = 0x90B3;
282 
glPathCommandsNV(@Luint int path, @AutoSize(R) @GLsizei int numCommands, @Const @GLubyte ByteBuffer commands, @AutoSize(R) @GLsizei int numCoords, @AutoType(R) @GLenum int coordType, @Const @GLbyte @GLubyte @GLshort @GLushort @GLfloat Buffer coords)283 	void glPathCommandsNV(@GLuint int path,
284 	                      @AutoSize("commands") @GLsizei int numCommands, @Const @GLubyte ByteBuffer commands,
285 	                      @AutoSize("coords") @GLsizei int numCoords, @AutoType("coords") @GLenum int coordType,
286 	                      @Const
287 	                      @GLbyte
288 	                      @GLubyte
289 	                      @GLshort
290 	                      @GLushort
291 	                      @GLfloat Buffer coords);
292 
glPathCoordsNV(@Luint int path, @AutoSize(R) @GLsizei int numCoords, @AutoType(R) @GLenum int coordType, @Const @GLbyte @GLubyte @GLshort @GLushort @GLfloat Buffer coords)293 	void glPathCoordsNV(@GLuint int path,
294 	                    @AutoSize("coords") @GLsizei int numCoords, @AutoType("coords") @GLenum int coordType,
295 	                    @Const
296 	                    @GLbyte
297 	                    @GLubyte
298 	                    @GLshort
299 	                    @GLushort
300 	                    @GLfloat Buffer coords);
301 
glPathSubCommandsNV(@Luint int path, @GLsizei int commandStart, @GLsizei int commandsToDelete, @AutoSize(R) @GLsizei int numCommands, @Const @GLubyte ByteBuffer commands, @AutoSize(R) @GLsizei int numCoords, @AutoType(R) @GLenum int coordType, @Const @GLbyte @GLubyte @GLshort @GLushort @GLfloat Buffer coords)302 	void glPathSubCommandsNV(@GLuint int path,
303 	                         @GLsizei int commandStart, @GLsizei int commandsToDelete,
304 	                         @AutoSize("commands") @GLsizei int numCommands, @Const @GLubyte ByteBuffer commands,
305 	                         @AutoSize("coords") @GLsizei int numCoords, @AutoType("coords") @GLenum int coordType,
306 	                         @Const
307 	                         @GLbyte
308 	                         @GLubyte
309 	                         @GLshort
310 	                         @GLushort
311 	                         @GLfloat Buffer coords);
312 
glPathSubCoordsNV(@Luint int path, @GLsizei int coordStart, @AutoSize(R) @GLsizei int numCoords, @AutoType(R) @GLenum int coordType, @Const @GLbyte @GLubyte @GLshort @GLushort @GLfloat Buffer coords)313 	void glPathSubCoordsNV(@GLuint int path,
314 	                       @GLsizei int coordStart,
315 	                       @AutoSize("coords") @GLsizei int numCoords, @AutoType("coords") @GLenum int coordType,
316 	                       @Const
317 	                       @GLbyte
318 	                       @GLubyte
319 	                       @GLshort
320 	                       @GLushort
321 	                       @GLfloat Buffer coords);
322 
glPathStringNV(@Luint int path, @GLenum int format, @AutoSize(R) @GLsizei int length, @Const @GLvoid ByteBuffer pathString)323 	void glPathStringNV(@GLuint int path, @GLenum int format,
324 	                    @AutoSize("pathString") @GLsizei int length, @Const @GLvoid ByteBuffer pathString);
325 
glPathGlyphsNV(@Luint int firstPathName, @GLenum int fontTarget, @NullTerminated @Const @GLvoid ByteBuffer fontName, @GLbitfield int fontStyle, @AutoSize(value = R, expression = R) @GLsizei int numGlyphs, @GLenum int type, @Const @GLvoid ByteBuffer charcodes, @GLenum int handleMissingGlyphs, @GLuint int pathParameterTemplate, float emScale)326 	void glPathGlyphsNV(@GLuint int firstPathName,
327 	                    @GLenum int fontTarget,
328 	                    @NullTerminated @Const @GLvoid ByteBuffer fontName,
329 	                    @GLbitfield int fontStyle,
330 	                    @AutoSize(value = "charcodes", expression = " / GLChecks.calculateBytesPerCharCode(type)") @GLsizei int numGlyphs, @GLenum int type,
331 	                    @Const @GLvoid ByteBuffer charcodes,
332 	                    @GLenum int handleMissingGlyphs,
333 	                    @GLuint int pathParameterTemplate,
334 	                    float emScale);
335 
glPathGlyphRangeNV(@Luint int firstPathName, @GLenum int fontTarget, @NullTerminated @Const @GLvoid ByteBuffer fontName, @GLbitfield int fontStyle, @GLuint int firstGlyph, @GLsizei int numGlyphs, @GLenum int handleMissingGlyphs, @GLuint int pathParameterTemplate, float emScale)336 	void glPathGlyphRangeNV(@GLuint int firstPathName,
337 	                        @GLenum int fontTarget,
338 	                        @NullTerminated @Const @GLvoid ByteBuffer fontName,
339 	                        @GLbitfield int fontStyle,
340 	                        @GLuint int firstGlyph,
341 	                        @GLsizei int numGlyphs,
342 	                        @GLenum int handleMissingGlyphs,
343 	                        @GLuint int pathParameterTemplate,
344 	                        float emScale);
345 
glWeightPathsNV(@Luint int resultPath, @AutoSize(R) @GLsizei int numPaths, @Const @GLuint IntBuffer paths, @Check(R) @Const FloatBuffer weights)346 	void glWeightPathsNV(@GLuint int resultPath,
347 	                     @AutoSize("paths") @GLsizei int numPaths,
348 	                     @Const @GLuint IntBuffer paths, @Check("paths.remaining()") @Const FloatBuffer weights);
349 
glCopyPathNV(@Luint int resultPath, @GLuint int srcPath)350 	void glCopyPathNV(@GLuint int resultPath, @GLuint int srcPath);
351 
glInterpolatePathsNV(@Luint int resultPath, @GLuint int pathA, @GLuint int pathB, float weight)352 	void glInterpolatePathsNV(@GLuint int resultPath,
353 	                          @GLuint int pathA, @GLuint int pathB,
354 	                          float weight);
355 
glTransformPathNV(@Luint int resultPath, @GLuint int srcPath, @GLenum int transformType, @Check(value = R, canBeNull = true) @Const FloatBuffer transformValues)356 	void glTransformPathNV(@GLuint int resultPath,
357 	                       @GLuint int srcPath,
358 	                       @GLenum int transformType,
359 	                       @Check(value = "GLChecks.calculateTransformPathValues(transformType)", canBeNull = true) @Const FloatBuffer transformValues);
360 
361 	@StripPostfix("value")
glPathParameterivNV(@Luint int path, @GLenum int pname, @Check(R) @Const IntBuffer value)362 	void glPathParameterivNV(@GLuint int path, @GLenum int pname, @Check("4") @Const IntBuffer value);
363 
glPathParameteriNV(@Luint int path, @GLenum int pname, int value)364 	void glPathParameteriNV(@GLuint int path, @GLenum int pname, int value);
365 
366 	@StripPostfix("value")
glPathParameterfvNV(@Luint int path, @GLenum int pname, @Check(R) @Const FloatBuffer value)367 	void glPathParameterfvNV(@GLuint int path, @GLenum int pname, @Check("4") @Const FloatBuffer value);
368 
glPathParameterfNV(@Luint int path, @GLenum int pname, float value)369 	void glPathParameterfNV(@GLuint int path, @GLenum int pname, float value);
370 
glPathDashArrayNV(@Luint int path, @AutoSize(R) @GLsizei int dashCount, @Const FloatBuffer dashArray)371 	void glPathDashArrayNV(@GLuint int path,
372 	                       @AutoSize("dashArray") @GLsizei int dashCount, @Const FloatBuffer dashArray);
373 
374 	// PATH NAME MANAGEMENT
375 
376 	@GLuint
glGenPathsNV(@Lsizei int range)377 	int glGenPathsNV(@GLsizei int range);
378 
glDeletePathsNV(@Luint int path, @GLsizei int range)379 	void glDeletePathsNV(@GLuint int path, @GLsizei int range);
380 
glIsPathNV(@Luint int path)381 	boolean glIsPathNV(@GLuint int path);
382 
383 	// PATH STENCILING
384 
glPathStencilFuncNV(@Lenum int func, int ref, @GLuint int mask)385 	void glPathStencilFuncNV(@GLenum int func, int ref, @GLuint int mask);
386 
glPathStencilDepthOffsetNV(float factor, int units)387 	void glPathStencilDepthOffsetNV(float factor, int units);
388 
glStencilFillPathNV(@Luint int path, @GLenum int fillMode, @GLuint int mask)389 	void glStencilFillPathNV(@GLuint int path,
390 	                         @GLenum int fillMode, @GLuint int mask);
391 
glStencilStrokePathNV(@Luint int path, int reference, @GLuint int mask)392 	void glStencilStrokePathNV(@GLuint int path,
393 	                           int reference, @GLuint int mask);
394 
395 	@Code("\t\tint numPaths = paths.remaining() / GLChecks.calculateBytesPerPathName(pathNameType);")
glStencilFillPathInstancedNV(@utoSizevalue = R, expression = R, useExpression = true) @Lsizei int numPaths, @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths, @GLuint int pathBase, @GLenum int fillMode, @GLuint int mask, @GLenum int transformType, @Check(value = R, canBeNull = true) @Const FloatBuffer transformValues)396 	void glStencilFillPathInstancedNV(@AutoSize(value = "paths", expression = "numPaths", useExpression = true) @GLsizei int numPaths,
397 	                                  @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths,
398 	                                  @GLuint int pathBase,
399 	                                  @GLenum int fillMode, @GLuint int mask,
400 	                                  @GLenum int transformType,
401 	                                  @Check(value = "numPaths * GLChecks.calculateTransformPathValues(transformType)", canBeNull = true) @Const FloatBuffer transformValues);
402 
403 	@Code("\t\tint numPaths = paths.remaining() / GLChecks.calculateBytesPerPathName(pathNameType);")
glStencilStrokePathInstancedNV(@utoSizevalue = R, expression = R, useExpression = true) @Lsizei int numPaths, @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths, @GLuint int pathBase, int reference, @GLuint int mask, @GLenum int transformType, @Check(value = R, canBeNull = true) @Const FloatBuffer transformValues)404 	void glStencilStrokePathInstancedNV(@AutoSize(value = "paths", expression = "numPaths", useExpression = true) @GLsizei int numPaths,
405 	                                    @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths,
406 	                                    @GLuint int pathBase,
407 	                                    int reference, @GLuint int mask,
408 	                                    @GLenum int transformType,
409 	                                    @Check(value = "numPaths * GLChecks.calculateTransformPathValues(transformType)", canBeNull = true) @Const FloatBuffer transformValues);
410 
411 	// PATH COVERING
412 
glPathCoverDepthFuncNV(@Lenum int zfunc)413 	void glPathCoverDepthFuncNV(@GLenum int zfunc);
414 
glPathColorGenNV(@Lenum int color, @GLenum int genMode, @GLenum int colorFormat, @Check(value = R, canBeNull = true) @Const FloatBuffer coeffs)415 	void glPathColorGenNV(@GLenum int color,
416 	                      @GLenum int genMode,
417 	                      @GLenum int colorFormat, @Check(value = "GLChecks.calculatePathColorGenModeElements(genMode) * GLChecks.calculatePathColorGenFormatComponents(colorFormat)", canBeNull = true) @Const FloatBuffer coeffs);
418 
glPathTexGenNV(@Lenum int texCoordSet, @GLenum int genMode, int components, @Check(value = R, canBeNull = true) @Const FloatBuffer coeffs)419 	void glPathTexGenNV(@GLenum int texCoordSet,
420 	                    @GLenum int genMode,
421 	                    int components, @Check(value = "GLChecks.calculatePathColorGenModeElements(genMode) * components", canBeNull = true) @Const FloatBuffer coeffs);
422 
glPathFogGenNV(@Lenum int genMode)423 	void glPathFogGenNV(@GLenum int genMode);
424 
glCoverFillPathNV(@Luint int path, @GLenum int coverMode)425 	void glCoverFillPathNV(@GLuint int path, @GLenum int coverMode);
426 
glCoverStrokePathNV(@Luint int name, @GLenum int coverMode)427 	void glCoverStrokePathNV(@GLuint int name, @GLenum int coverMode);
428 
429 	@Code("\t\tint numPaths = paths.remaining() / GLChecks.calculateBytesPerPathName(pathNameType);")
glCoverFillPathInstancedNV(@utoSizevalue = R, expression = R, useExpression = true) @Lsizei int numPaths, @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths, @GLuint int pathBase, @GLenum int coverMode, @GLenum int transformType, @Check(value = R, canBeNull = true) @Const FloatBuffer transformValues)430 	void glCoverFillPathInstancedNV(@AutoSize(value = "paths", expression = "numPaths", useExpression = true) @GLsizei int numPaths,
431 	                                @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths,
432 	                                @GLuint int pathBase,
433 	                                @GLenum int coverMode,
434 	                                @GLenum int transformType,
435 	                                @Check(value = "numPaths * GLChecks.calculateTransformPathValues(transformType)", canBeNull = true) @Const FloatBuffer transformValues);
436 
437 	@Code("\t\tint numPaths = paths.remaining() / GLChecks.calculateBytesPerPathName(pathNameType);")
glCoverStrokePathInstancedNV(@utoSizevalue = R, expression = R, useExpression = true) @Lsizei int numPaths, @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths, @GLuint int pathBase, @GLenum int coverMode, @GLenum int transformType, @Check(value = R, canBeNull = true) @Const FloatBuffer transformValues)438 	void glCoverStrokePathInstancedNV(@AutoSize(value = "paths", expression = "numPaths", useExpression = true) @GLsizei int numPaths,
439 	                                  @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths,
440 	                                  @GLuint int pathBase,
441 	                                  @GLenum int coverMode,
442 	                                  @GLenum int transformType,
443 	                                  @Check(value = "numPaths * GLChecks.calculateTransformPathValues(transformType)", canBeNull = true) @Const FloatBuffer transformValues);
444 
445 	// PATH QUERIES
446 
447 	@StripPostfix("value")
glGetPathParameterivNV(@Luint int name, @GLenum int param, @Check(R) @OutParameter IntBuffer value)448 	void glGetPathParameterivNV(@GLuint int name, @GLenum int param, @Check("4") @OutParameter IntBuffer value);
449 
450 	@Alternate("glGetPathParameterivNV")
451 	@GLreturn("value")
452 	@StripPostfix(value = "value", hasPostfix = false)
glGetPathParameterivNV2(@Luint int name, @GLenum int param, @OutParameter IntBuffer value)453 	void glGetPathParameterivNV2(@GLuint int name, @GLenum int param, @OutParameter IntBuffer value);
454 
glGetPathParameterfvNV(@Luint int name, @GLenum int param, @Check(R) @OutParameter FloatBuffer value)455 	void glGetPathParameterfvNV(@GLuint int name, @GLenum int param, @Check("4") @OutParameter FloatBuffer value);
456 
457 	@Alternate("glGetPathParameterfvNV")
458 	@GLreturn("value")
459 	@StripPostfix(value = "value", hasPostfix = false)
glGetPathParameterfvNV2(@Luint int name, @GLenum int param, @OutParameter FloatBuffer value)460 	void glGetPathParameterfvNV2(@GLuint int name, @GLenum int param, @OutParameter FloatBuffer value);
461 
glGetPathCommandsNV(@Luint int name, @Check @OutParameter @GLubyte ByteBuffer commands)462 	void glGetPathCommandsNV(@GLuint int name, @Check @OutParameter @GLubyte ByteBuffer commands);
463 
glGetPathCoordsNV(@Luint int name, @Check @OutParameter FloatBuffer coords)464 	void glGetPathCoordsNV(@GLuint int name, @Check @OutParameter FloatBuffer coords);
465 
glGetPathDashArrayNV(@Luint int name, @Check @OutParameter FloatBuffer dashArray)466 	void glGetPathDashArrayNV(@GLuint int name, @Check @OutParameter FloatBuffer dashArray);
467 
468 	@Code("\t\tint numPaths = paths.remaining() / GLChecks.calculateBytesPerPathName(pathNameType);")
glGetPathMetricsNV(@Lbitfield int metricQueryMask, @AutoSize(value = R, expression = R, useExpression = true) @GLsizei int numPaths, @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths, @GLuint int pathBase, @GLsizei int stride, @Check(R) @OutParameter FloatBuffer metrics)469 	void glGetPathMetricsNV(@GLbitfield int metricQueryMask,
470 	                        @AutoSize(value = "paths", expression = "numPaths", useExpression = true) @GLsizei int numPaths,
471 	                        @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths,
472 	                        @GLuint int pathBase,
473 	                        @GLsizei int stride,
474 	                        @Check("numPaths * GLChecks.calculateMetricsSize(metricQueryMask, stride)") @OutParameter FloatBuffer metrics);
475 
glGetPathMetricRangeNV(@Lbitfield int metricQueryMask, @GLuint int fistPathName, @GLsizei int numPaths, @GLsizei int stride, @Check(R) @OutParameter FloatBuffer metrics)476 	void glGetPathMetricRangeNV(@GLbitfield int metricQueryMask,
477 	                            @GLuint int fistPathName,
478 	                            @GLsizei int numPaths,
479 	                            @GLsizei int stride,
480 	                            @Check("numPaths * GLChecks.calculateMetricsSize(metricQueryMask, stride)") @OutParameter FloatBuffer metrics);
481 
482 	@Code("\t\tint numPaths = paths.remaining() / GLChecks.calculateBytesPerPathName(pathNameType);")
glGetPathSpacingNV(@Lenum int pathListMode, @AutoSize(value = R, expression = R, useExpression = true) @GLsizei int numPaths, @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths, @GLuint int pathBase, float advanceScale, float kerningScale, @GLenum int transformType, @Check(R) @OutParameter FloatBuffer returnedSpacing)483 	void glGetPathSpacingNV(@GLenum int pathListMode,
484 	                        @AutoSize(value = "paths", expression = "numPaths", useExpression = true) @GLsizei int numPaths,
485 	                        @GLenum int pathNameType, @Const @GLvoid ByteBuffer paths,
486 	                        @GLuint int pathBase,
487 	                        float advanceScale,
488 	                        float kerningScale,
489 	                        @GLenum int transformType,
490 	                        @Check("numPaths - 1") @OutParameter FloatBuffer returnedSpacing);
491 
492 	@StripPostfix("value")
glGetPathColorGenivNV(@Lenum int color, @GLenum int pname, @Check(R) @OutParameter IntBuffer value)493 	void glGetPathColorGenivNV(@GLenum int color, @GLenum int pname, @Check("16") @OutParameter IntBuffer value);
494 
495 	@Alternate("glGetPathColorGenivNV")
496 	@GLreturn("value")
497 	@StripPostfix(value = "value", hasPostfix = false)
glGetPathColorGenivNV2(@Lenum int color, @GLenum int pname, @OutParameter IntBuffer value)498 	void glGetPathColorGenivNV2(@GLenum int color, @GLenum int pname, @OutParameter IntBuffer value);
499 
500 	@StripPostfix("value")
glGetPathColorGenfvNV(@Lenum int color, @GLenum int pname, @Check(R) @OutParameter FloatBuffer value)501 	void glGetPathColorGenfvNV(@GLenum int color, @GLenum int pname, @Check("16") @OutParameter FloatBuffer value);
502 
503 	@Alternate("glGetPathColorGenfvNV")
504 	@GLreturn("value")
505 	@StripPostfix(value = "value", hasPostfix = false)
glGetPathColorGenfvNV2(@Lenum int color, @GLenum int pname, @OutParameter FloatBuffer value)506 	void glGetPathColorGenfvNV2(@GLenum int color, @GLenum int pname, @OutParameter FloatBuffer value);
507 
508 	@StripPostfix("value")
glGetPathTexGenivNV(@Lenum int texCoordSet, @GLenum int pname, @Check(R) @OutParameter IntBuffer value)509 	void glGetPathTexGenivNV(@GLenum int texCoordSet, @GLenum int pname, @Check("16") @OutParameter IntBuffer value);
510 
511 	@Alternate("glGetPathTexGenivNV")
512 	@GLreturn("value")
513 	@StripPostfix(value = "value", hasPostfix = false)
glGetPathTexGenivNV2(@Lenum int texCoordSet, @GLenum int pname, @OutParameter IntBuffer value)514 	void glGetPathTexGenivNV2(@GLenum int texCoordSet, @GLenum int pname, @OutParameter IntBuffer value);
515 
516 	@StripPostfix("value")
glGetPathTexGenfvNV(@Lenum int texCoordSet, @GLenum int pname, @Check(R) @OutParameter FloatBuffer value)517 	void glGetPathTexGenfvNV(@GLenum int texCoordSet, @GLenum int pname, @Check("16") @OutParameter FloatBuffer value);
518 
519 	@Alternate("glGetPathTexGenfvNV")
520 	@GLreturn("value")
521 	@StripPostfix(value = "value", hasPostfix = false)
glGetPathTexGenfvNV2(@Lenum int texCoordSet, @GLenum int pname, @OutParameter FloatBuffer value)522 	void glGetPathTexGenfvNV2(@GLenum int texCoordSet, @GLenum int pname, @OutParameter FloatBuffer value);
523 
glIsPointInFillPathNV(@Luint int path, @GLuint int mask, float x, float y)524 	boolean glIsPointInFillPathNV(@GLuint int path,
525 	                              @GLuint int mask, float x, float y);
526 
glIsPointInStrokePathNV(@Luint int path, float x, float y)527 	boolean glIsPointInStrokePathNV(@GLuint int path,
528 	                                float x, float y);
529 
glGetPathLengthNV(@Luint int path, @GLsizei int startSegment, @GLsizei int numSegments)530 	float glGetPathLengthNV(@GLuint int path,
531 	                        @GLsizei int startSegment, @GLsizei int numSegments);
532 
glPointAlongPathNV(@Luint int path, @GLsizei int startSegment, @GLsizei int numSegments, float distance, @Check(value = R, canBeNull = true) @OutParameter FloatBuffer x, @Check(value = R, canBeNull = true) @OutParameter FloatBuffer y, @Check(value = R, canBeNull = true) @OutParameter FloatBuffer tangentX, @Check(value = R, canBeNull = true) @OutParameter FloatBuffer tangentY)533 	boolean glPointAlongPathNV(@GLuint int path,
534 	                           @GLsizei int startSegment, @GLsizei int numSegments,
535 	                           float distance,
536 	                           @Check(value = "1", canBeNull = true) @OutParameter FloatBuffer x,
537 	                           @Check(value = "1", canBeNull = true) @OutParameter FloatBuffer y,
538 	                           @Check(value = "1", canBeNull = true) @OutParameter FloatBuffer tangentX,
539 	                           @Check(value = "1", canBeNull = true) @OutParameter FloatBuffer tangentY);
540 
541 }