/*
* Copyright (c) 2002-2008 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl.opengl;
import org.lwjgl.util.generator.*;
import org.lwjgl.util.generator.opengl.*;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
public interface AMD_performance_monitor {
/** Accepted by the <pame> parameter of GetPerfMonitorCounterInfoAMD */
int GL_COUNTER_TYPE_AMD = 0x8BC0,
GL_COUNTER_RANGE_AMD = 0x8BC1;
/**
* Returned as a valid value in <data> parameter of
* GetPerfMonitorCounterInfoAMD if <pname> = COUNTER_TYPE_AMD
*/
int GL_UNSIGNED_INT64_AMD = 0x8BC2,
GL_PERCENTAGE_AMD = 0x8BC3;
/** Accepted by the <pname> parameter of GetPerfMonitorCounterDataAMD */
int GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4,
GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5,
GL_PERFMON_RESULT_AMD = 0x8BC6;
void glGetPerfMonitorGroupsAMD(@OutParameter @Check(value = "1", canBeNull = true) @GLint IntBuffer numGroups,
@AutoSize("groups") @GLsizei int groupsSize, @GLuint IntBuffer groups);
void glGetPerfMonitorCountersAMD(@GLuint int group,
@OutParameter @Check(value = "1") @GLint IntBuffer numCounters,
@OutParameter @Check(value = "1") @GLint IntBuffer maxActiveCounters,
@AutoSize(value = "counters", canBeNull = true) @GLsizei int countersSize,
@Check(canBeNull = true) @GLuint IntBuffer counters);
void glGetPerfMonitorGroupStringAMD(@GLuint int group,
@AutoSize(value = "groupString", canBeNull = true) @GLsizei int bufSize,
@OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
@Check(canBeNull = true) @OutParameter @GLchar ByteBuffer groupString);
@Alternate("glGetPerfMonitorGroupStringAMD")
@GLreturn(value = "groupString", maxLength = "bufSize")
void glGetPerfMonitorGroupStringAMD2(@GLuint int group, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(groupString_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer groupString);
void glGetPerfMonitorCounterStringAMD(@GLuint int group, @GLuint int counter, @AutoSize(value = "counterString", canBeNull = true) @GLsizei int bufSize,
@OutParameter @GLsizei @Check(value = "1", canBeNull = true) IntBuffer length,
@Check(canBeNull = true) @OutParameter @GLchar ByteBuffer counterString);
@Alternate("glGetPerfMonitorCounterStringAMD")
@GLreturn(value = "counterString", maxLength = "bufSize")
void glGetPerfMonitorCounterStringAMD2(@GLuint int group, @GLuint int counter, @GLsizei int bufSize,
@OutParameter @GLsizei @Constant("MemoryUtil.getAddress0(counterString_length)") IntBuffer length,
@OutParameter @GLchar ByteBuffer counterString);
void glGetPerfMonitorCounterInfoAMD(@GLuint int group, @GLuint int counter, @GLenum int pname, @Check(value = "16") @GLvoid ByteBuffer data);
void glGenPerfMonitorsAMD(@AutoSize("monitors") @GLsizei int n, @OutParameter @GLuint IntBuffer monitors);
@Alternate("glGenPerfMonitorsAMD")
@GLreturn("monitors")
void glGenPerfMonitorsAMD2(@Constant("1") @GLsizei int n, @OutParameter @GLuint IntBuffer monitors);
void glDeletePerfMonitorsAMD(@AutoSize("monitors") @GLsizei int n, @GLuint IntBuffer monitors);
@Alternate("glDeletePerfMonitorsAMD")
void glDeletePerfMonitorsAMD(@Constant("1") @GLsizei int n, @Constant(value = "APIUtil.getInt(caps, monitor)", keepParam = true) int monitor);
void glSelectPerfMonitorCountersAMD(@GLuint int monitor, boolean enable, @GLuint int group, @AutoSize("counterList") int numCounters, @GLuint IntBuffer counterList);
@Alternate("glSelectPerfMonitorCountersAMD")
void glSelectPerfMonitorCountersAMD(@GLuint int monitor, boolean enable, @GLuint int group, @Constant("1") int numCounters, @Constant(value = "APIUtil.getInt(caps, counter)", keepParam = true) int counter);
void glBeginPerfMonitorAMD(@GLuint int monitor);
void glEndPerfMonitorAMD(@GLuint int monitor);
void glGetPerfMonitorCounterDataAMD(@GLuint int monitor, @GLenum int pname, @AutoSize("data") @GLsizei int dataSize,
@OutParameter @GLuint IntBuffer data,
@OutParameter @GLint @Check(value = "1", canBeNull = true) IntBuffer bytesWritten);
@Alternate("glGetPerfMonitorCounterDataAMD")
@GLreturn("data")
void glGetPerfMonitorCounterDataAMD2(@GLuint int monitor, @GLenum int pname, @Constant("4") @GLsizei int dataSize,
@OutParameter @GLuint IntBuffer data,
@OutParameter @GLint @Constant("0L") IntBuffer bytesWritten);
}