All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.opengles.APPLESync Maven / Gradle / Ivy

Go to download

A royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles.

There is a newer version: 3.3.4
Show newest version
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.opengles;

import java.nio.*;

import org.lwjgl.system.*;

import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;
import static org.lwjgl.system.MemoryStack.*;
import static org.lwjgl.system.MemoryUtil.*;

/**
 * Native bindings to the APPLE_sync extension.
 * 
 * 

This extension introduces the concept of "sync objects". Sync objects are a synchronization primitive - a representation of events whose completion * status can be tested or waited upon. One specific type of sync object, the "fence sync object", is supported in this extension, and additional types * can easily be added in the future.

* *

Fence sync objects have corresponding fences, which are inserted into the OpenGL command stream at the time the sync object is created. A sync object * can be queried for a given condition. The only condition supported for fence sync objects is completion of the corresponding fence command. Fence * completion allows applications to request a partial Finish, wherein all commands prior to the fence will be forced to complete before control is * returned to the calling process.

* *

These new mechanisms allow for synchronization between the host CPU and the GPU, which may be accessing the same resources (typically memory), as well * as between multiple GL contexts bound to multiple threads in the host CPU.

* *

Requires {@link GLES20 GLES 2.0}.

*/ public class APPLESync { /** Accepted as the {@code pname} parameter of GetInteger64vAPPLE. */ public static final int GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111; /** Accepted as the {@code pname} parameter of GetSyncivAPPLE. */ public static final int GL_OBJECT_TYPE_APPLE = 0x9112, GL_SYNC_CONDITION_APPLE = 0x9113, GL_SYNC_STATUS_APPLE = 0x9114, GL_SYNC_FLAGS_APPLE = 0x9115; /** Returned in {@code values} for GetSynciv {@code pname} OBJECT_TYPE_APPLE. */ public static final int GL_SYNC_FENCE_APPLE = 0x9116; /** Returned in {@code values} for GetSyncivAPPLE {@code pname} SYNC_CONDITION_APPLE. */ public static final int GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117; /** Returned in {@code values} for GetSyncivAPPLE {@code pname} SYNC_STATUS_APPLE. */ public static final int GL_UNSIGNALED_APPLE = 0x9118, GL_SIGNALED_APPLE = 0x9119; /** Accepted in the {@code flags} parameter of ClientWaitSyncAPPLE. */ public static final int GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x1; /** Accepted in the {@code timeout} parameter of WaitSyncAPPLE. */ public static final long GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFFL; /** Returned by ClientWaitSyncAPPLE. */ public static final int GL_ALREADY_SIGNALED_APPLE = 0x911A, GL_TIMEOUT_EXPIRED_APPLE = 0x911B, GL_CONDITION_SATISFIED_APPLE = 0x911C, GL_WAIT_FAILED_APPLE = 0x911D; /** Accepted by the {@code type} parameter of LabelObjectEXT and GetObjectLabelEXT. */ public static final int GL_SYNC_OBJECT_APPLE = 0x8A53; static { GLES.initialize(); } protected APPLESync() { throw new UnsupportedOperationException(); } static boolean isAvailable(GLESCapabilities caps) { return checkFunctions( caps.glFenceSyncAPPLE, caps.glIsSyncAPPLE, caps.glDeleteSyncAPPLE, caps.glClientWaitSyncAPPLE, caps.glWaitSyncAPPLE, caps.glGetInteger64vAPPLE, caps.glGetSyncivAPPLE ); } // --- [ glFenceSyncAPPLE ] --- public static native long glFenceSyncAPPLE(int condition, int flags); // --- [ glIsSyncAPPLE ] --- public static native boolean nglIsSyncAPPLE(long sync); public static boolean glIsSyncAPPLE(long sync) { if (CHECKS) { check(sync); } return nglIsSyncAPPLE(sync); } // --- [ glDeleteSyncAPPLE ] --- public static native void nglDeleteSyncAPPLE(long sync); public static void glDeleteSyncAPPLE(long sync) { if (CHECKS) { check(sync); } nglDeleteSyncAPPLE(sync); } // --- [ glClientWaitSyncAPPLE ] --- public static native int nglClientWaitSyncAPPLE(long sync, int flags, long timeout); public static int glClientWaitSyncAPPLE(long sync, int flags, long timeout) { if (CHECKS) { check(sync); } return nglClientWaitSyncAPPLE(sync, flags, timeout); } // --- [ glWaitSyncAPPLE ] --- public static native void nglWaitSyncAPPLE(long sync, int flags, long timeout); public static void glWaitSyncAPPLE(long sync, int flags, long timeout) { if (CHECKS) { check(sync); } nglWaitSyncAPPLE(sync, flags, timeout); } // --- [ glGetInteger64vAPPLE ] --- public static native void nglGetInteger64vAPPLE(int pname, long params); public static void glGetInteger64vAPPLE(int pname, LongBuffer params) { if (CHECKS) { check(params, 1); } nglGetInteger64vAPPLE(pname, memAddress(params)); } public static long glGetInteger64APPLE(int pname) { MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { LongBuffer params = stack.callocLong(1); nglGetInteger64vAPPLE(pname, memAddress(params)); return params.get(0); } finally { stack.setPointer(stackPointer); } } // --- [ glGetSyncivAPPLE ] --- public static native void nglGetSyncivAPPLE(long sync, int pname, int bufSize, long length, long values); public static void glGetSyncivAPPLE(long sync, int pname, IntBuffer length, IntBuffer values) { if (CHECKS) { check(sync); checkSafe(length, 1); } nglGetSyncivAPPLE(sync, pname, values.remaining(), memAddressSafe(length), memAddress(values)); } public static int glGetSynciAPPLE(long sync, int pname, IntBuffer length) { if (CHECKS) { check(sync); checkSafe(length, 1); } MemoryStack stack = stackGet(); int stackPointer = stack.getPointer(); try { IntBuffer values = stack.callocInt(1); nglGetSyncivAPPLE(sync, pname, 1, memAddressSafe(length), memAddress(values)); return values.get(0); } finally { stack.setPointer(stackPointer); } } /** Array version of: {@link #glGetInteger64vAPPLE GetInteger64vAPPLE} */ public static void glGetInteger64vAPPLE(int pname, long[] params) { long __functionAddress = GLES.getICD().glGetInteger64vAPPLE; if (CHECKS) { check(__functionAddress); check(params, 1); } callPV(__functionAddress, pname, params); } /** Array version of: {@link #glGetSyncivAPPLE GetSyncivAPPLE} */ public static void glGetSyncivAPPLE(long sync, int pname, int[] length, int[] values) { long __functionAddress = GLES.getICD().glGetSyncivAPPLE; if (CHECKS) { check(__functionAddress); check(sync); checkSafe(length, 1); } callPPPV(__functionAddress, sync, pname, values.length, length, values); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy