Merge "Deprecate eglCreatePixmapSurface"
This commit is contained in:
committed by
Android (Google) Code Review
commit
91507e09ec
@@ -25546,7 +25546,7 @@ package android.opengl {
|
||||
method public static android.opengl.EGLContext eglCreateContext(android.opengl.EGLDisplay, android.opengl.EGLConfig, android.opengl.EGLContext, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePbufferFromClientBuffer(android.opengl.EGLDisplay, int, int, android.opengl.EGLConfig, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePbufferSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePixmapSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
|
||||
method public static deprecated android.opengl.EGLSurface eglCreatePixmapSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreateWindowSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, java.lang.Object, int[], int);
|
||||
method public static boolean eglDestroyContext(android.opengl.EGLDisplay, android.opengl.EGLContext);
|
||||
method public static boolean eglDestroySurface(android.opengl.EGLDisplay, android.opengl.EGLSurface);
|
||||
@@ -64219,7 +64219,7 @@ package javax.microedition.khronos.egl {
|
||||
method public abstract boolean eglCopyBuffers(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, java.lang.Object);
|
||||
method public abstract javax.microedition.khronos.egl.EGLContext eglCreateContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, javax.microedition.khronos.egl.EGLContext, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreatePbufferSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract deprecated javax.microedition.khronos.egl.EGLSurface eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreateWindowSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract boolean eglDestroyContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext);
|
||||
method public abstract boolean eglDestroySurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
|
||||
|
||||
@@ -28073,7 +28073,7 @@ package android.opengl {
|
||||
method public static android.opengl.EGLContext eglCreateContext(android.opengl.EGLDisplay, android.opengl.EGLConfig, android.opengl.EGLContext, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePbufferFromClientBuffer(android.opengl.EGLDisplay, int, int, android.opengl.EGLConfig, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePbufferSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePixmapSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
|
||||
method public static deprecated android.opengl.EGLSurface eglCreatePixmapSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreateWindowSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, java.lang.Object, int[], int);
|
||||
method public static boolean eglDestroyContext(android.opengl.EGLDisplay, android.opengl.EGLContext);
|
||||
method public static boolean eglDestroySurface(android.opengl.EGLDisplay, android.opengl.EGLSurface);
|
||||
@@ -67742,7 +67742,7 @@ package javax.microedition.khronos.egl {
|
||||
method public abstract boolean eglCopyBuffers(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, java.lang.Object);
|
||||
method public abstract javax.microedition.khronos.egl.EGLContext eglCreateContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, javax.microedition.khronos.egl.EGLContext, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreatePbufferSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract deprecated javax.microedition.khronos.egl.EGLSurface eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreateWindowSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract boolean eglDestroyContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext);
|
||||
method public abstract boolean eglDestroySurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
|
||||
|
||||
@@ -25633,7 +25633,7 @@ package android.opengl {
|
||||
method public static android.opengl.EGLContext eglCreateContext(android.opengl.EGLDisplay, android.opengl.EGLConfig, android.opengl.EGLContext, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePbufferFromClientBuffer(android.opengl.EGLDisplay, int, int, android.opengl.EGLConfig, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePbufferSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreatePixmapSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
|
||||
method public static deprecated android.opengl.EGLSurface eglCreatePixmapSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, int, int[], int);
|
||||
method public static android.opengl.EGLSurface eglCreateWindowSurface(android.opengl.EGLDisplay, android.opengl.EGLConfig, java.lang.Object, int[], int);
|
||||
method public static boolean eglDestroyContext(android.opengl.EGLDisplay, android.opengl.EGLContext);
|
||||
method public static boolean eglDestroySurface(android.opengl.EGLDisplay, android.opengl.EGLSurface);
|
||||
@@ -64491,7 +64491,7 @@ package javax.microedition.khronos.egl {
|
||||
method public abstract boolean eglCopyBuffers(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface, java.lang.Object);
|
||||
method public abstract javax.microedition.khronos.egl.EGLContext eglCreateContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, javax.microedition.khronos.egl.EGLContext, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreatePbufferSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract deprecated javax.microedition.khronos.egl.EGLSurface eglCreatePixmapSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract javax.microedition.khronos.egl.EGLSurface eglCreateWindowSurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLConfig, java.lang.Object, int[]);
|
||||
method public abstract boolean eglDestroyContext(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLContext);
|
||||
method public abstract boolean eglDestroySurface(javax.microedition.khronos.egl.EGLDisplay, javax.microedition.khronos.egl.EGLSurface);
|
||||
|
||||
@@ -254,59 +254,11 @@ static jlong jni_eglCreatePbufferSurface(JNIEnv *_env, jobject _this, jobject di
|
||||
return reinterpret_cast<jlong>(sur);
|
||||
}
|
||||
|
||||
static PixelFormat convertPixelFormat(SkColorType format)
|
||||
{
|
||||
switch (format) {
|
||||
case kN32_SkColorType: return PIXEL_FORMAT_RGBA_8888;
|
||||
case kARGB_4444_SkColorType: return PIXEL_FORMAT_RGBA_4444;
|
||||
case kRGB_565_SkColorType: return PIXEL_FORMAT_RGB_565;
|
||||
default: return PIXEL_FORMAT_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
static void jni_eglCreatePixmapSurface(JNIEnv *_env, jobject _this, jobject out_sur,
|
||||
jobject display, jobject config, jobject native_pixmap,
|
||||
jintArray attrib_list)
|
||||
{
|
||||
if (display == NULL || config == NULL || native_pixmap == NULL
|
||||
|| !validAttribList(_env, attrib_list)) {
|
||||
jniThrowException(_env, "java/lang/IllegalArgumentException", NULL);
|
||||
return;
|
||||
}
|
||||
EGLDisplay dpy = getDisplay(_env, display);
|
||||
EGLConfig cnf = getConfig(_env, config);
|
||||
jint* base = 0;
|
||||
|
||||
SkBitmap nativeBitmap;
|
||||
GraphicsJNI::getSkBitmap(_env, native_pixmap, &nativeBitmap);
|
||||
SkPixelRef* ref = nativeBitmap.pixelRef();
|
||||
if (ref == NULL) {
|
||||
jniThrowException(_env, "java/lang/IllegalArgumentException", "Bitmap has no PixelRef");
|
||||
return;
|
||||
}
|
||||
|
||||
SkSafeRef(ref);
|
||||
ref->lockPixels();
|
||||
|
||||
egl_native_pixmap_t pixmap;
|
||||
pixmap.version = sizeof(pixmap);
|
||||
pixmap.width = nativeBitmap.width();
|
||||
pixmap.height = nativeBitmap.height();
|
||||
pixmap.stride = nativeBitmap.rowBytes() / nativeBitmap.bytesPerPixel();
|
||||
pixmap.format = convertPixelFormat(nativeBitmap.colorType());
|
||||
pixmap.data = (uint8_t*)ref->pixels();
|
||||
|
||||
base = beginNativeAttribList(_env, attrib_list);
|
||||
EGLSurface sur = eglCreatePixmapSurface(dpy, cnf, &pixmap, base);
|
||||
endNativeAttributeList(_env, attrib_list, base);
|
||||
|
||||
if (sur != EGL_NO_SURFACE) {
|
||||
_env->SetLongField(out_sur, gSurface_EGLSurfaceFieldID, reinterpret_cast<jlong>(sur));
|
||||
_env->SetLongField(out_sur, gSurface_NativePixelRefFieldID, reinterpret_cast<jlong>(ref));
|
||||
} else {
|
||||
ref->unlockPixels();
|
||||
SkSafeUnref(ref);
|
||||
}
|
||||
jniThrowException(_env, "java/lang/UnsupportedOperationException", "eglCreatePixmapSurface");
|
||||
}
|
||||
|
||||
static jlong jni_eglCreateWindowSurface(JNIEnv *_env, jobject _this, jobject display,
|
||||
|
||||
@@ -284,6 +284,7 @@ public static final int EGL_CORE_NATIVE_ENGINE = 0x305B;
|
||||
|
||||
// C function EGLSurface eglCreatePixmapSurface ( EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list )
|
||||
|
||||
@Deprecated
|
||||
public static native EGLSurface eglCreatePixmapSurface(
|
||||
EGLDisplay dpy,
|
||||
EGLConfig config,
|
||||
|
||||
@@ -98,6 +98,7 @@ public interface EGL10 extends EGL {
|
||||
boolean eglCopyBuffers(EGLDisplay display, EGLSurface surface, Object native_pixmap);
|
||||
EGLContext eglCreateContext(EGLDisplay display, EGLConfig config, EGLContext share_context, int[] attrib_list);
|
||||
EGLSurface eglCreatePbufferSurface(EGLDisplay display, EGLConfig config, int[] attrib_list);
|
||||
@Deprecated
|
||||
EGLSurface eglCreatePixmapSurface(EGLDisplay display, EGLConfig config, Object native_pixmap, int[] attrib_list);
|
||||
EGLSurface eglCreateWindowSurface(EGLDisplay display, EGLConfig config, Object native_window, int[] attrib_list);
|
||||
boolean eglDestroyContext(EGLDisplay display, EGLContext context);
|
||||
|
||||
Reference in New Issue
Block a user