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.Alternate;
35 import org.lwjgl.util.generator.Check;
36 import org.lwjgl.util.generator.OutParameter;
37 import org.lwjgl.util.generator.StripPostfix;
38 import org.lwjgl.util.generator.opengl.*;
39 
40 import java.nio.IntBuffer;
41 import java.nio.LongBuffer;
42 
43 public interface NV_present_video {
44 
45 	/**
46 	 * Accepted by the <type> parameter of PresentFrameKeyedNV and
47 	 * PresentFrameDualFillNV:
48 	 */
49 	int GL_FRAME_NV = 0x8E26,
50 		FIELDS_NV   = 0x8E27;
51 
52 	/**
53 	 * Accepted by the <pname> parameter of GetVideoivNV, GetVideouivNV,
54 	 * GetVideoi64vNV, GetVideoui64vNV:
55 	 */
56 	int GL_CURRENT_TIME_NV     = 0x8E28,
57 		GL_NUM_FILL_STREAMS_NV = 0x8E29;
58 
59 	/** Accepted by the <target> parameter of GetQueryiv: */
60 	int GL_PRESENT_TIME_NV     = 0x8E2A,
61 		GL_PRESENT_DURATION_NV = 0x8E2B;
62 
63 	/** Accepted by the <attribute> parameter of NVPresentVideoUtil.glQueryContextNV: */
64 	int GL_NUM_VIDEO_SLOTS_NV = 0x20F0; // GLX_NUM_VIDEO_SLOTS_NV & WGL_NUM_VIDEO_SLOTS_NV
65 
glPresentFrameKeyedNV(@Luint int video_slot, @GLuint64EXT long minPresentTime, @GLuint int beginPresentTimeId, @GLuint int presentDurationId, @GLenum int type, @GLenum int target0, @GLuint int fill0, @GLuint int key0, @GLenum int target1, @GLuint int fill1, @GLuint int key1)66 	void glPresentFrameKeyedNV(@GLuint int video_slot,
67 	                           @GLuint64EXT long minPresentTime,
68 	                           @GLuint int beginPresentTimeId,
69 	                           @GLuint int presentDurationId,
70 	                           @GLenum int type,
71 	                           @GLenum int target0, @GLuint int fill0, @GLuint int key0,
72 	                           @GLenum int target1, @GLuint int fill1, @GLuint int key1);
73 
glPresentFrameDualFillNV(@Luint int video_slot, @GLuint64EXT long minPresentTime, @GLuint int beginPresentTimeId, @GLuint int presentDurationId, @GLenum int type, @GLenum int target0, @GLuint int fill0, @GLenum int target1, @GLuint int fill1, @GLenum int target2, @GLuint int fill2, @GLenum int target3, @GLuint int fill3)74 	void glPresentFrameDualFillNV(@GLuint int video_slot,
75 	                              @GLuint64EXT long minPresentTime,
76 	                              @GLuint int beginPresentTimeId,
77 	                              @GLuint int presentDurationId,
78 	                              @GLenum int type,
79 	                              @GLenum int target0, @GLuint int fill0,
80 	                              @GLenum int target1, @GLuint int fill1,
81 	                              @GLenum int target2, @GLuint int fill2,
82 	                              @GLenum int target3, @GLuint int fill3);
83 
84 	@StripPostfix("params")
glGetVideoivNV(@Luint int video_slot, @GLenum int pname, @OutParameter @Check(R) IntBuffer params)85 	void glGetVideoivNV(@GLuint int video_slot, @GLenum int pname, @OutParameter @Check("1") IntBuffer params);
86 
87 	@Alternate("glGetVideoivNV")
88 	@GLreturn("params")
89 	@StripPostfix(value = "params", hasPostfix = false)
glGetVideoivNV2(@Luint int video_slot, @GLenum int pname, @OutParameter IntBuffer params)90 	void glGetVideoivNV2(@GLuint int video_slot, @GLenum int pname, @OutParameter IntBuffer params);
91 
92 	@StripPostfix("params")
glGetVideouivNV(@Luint int video_slot, @GLenum int pname, @OutParameter @Check(R) @GLuint IntBuffer params)93 	void glGetVideouivNV(@GLuint int video_slot, @GLenum int pname, @OutParameter @Check("1") @GLuint IntBuffer params);
94 
95 	@Alternate("glGetVideouivNV")
96 	@GLreturn("params")
97 	@StripPostfix(value = "params", hasPostfix = false)
glGetVideouivNV2(@Luint int video_slot, @GLenum int pname, @OutParameter @GLuint IntBuffer params)98 	void glGetVideouivNV2(@GLuint int video_slot, @GLenum int pname, @OutParameter @GLuint IntBuffer params);
99 
100 	@StripPostfix("params")
glGetVideoi64vNV(@Luint int video_slot, @GLenum int pname, @OutParameter @Check(R) @GLint64EXT LongBuffer params)101 	void glGetVideoi64vNV(@GLuint int video_slot, @GLenum int pname, @OutParameter @Check("1") @GLint64EXT LongBuffer params);
102 
103 	@Alternate("glGetVideoi64vNV")
104 	@GLreturn("params")
105 	@StripPostfix(value = "params", hasPostfix = false)
glGetVideoi64vNV2(@Luint int video_slot, @GLenum int pname, @OutParameter @GLint64EXT LongBuffer params)106 	void glGetVideoi64vNV2(@GLuint int video_slot, @GLenum int pname, @OutParameter @GLint64EXT LongBuffer params);
107 
108 	@StripPostfix("params")
glGetVideoui64vNV(@Luint int video_slot, @GLenum int pname, @OutParameter @Check(R) @GLuint64EXT LongBuffer params)109 	void glGetVideoui64vNV(@GLuint int video_slot, @GLenum int pname, @OutParameter @Check("1") @GLuint64EXT LongBuffer params);
110 
111 	@Alternate("glGetVideoui64vNV")
112 	@GLreturn("params")
113 	@StripPostfix(value = "params", hasPostfix = false)
glGetVideoui64vNV2(@Luint int video_slot, @GLenum int pname, @OutParameter @GLuint64EXT LongBuffer params)114 	void glGetVideoui64vNV2(@GLuint int video_slot, @GLenum int pname, @OutParameter @GLuint64EXT LongBuffer params);
115 
116 }