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.*;
36 
37 import java.nio.ByteBuffer;
38 import java.nio.IntBuffer;
39 
40 public interface AMD_performance_monitor {
41 
42 	/** Accepted by the <pame> parameter of GetPerfMonitorCounterInfoAMD */
43 	int GL_COUNTER_TYPE_AMD  = 0x8BC0,
44 		GL_COUNTER_RANGE_AMD = 0x8BC1;
45 
46 	/**
47 	 * Returned as a valid value in <data> parameter of
48 	 * GetPerfMonitorCounterInfoAMD if <pname> = COUNTER_TYPE_AMD
49 	 */
50 	int GL_UNSIGNED_INT64_AMD = 0x8BC2,
51 		GL_PERCENTAGE_AMD     = 0x8BC3;
52 
53 	/** Accepted by the <pname> parameter of GetPerfMonitorCounterDataAMD */
54 	int GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4,
55 		GL_PERFMON_RESULT_SIZE_AMD      = 0x8BC5,
56 		GL_PERFMON_RESULT_AMD           = 0x8BC6;
57 
glGetPerfMonitorGroupsAMD(@utParameter @heckvalue = R, canBeNull = true) @Lint IntBuffer numGroups, @AutoSize(R) @GLsizei int groupsSize, @GLuint IntBuffer groups)58 	void glGetPerfMonitorGroupsAMD(@OutParameter @Check(value = "1", canBeNull = true) @GLint IntBuffer numGroups,
59 	                               @AutoSize("groups") @GLsizei int groupsSize, @GLuint IntBuffer groups);
60 
glGetPerfMonitorCountersAMD(@Luint int group, @OutParameter @Check(value = R) @GLint IntBuffer numCounters, @OutParameter @Check(value = R) @GLint IntBuffer maxActiveCounters, @AutoSize(value = R, canBeNull = true) @GLsizei int countersSize, @Check(canBeNull = true) @GLuint IntBuffer counters)61 	void glGetPerfMonitorCountersAMD(@GLuint int group,
62 	                                 @OutParameter @Check(value = "1") @GLint IntBuffer numCounters,
63 	                                 @OutParameter @Check(value = "1") @GLint IntBuffer maxActiveCounters,
64 	                                 @AutoSize(value = "counters", canBeNull = true) @GLsizei int countersSize,
65 	                                 @Check(canBeNull = true) @GLuint IntBuffer counters);
66 
glGetPerfMonitorGroupStringAMD(@Luint int group, @AutoSize(value = R, canBeNull = true) @GLsizei int bufSize, @OutParameter @GLsizei @Check(value = R, canBeNull = true) IntBuffer length, @Check(canBeNull = true) @OutParameter @GLchar ByteBuffer groupString)67 	void glGetPerfMonitorGroupStringAMD(@GLuint int group,
68 	                                    @AutoSize(value = "groupString", canBeNull = true) @GLsizei int bufSize,
69 	                                    @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
70 	                                    @Check(canBeNull = true) @OutParameter @GLchar ByteBuffer groupString);
71 
72 	@Alternate("glGetPerfMonitorGroupStringAMD")
73 	@GLreturn(value = "groupString", maxLength = "bufSize")
glGetPerfMonitorGroupStringAMD2(@Luint int group, @GLsizei int bufSize, @OutParameter @GLsizei @Constant(R) IntBuffer length, @OutParameter @GLchar ByteBuffer groupString)74 	void glGetPerfMonitorGroupStringAMD2(@GLuint int group, @GLsizei int bufSize,
75 	                                     @OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(groupString_length)") IntBuffer length,
76 	                                     @OutParameter @GLchar ByteBuffer groupString);
77 
glGetPerfMonitorCounterStringAMD(@Luint int group, @GLuint int counter, @AutoSize(value = R, canBeNull = true) @GLsizei int bufSize, @OutParameter @GLsizei @Check(value = R, canBeNull = true) IntBuffer length, @Check(canBeNull = true) @OutParameter @GLchar ByteBuffer counterString)78 	void glGetPerfMonitorCounterStringAMD(@GLuint int group, @GLuint int counter, @AutoSize(value = "counterString", canBeNull = true) @GLsizei int bufSize,
79 	                                      @OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
80 	                                      @Check(canBeNull = true) @OutParameter @GLchar ByteBuffer counterString);
81 
82 	@Alternate("glGetPerfMonitorCounterStringAMD")
83 	@GLreturn(value = "counterString", maxLength = "bufSize")
glGetPerfMonitorCounterStringAMD2(@Luint int group, @GLuint int counter, @GLsizei int bufSize, @OutParameter @GLsizei @Constant(R) IntBuffer length, @OutParameter @GLchar ByteBuffer counterString)84 	void glGetPerfMonitorCounterStringAMD2(@GLuint int group, @GLuint int counter, @GLsizei int bufSize,
85 	                                       @OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(counterString_length)") IntBuffer length,
86 	                                       @OutParameter @GLchar ByteBuffer counterString);
87 
glGetPerfMonitorCounterInfoAMD(@Luint int group, @GLuint int counter, @GLenum int pname, @Check(value = R) @GLvoid ByteBuffer data)88 	void glGetPerfMonitorCounterInfoAMD(@GLuint int group, @GLuint int counter, @GLenum int pname, @Check(value = "16") @GLvoid ByteBuffer data);
89 
glGenPerfMonitorsAMD(@utoSizeR) @Lsizei int n, @OutParameter @GLuint IntBuffer monitors)90 	void glGenPerfMonitorsAMD(@AutoSize("monitors") @GLsizei int n, @OutParameter @GLuint IntBuffer monitors);
91 
92 	@Alternate("glGenPerfMonitorsAMD")
93 	@GLreturn("monitors")
glGenPerfMonitorsAMD2(@onstantR) @Lsizei int n, @OutParameter @GLuint IntBuffer monitors)94 	void glGenPerfMonitorsAMD2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer monitors);
95 
glDeletePerfMonitorsAMD(@utoSizeR) @Lsizei int n, @GLuint IntBuffer monitors)96 	void glDeletePerfMonitorsAMD(@AutoSize("monitors") @GLsizei int n, @GLuint IntBuffer monitors);
97 
98 	@Alternate("glDeletePerfMonitorsAMD")
glDeletePerfMonitorsAMD(@onstantR) @Lsizei int n, @Constant(value = R, keepParam = true) int monitor)99 	void glDeletePerfMonitorsAMD(@Constant("1") @GLsizei int n, @Constant(value = "APIUtil.getInt(caps, monitor)", keepParam = true) int monitor);
100 
glSelectPerfMonitorCountersAMD(@Luint int monitor, boolean enable, @GLuint int group, @AutoSize(R) int numCounters, @GLuint IntBuffer counterList)101 	void glSelectPerfMonitorCountersAMD(@GLuint int monitor, boolean enable, @GLuint int group, @AutoSize("counterList") int numCounters, @GLuint IntBuffer counterList);
102 
103 	@Alternate("glSelectPerfMonitorCountersAMD")
glSelectPerfMonitorCountersAMD(@Luint int monitor, boolean enable, @GLuint int group, @Constant(R) int numCounters, @Constant(value = R, keepParam = true) int counter)104 	void glSelectPerfMonitorCountersAMD(@GLuint int monitor, boolean enable, @GLuint int group, @Constant("1") int numCounters, @Constant(value = "APIUtil.getInt(caps, counter)", keepParam = true) int counter);
105 
glBeginPerfMonitorAMD(@Luint int monitor)106 	void glBeginPerfMonitorAMD(@GLuint int monitor);
107 
glEndPerfMonitorAMD(@Luint int monitor)108 	void glEndPerfMonitorAMD(@GLuint int monitor);
109 
glGetPerfMonitorCounterDataAMD(@Luint int monitor, @GLenum int pname, @AutoSize(R) @GLsizei int dataSize, @OutParameter @GLuint IntBuffer data, @OutParameter @GLint @Check(value = R, canBeNull = true) IntBuffer bytesWritten)110 	void glGetPerfMonitorCounterDataAMD(@GLuint int monitor, @GLenum int pname, @AutoSize("data") @GLsizei int dataSize,
111 	                                    @OutParameter @GLuint IntBuffer data,
112 	                                    @OutParameter @GLint @Check(value = "1", canBeNull = true) IntBuffer bytesWritten);
113 
114 	@Alternate("glGetPerfMonitorCounterDataAMD")
115 	@GLreturn("data")
glGetPerfMonitorCounterDataAMD2(@Luint int monitor, @GLenum int pname, @Constant(R) @GLsizei int dataSize, @OutParameter @GLuint IntBuffer data, @OutParameter @GLint @Constant(R) IntBuffer bytesWritten)116 	void glGetPerfMonitorCounterDataAMD2(@GLuint int monitor, @GLenum int pname, @Constant("4") @GLsizei int dataSize,
117 	                                     @OutParameter @GLuint IntBuffer data,
118 	                                     @OutParameter @GLint @Constant("0L") IntBuffer bytesWritten);
119 
120 }