Exemplo n.º 1
0
void glBufferImpl::clearData(size_t offsetInBytes, size_t rangeInBytes) {
    if (_mappedBuffer) {
        if (!waitRange(offsetInBytes, rangeInBytes, true)) {
            //ToDo: wait failed. Now what?
        }
        std::memset(((Byte*)_mappedBuffer) + offsetInBytes, 0, rangeInBytes);
        if (_useExplicitFlush) {
            glFlushMappedNamedBufferRange(_handle, offsetInBytes, rangeInBytes);
        }
    } else {
        if (offsetInBytes == 0 && rangeInBytes == _alignedSize) {
            glInvalidateBufferData(_handle);
        } else {
            glInvalidateBufferSubData(_handle, offsetInBytes, rangeInBytes);
        }
    }
}
void BufferImplementation_DirectStateAccessEXT::invalidateSubData(const Buffer * buffer, GLintptr offset, GLsizeiptr length) const
{
    glInvalidateBufferSubData(buffer->id(), offset, length);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL43_glInvalidateBufferSubData(JNIEnv *__env, jclass clazz, jint buffer, jlong offset, jlong length) {
    glInvalidateBufferSubDataPROC glInvalidateBufferSubData = (glInvalidateBufferSubDataPROC)tlsGetFunction(890);
    UNUSED_PARAM(clazz)
    glInvalidateBufferSubData(buffer, (intptr_t)offset, (intptr_t)length);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL43_nglInvalidateBufferSubData(JNIEnv *__env, jclass clazz, jint buffer, jlong offset, jlong length, jlong __functionAddress) {
	glInvalidateBufferSubDataPROC glInvalidateBufferSubData = (glInvalidateBufferSubDataPROC)(intptr_t)__functionAddress;
	UNUSED_PARAMS(__env, clazz)
	glInvalidateBufferSubData(buffer, (GLintptr)offset, (GLsizeiptr)length);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL43_nglInvalidateBufferSubData(JNIEnv *env, jclass clazz, jint buffer, jlong offset, jlong length, jlong function_pointer) {
	glInvalidateBufferSubDataPROC glInvalidateBufferSubData = (glInvalidateBufferSubDataPROC)((intptr_t)function_pointer);
	glInvalidateBufferSubData(buffer, offset, length);
}