-
Enhancement
-
Resolution: Unresolved
-
P4
-
None
OpenGL is documented to flush when buffers are swapped so a glFlush() in C code (and other extra calls that flush OpenGL) can be removed. For example:
JNIEXPORT jboolean JNICALL Java_com_sun_prism_es2_EGLFBGLDrawable_nSwapBuffers
(JNIEnv *env, jclass jeglfbDrawable, jlong nativeDInfo) {
int value;
// Do not flush - eglSwapBuffers() is documented to already do a glFlush()
//glFlush();
DrawableInfo *dInfo = (DrawableInfo *) jlong_to_ptr(nativeDInfo);
if (dInfo == NULL) {
return JNI_FALSE;
}
PRISM_LOG("eglSwapBuffers(display=%p, surface=%p)",
dInfo->egldisplay, dInfo->eglsurface);
if (!eglSwapBuffers(dInfo->egldisplay, dInfo->eglsurface)) {
fprintf(stderr, "eglSwapBuffers failed; eglGetError %d\n", eglGetError());
}
return JNI_TRUE;
}
JNIEXPORT jboolean JNICALL Java_com_sun_prism_es2_EGLFBGLDrawable_nSwapBuffers
(JNIEnv *env, jclass jeglfbDrawable, jlong nativeDInfo) {
int value;
// Do not flush - eglSwapBuffers() is documented to already do a glFlush()
//glFlush();
DrawableInfo *dInfo = (DrawableInfo *) jlong_to_ptr(nativeDInfo);
if (dInfo == NULL) {
return JNI_FALSE;
}
PRISM_LOG("eglSwapBuffers(display=%p, surface=%p)",
dInfo->egldisplay, dInfo->eglsurface);
if (!eglSwapBuffers(dInfo->egldisplay, dInfo->eglsurface)) {
fprintf(stderr, "eglSwapBuffers failed; eglGetError %d\n", eglGetError());
}
return JNI_TRUE;
}
1.
|
Remove glFlush from EGLFBGLDrawable.nSwapBuffers |
|
Resolved | Daniel Blaukopf (Inactive) | 2013-10-24 |
2.
|
Remove glFinish from ES2graphics.sync() |
|
Closed | David Hill (Inactive) | 2013-10-24 |