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