Loading core/jni/android/graphics/ColorFilter.cpp +2 −0 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,8 @@ #include "SkColorFilter.h" #include "SkColorFilter.h" #include "SkColorMatrixFilter.h" #include "SkColorMatrixFilter.h" #include <Caches.h> namespace android { namespace android { using namespace uirenderer; using namespace uirenderer; Loading core/jni/android/graphics/Matrix.cpp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include "SkMatrix.h" #include "SkMatrix.h" #include "core_jni_helpers.h" #include "core_jni_helpers.h" #include <Caches.h> #include <jni.h> #include <jni.h> namespace android { namespace android { Loading core/jni/android/graphics/Shader.cpp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -6,6 +6,7 @@ #include "SkBlendMode.h" #include "SkBlendMode.h" #include "core_jni_helpers.h" #include "core_jni_helpers.h" #include <Caches.h> #include <jni.h> #include <jni.h> using namespace android::uirenderer; using namespace android::uirenderer; Loading core/jni/android/graphics/SurfaceTexture.cpp +23 −24 Original line number Original line Diff line number Diff line Loading @@ -36,7 +36,6 @@ #include "jni.h" #include "jni.h" #include <nativehelper/JNIHelp.h> #include <nativehelper/JNIHelp.h> #include <nativehelper/ScopedLocalRef.h> #include <nativehelper/ScopedLocalRef.h> #include "surfacetexture/SurfaceTexture.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading Loading @@ -81,10 +80,10 @@ static bool isProtectedContext() { // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- static void SurfaceTexture_setSurfaceTexture(JNIEnv* env, jobject thiz, static void SurfaceTexture_setSurfaceTexture(JNIEnv* env, jobject thiz, const sp<SurfaceTexture>& surfaceTexture) const sp<GLConsumer>& surfaceTexture) { { SurfaceTexture* const p = GLConsumer* const p = (SurfaceTexture*)env->GetLongField(thiz, fields.surfaceTexture); (GLConsumer*)env->GetLongField(thiz, fields.surfaceTexture); if (surfaceTexture.get()) { if (surfaceTexture.get()) { surfaceTexture->incStrong((void*)SurfaceTexture_setSurfaceTexture); surfaceTexture->incStrong((void*)SurfaceTexture_setSurfaceTexture); } } Loading @@ -109,10 +108,10 @@ static void SurfaceTexture_setProducer(JNIEnv* env, jobject thiz, } } static void SurfaceTexture_setFrameAvailableListener(JNIEnv* env, static void SurfaceTexture_setFrameAvailableListener(JNIEnv* env, jobject thiz, sp<SurfaceTexture::FrameAvailableListener> listener) jobject thiz, sp<GLConsumer::FrameAvailableListener> listener) { { SurfaceTexture::FrameAvailableListener* const p = GLConsumer::FrameAvailableListener* const p = (SurfaceTexture::FrameAvailableListener*) (GLConsumer::FrameAvailableListener*) env->GetLongField(thiz, fields.frameAvailableListener); env->GetLongField(thiz, fields.frameAvailableListener); if (listener.get()) { if (listener.get()) { listener->incStrong((void*)SurfaceTexture_setSurfaceTexture); listener->incStrong((void*)SurfaceTexture_setSurfaceTexture); Loading @@ -123,8 +122,8 @@ static void SurfaceTexture_setFrameAvailableListener(JNIEnv* env, env->SetLongField(thiz, fields.frameAvailableListener, (jlong)listener.get()); env->SetLongField(thiz, fields.frameAvailableListener, (jlong)listener.get()); } } sp<SurfaceTexture> SurfaceTexture_getSurfaceTexture(JNIEnv* env, jobject thiz) { sp<GLConsumer> SurfaceTexture_getSurfaceTexture(JNIEnv* env, jobject thiz) { return (SurfaceTexture*)env->GetLongField(thiz, fields.surfaceTexture); return (GLConsumer*)env->GetLongField(thiz, fields.surfaceTexture); } } sp<IGraphicBufferProducer> SurfaceTexture_getProducer(JNIEnv* env, jobject thiz) { sp<IGraphicBufferProducer> SurfaceTexture_getProducer(JNIEnv* env, jobject thiz) { Loading @@ -132,7 +131,7 @@ sp<IGraphicBufferProducer> SurfaceTexture_getProducer(JNIEnv* env, jobject thiz) } } sp<ANativeWindow> android_SurfaceTexture_getNativeWindow(JNIEnv* env, jobject thiz) { sp<ANativeWindow> android_SurfaceTexture_getNativeWindow(JNIEnv* env, jobject thiz) { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(env, thiz)); sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(env, thiz)); sp<Surface> surfaceTextureClient(surfaceTexture != NULL ? new Surface(producer) : NULL); sp<Surface> surfaceTextureClient(surfaceTexture != NULL ? new Surface(producer) : NULL); return surfaceTextureClient; return surfaceTextureClient; Loading @@ -145,7 +144,7 @@ bool android_SurfaceTexture_isInstanceOf(JNIEnv* env, jobject thiz) { // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- class JNISurfaceTextureContext : public SurfaceTexture::FrameAvailableListener class JNISurfaceTextureContext : public GLConsumer::FrameAvailableListener { { public: public: JNISurfaceTextureContext(JNIEnv* env, jobject weakThiz, jclass clazz); JNISurfaceTextureContext(JNIEnv* env, jobject weakThiz, jclass clazz); Loading Loading @@ -267,12 +266,12 @@ static void SurfaceTexture_init(JNIEnv* env, jobject thiz, jboolean isDetached, consumer->setMaxBufferCount(1); consumer->setMaxBufferCount(1); } } sp<SurfaceTexture> surfaceTexture; sp<GLConsumer> surfaceTexture; if (isDetached) { if (isDetached) { surfaceTexture = new SurfaceTexture(consumer, GL_TEXTURE_EXTERNAL_OES, surfaceTexture = new GLConsumer(consumer, GL_TEXTURE_EXTERNAL_OES, true, !singleBufferMode); true, !singleBufferMode); } else { } else { surfaceTexture = new SurfaceTexture(consumer, texName, surfaceTexture = new GLConsumer(consumer, texName, GL_TEXTURE_EXTERNAL_OES, true, !singleBufferMode); GL_TEXTURE_EXTERNAL_OES, true, !singleBufferMode); } } Loading Loading @@ -307,7 +306,7 @@ static void SurfaceTexture_init(JNIEnv* env, jobject thiz, jboolean isDetached, static void SurfaceTexture_finalize(JNIEnv* env, jobject thiz) static void SurfaceTexture_finalize(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); surfaceTexture->setFrameAvailableListener(0); surfaceTexture->setFrameAvailableListener(0); SurfaceTexture_setFrameAvailableListener(env, thiz, 0); SurfaceTexture_setFrameAvailableListener(env, thiz, 0); SurfaceTexture_setSurfaceTexture(env, thiz, 0); SurfaceTexture_setSurfaceTexture(env, thiz, 0); Loading @@ -316,13 +315,13 @@ static void SurfaceTexture_finalize(JNIEnv* env, jobject thiz) static void SurfaceTexture_setDefaultBufferSize( static void SurfaceTexture_setDefaultBufferSize( JNIEnv* env, jobject thiz, jint width, jint height) { JNIEnv* env, jobject thiz, jint width, jint height) { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); surfaceTexture->setDefaultBufferSize(width, height); surfaceTexture->setDefaultBufferSize(width, height); } } static void SurfaceTexture_updateTexImage(JNIEnv* env, jobject thiz) static void SurfaceTexture_updateTexImage(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); status_t err = surfaceTexture->updateTexImage(); status_t err = surfaceTexture->updateTexImage(); if (err == INVALID_OPERATION) { if (err == INVALID_OPERATION) { jniThrowException(env, IllegalStateException, "Unable to update texture contents (see " jniThrowException(env, IllegalStateException, "Unable to update texture contents (see " Loading @@ -334,7 +333,7 @@ static void SurfaceTexture_updateTexImage(JNIEnv* env, jobject thiz) static void SurfaceTexture_releaseTexImage(JNIEnv* env, jobject thiz) static void SurfaceTexture_releaseTexImage(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); status_t err = surfaceTexture->releaseTexImage(); status_t err = surfaceTexture->releaseTexImage(); if (err == INVALID_OPERATION) { if (err == INVALID_OPERATION) { jniThrowException(env, IllegalStateException, "Unable to release texture contents (see " jniThrowException(env, IllegalStateException, "Unable to release texture contents (see " Loading @@ -346,20 +345,20 @@ static void SurfaceTexture_releaseTexImage(JNIEnv* env, jobject thiz) static jint SurfaceTexture_detachFromGLContext(JNIEnv* env, jobject thiz) static jint SurfaceTexture_detachFromGLContext(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); return surfaceTexture->detachFromContext(); return surfaceTexture->detachFromContext(); } } static jint SurfaceTexture_attachToGLContext(JNIEnv* env, jobject thiz, jint tex) static jint SurfaceTexture_attachToGLContext(JNIEnv* env, jobject thiz, jint tex) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); return surfaceTexture->attachToContext((GLuint)tex); return surfaceTexture->attachToContext((GLuint)tex); } } static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject thiz, static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject thiz, jfloatArray jmtx) jfloatArray jmtx) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); float* mtx = env->GetFloatArrayElements(jmtx, NULL); float* mtx = env->GetFloatArrayElements(jmtx, NULL); surfaceTexture->getTransformMatrix(mtx); surfaceTexture->getTransformMatrix(mtx); env->ReleaseFloatArrayElements(jmtx, mtx, 0); env->ReleaseFloatArrayElements(jmtx, mtx, 0); Loading @@ -367,19 +366,19 @@ static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject thiz, static jlong SurfaceTexture_getTimestamp(JNIEnv* env, jobject thiz) static jlong SurfaceTexture_getTimestamp(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); return surfaceTexture->getTimestamp(); return surfaceTexture->getTimestamp(); } } static void SurfaceTexture_release(JNIEnv* env, jobject thiz) static void SurfaceTexture_release(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); surfaceTexture->abandon(); surfaceTexture->abandon(); } } static jboolean SurfaceTexture_isReleased(JNIEnv* env, jobject thiz) static jboolean SurfaceTexture_isReleased(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); return surfaceTexture->isAbandoned(); return surfaceTexture->isAbandoned(); } } Loading core/jni/android_view_TextureLayer.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -67,7 +67,8 @@ static void TextureLayer_setTransform(JNIEnv* env, jobject clazz, static void TextureLayer_setSurfaceTexture(JNIEnv* env, jobject clazz, static void TextureLayer_setSurfaceTexture(JNIEnv* env, jobject clazz, jlong layerUpdaterPtr, jobject surface) { jlong layerUpdaterPtr, jobject surface) { DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); layer->setSurfaceTexture(SurfaceTexture_getSurfaceTexture(env, surface)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, surface)); layer->setSurfaceTexture(surfaceTexture); } } static void TextureLayer_updateSurfaceTexture(JNIEnv* env, jobject clazz, static void TextureLayer_updateSurfaceTexture(JNIEnv* env, jobject clazz, Loading Loading
core/jni/android/graphics/ColorFilter.cpp +2 −0 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,8 @@ #include "SkColorFilter.h" #include "SkColorFilter.h" #include "SkColorMatrixFilter.h" #include "SkColorMatrixFilter.h" #include <Caches.h> namespace android { namespace android { using namespace uirenderer; using namespace uirenderer; Loading
core/jni/android/graphics/Matrix.cpp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include "SkMatrix.h" #include "SkMatrix.h" #include "core_jni_helpers.h" #include "core_jni_helpers.h" #include <Caches.h> #include <jni.h> #include <jni.h> namespace android { namespace android { Loading
core/jni/android/graphics/Shader.cpp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -6,6 +6,7 @@ #include "SkBlendMode.h" #include "SkBlendMode.h" #include "core_jni_helpers.h" #include "core_jni_helpers.h" #include <Caches.h> #include <jni.h> #include <jni.h> using namespace android::uirenderer; using namespace android::uirenderer; Loading
core/jni/android/graphics/SurfaceTexture.cpp +23 −24 Original line number Original line Diff line number Diff line Loading @@ -36,7 +36,6 @@ #include "jni.h" #include "jni.h" #include <nativehelper/JNIHelp.h> #include <nativehelper/JNIHelp.h> #include <nativehelper/ScopedLocalRef.h> #include <nativehelper/ScopedLocalRef.h> #include "surfacetexture/SurfaceTexture.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading Loading @@ -81,10 +80,10 @@ static bool isProtectedContext() { // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- static void SurfaceTexture_setSurfaceTexture(JNIEnv* env, jobject thiz, static void SurfaceTexture_setSurfaceTexture(JNIEnv* env, jobject thiz, const sp<SurfaceTexture>& surfaceTexture) const sp<GLConsumer>& surfaceTexture) { { SurfaceTexture* const p = GLConsumer* const p = (SurfaceTexture*)env->GetLongField(thiz, fields.surfaceTexture); (GLConsumer*)env->GetLongField(thiz, fields.surfaceTexture); if (surfaceTexture.get()) { if (surfaceTexture.get()) { surfaceTexture->incStrong((void*)SurfaceTexture_setSurfaceTexture); surfaceTexture->incStrong((void*)SurfaceTexture_setSurfaceTexture); } } Loading @@ -109,10 +108,10 @@ static void SurfaceTexture_setProducer(JNIEnv* env, jobject thiz, } } static void SurfaceTexture_setFrameAvailableListener(JNIEnv* env, static void SurfaceTexture_setFrameAvailableListener(JNIEnv* env, jobject thiz, sp<SurfaceTexture::FrameAvailableListener> listener) jobject thiz, sp<GLConsumer::FrameAvailableListener> listener) { { SurfaceTexture::FrameAvailableListener* const p = GLConsumer::FrameAvailableListener* const p = (SurfaceTexture::FrameAvailableListener*) (GLConsumer::FrameAvailableListener*) env->GetLongField(thiz, fields.frameAvailableListener); env->GetLongField(thiz, fields.frameAvailableListener); if (listener.get()) { if (listener.get()) { listener->incStrong((void*)SurfaceTexture_setSurfaceTexture); listener->incStrong((void*)SurfaceTexture_setSurfaceTexture); Loading @@ -123,8 +122,8 @@ static void SurfaceTexture_setFrameAvailableListener(JNIEnv* env, env->SetLongField(thiz, fields.frameAvailableListener, (jlong)listener.get()); env->SetLongField(thiz, fields.frameAvailableListener, (jlong)listener.get()); } } sp<SurfaceTexture> SurfaceTexture_getSurfaceTexture(JNIEnv* env, jobject thiz) { sp<GLConsumer> SurfaceTexture_getSurfaceTexture(JNIEnv* env, jobject thiz) { return (SurfaceTexture*)env->GetLongField(thiz, fields.surfaceTexture); return (GLConsumer*)env->GetLongField(thiz, fields.surfaceTexture); } } sp<IGraphicBufferProducer> SurfaceTexture_getProducer(JNIEnv* env, jobject thiz) { sp<IGraphicBufferProducer> SurfaceTexture_getProducer(JNIEnv* env, jobject thiz) { Loading @@ -132,7 +131,7 @@ sp<IGraphicBufferProducer> SurfaceTexture_getProducer(JNIEnv* env, jobject thiz) } } sp<ANativeWindow> android_SurfaceTexture_getNativeWindow(JNIEnv* env, jobject thiz) { sp<ANativeWindow> android_SurfaceTexture_getNativeWindow(JNIEnv* env, jobject thiz) { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(env, thiz)); sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(env, thiz)); sp<Surface> surfaceTextureClient(surfaceTexture != NULL ? new Surface(producer) : NULL); sp<Surface> surfaceTextureClient(surfaceTexture != NULL ? new Surface(producer) : NULL); return surfaceTextureClient; return surfaceTextureClient; Loading @@ -145,7 +144,7 @@ bool android_SurfaceTexture_isInstanceOf(JNIEnv* env, jobject thiz) { // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- class JNISurfaceTextureContext : public SurfaceTexture::FrameAvailableListener class JNISurfaceTextureContext : public GLConsumer::FrameAvailableListener { { public: public: JNISurfaceTextureContext(JNIEnv* env, jobject weakThiz, jclass clazz); JNISurfaceTextureContext(JNIEnv* env, jobject weakThiz, jclass clazz); Loading Loading @@ -267,12 +266,12 @@ static void SurfaceTexture_init(JNIEnv* env, jobject thiz, jboolean isDetached, consumer->setMaxBufferCount(1); consumer->setMaxBufferCount(1); } } sp<SurfaceTexture> surfaceTexture; sp<GLConsumer> surfaceTexture; if (isDetached) { if (isDetached) { surfaceTexture = new SurfaceTexture(consumer, GL_TEXTURE_EXTERNAL_OES, surfaceTexture = new GLConsumer(consumer, GL_TEXTURE_EXTERNAL_OES, true, !singleBufferMode); true, !singleBufferMode); } else { } else { surfaceTexture = new SurfaceTexture(consumer, texName, surfaceTexture = new GLConsumer(consumer, texName, GL_TEXTURE_EXTERNAL_OES, true, !singleBufferMode); GL_TEXTURE_EXTERNAL_OES, true, !singleBufferMode); } } Loading Loading @@ -307,7 +306,7 @@ static void SurfaceTexture_init(JNIEnv* env, jobject thiz, jboolean isDetached, static void SurfaceTexture_finalize(JNIEnv* env, jobject thiz) static void SurfaceTexture_finalize(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); surfaceTexture->setFrameAvailableListener(0); surfaceTexture->setFrameAvailableListener(0); SurfaceTexture_setFrameAvailableListener(env, thiz, 0); SurfaceTexture_setFrameAvailableListener(env, thiz, 0); SurfaceTexture_setSurfaceTexture(env, thiz, 0); SurfaceTexture_setSurfaceTexture(env, thiz, 0); Loading @@ -316,13 +315,13 @@ static void SurfaceTexture_finalize(JNIEnv* env, jobject thiz) static void SurfaceTexture_setDefaultBufferSize( static void SurfaceTexture_setDefaultBufferSize( JNIEnv* env, jobject thiz, jint width, jint height) { JNIEnv* env, jobject thiz, jint width, jint height) { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); surfaceTexture->setDefaultBufferSize(width, height); surfaceTexture->setDefaultBufferSize(width, height); } } static void SurfaceTexture_updateTexImage(JNIEnv* env, jobject thiz) static void SurfaceTexture_updateTexImage(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); status_t err = surfaceTexture->updateTexImage(); status_t err = surfaceTexture->updateTexImage(); if (err == INVALID_OPERATION) { if (err == INVALID_OPERATION) { jniThrowException(env, IllegalStateException, "Unable to update texture contents (see " jniThrowException(env, IllegalStateException, "Unable to update texture contents (see " Loading @@ -334,7 +333,7 @@ static void SurfaceTexture_updateTexImage(JNIEnv* env, jobject thiz) static void SurfaceTexture_releaseTexImage(JNIEnv* env, jobject thiz) static void SurfaceTexture_releaseTexImage(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); status_t err = surfaceTexture->releaseTexImage(); status_t err = surfaceTexture->releaseTexImage(); if (err == INVALID_OPERATION) { if (err == INVALID_OPERATION) { jniThrowException(env, IllegalStateException, "Unable to release texture contents (see " jniThrowException(env, IllegalStateException, "Unable to release texture contents (see " Loading @@ -346,20 +345,20 @@ static void SurfaceTexture_releaseTexImage(JNIEnv* env, jobject thiz) static jint SurfaceTexture_detachFromGLContext(JNIEnv* env, jobject thiz) static jint SurfaceTexture_detachFromGLContext(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); return surfaceTexture->detachFromContext(); return surfaceTexture->detachFromContext(); } } static jint SurfaceTexture_attachToGLContext(JNIEnv* env, jobject thiz, jint tex) static jint SurfaceTexture_attachToGLContext(JNIEnv* env, jobject thiz, jint tex) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); return surfaceTexture->attachToContext((GLuint)tex); return surfaceTexture->attachToContext((GLuint)tex); } } static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject thiz, static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject thiz, jfloatArray jmtx) jfloatArray jmtx) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); float* mtx = env->GetFloatArrayElements(jmtx, NULL); float* mtx = env->GetFloatArrayElements(jmtx, NULL); surfaceTexture->getTransformMatrix(mtx); surfaceTexture->getTransformMatrix(mtx); env->ReleaseFloatArrayElements(jmtx, mtx, 0); env->ReleaseFloatArrayElements(jmtx, mtx, 0); Loading @@ -367,19 +366,19 @@ static void SurfaceTexture_getTransformMatrix(JNIEnv* env, jobject thiz, static jlong SurfaceTexture_getTimestamp(JNIEnv* env, jobject thiz) static jlong SurfaceTexture_getTimestamp(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); return surfaceTexture->getTimestamp(); return surfaceTexture->getTimestamp(); } } static void SurfaceTexture_release(JNIEnv* env, jobject thiz) static void SurfaceTexture_release(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); surfaceTexture->abandon(); surfaceTexture->abandon(); } } static jboolean SurfaceTexture_isReleased(JNIEnv* env, jobject thiz) static jboolean SurfaceTexture_isReleased(JNIEnv* env, jobject thiz) { { sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); return surfaceTexture->isAbandoned(); return surfaceTexture->isAbandoned(); } } Loading
core/jni/android_view_TextureLayer.cpp +2 −1 Original line number Original line Diff line number Diff line Loading @@ -67,7 +67,8 @@ static void TextureLayer_setTransform(JNIEnv* env, jobject clazz, static void TextureLayer_setSurfaceTexture(JNIEnv* env, jobject clazz, static void TextureLayer_setSurfaceTexture(JNIEnv* env, jobject clazz, jlong layerUpdaterPtr, jobject surface) { jlong layerUpdaterPtr, jobject surface) { DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr); layer->setSurfaceTexture(SurfaceTexture_getSurfaceTexture(env, surface)); sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, surface)); layer->setSurfaceTexture(surfaceTexture); } } static void TextureLayer_updateSurfaceTexture(JNIEnv* env, jobject clazz, static void TextureLayer_updateSurfaceTexture(JNIEnv* env, jobject clazz, Loading