32 , m_index(indexCounter.fetchAndAddRelaxed(1))
34 Q_STATIC_ASSERT(
sizeof (jlong) >=
sizeof (
void *));
35 m_surfaceTexture = QJniObject(
"android/graphics/SurfaceTexture",
"(I)V", jint(texName));
37 if (!m_surfaceTexture.isValid())
40 const QMutexLocker lock(g_textureMutex());
41 g_surfaceTextures->append(jlong(
this));
43 setOnFrameAvailableListener(listener);
63 if (!m_surfaceTexture.isValid())
67 jfloatArray array = env->NewFloatArray(16);
68 m_surfaceTexture.callMethod<
void>(
"getTransformMatrix",
"([F)V", array);
69 env->GetFloatArrayRegion(array, 0, 16, matrix.data());
70 env->DeleteLocalRef(array);
static QAtomicInteger< quint64 > indexCounter
static void notifyFrameAvailable(JNIEnv *, jobject, jlong id)
QList< jlong > SurfaceTextures
static QT_BEGIN_NAMESPACE const char QtSurfaceTextureListenerClassName[]
void attachToGLContext(quint32 texName)
static bool registerNativeMethods()
QMatrix4x4 getTransformMatrix()
void detachFromGLContext()