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); }