diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index cf4c928a77..b2cb5823a7 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -7,6 +7,7 @@ A new header is inserted each time a *tag* is created.
- engine: User materials can now use 9 samplers instead of 8 [⚠️ **Material breakage**].
- engine: Remove `populateTangentQuaternions` [⚠️ **API change**].
+- engine: Deprecate `Stream::Builder::stream(intptr_t)` [⚠️ **API Change**].
## v1.9.25
diff --git a/android/filament-android/src/main/cpp/Stream.cpp b/android/filament-android/src/main/cpp/Stream.cpp
index 46b94bb0f8..f7297762eb 100644
--- a/android/filament-android/src/main/cpp/Stream.cpp
+++ b/android/filament-android/src/main/cpp/Stream.cpp
@@ -102,7 +102,9 @@ extern "C" JNIEXPORT void JNICALL
Java_com_google_android_filament_Stream_nBuilderStream(JNIEnv*, jclass,
jlong nativeStreamBuilder, jlong externalTextureId) {
StreamBuilder* builder = (StreamBuilder*) nativeStreamBuilder;
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
builder->builder()->stream(externalTextureId);
+#pragma clang diagnostic pop
}
extern "C" JNIEXPORT void JNICALL
diff --git a/android/filament-android/src/main/cpp/Texture.cpp b/android/filament-android/src/main/cpp/Texture.cpp
index ba91618afb..5a63833da1 100644
--- a/android/filament-android/src/main/cpp/Texture.cpp
+++ b/android/filament-android/src/main/cpp/Texture.cpp
@@ -129,6 +129,13 @@ Java_com_google_android_filament_Texture_nBuilderSwizzle(JNIEnv *, jclass ,
(Texture::Swizzle)r, (Texture::Swizzle)g, (Texture::Swizzle)b, (Texture::Swizzle)a);
}
+extern "C"
+JNIEXPORT void JNICALL
+Java_com_google_android_filament_Texture_nBuilderImportTexture(JNIEnv*, jclass, jlong nativeBuilder, jlong id) {
+ Texture::Builder *builder = (Texture::Builder *) nativeBuilder;
+ builder->import((intptr_t)id);
+}
+
extern "C" JNIEXPORT jlong JNICALL
Java_com_google_android_filament_Texture_nBuilderBuild(JNIEnv*, jclass,
jlong nativeBuilder, jlong nativeEngine) {
diff --git a/android/filament-android/src/main/java/com/google/android/filament/Stream.java b/android/filament-android/src/main/java/com/google/android/filament/Stream.java
index 583d3b0506..850463f918 100644
--- a/android/filament-android/src/main/java/com/google/android/filament/Stream.java
+++ b/android/filament-android/src/main/java/com/google/android/filament/Stream.java
@@ -166,7 +166,9 @@ public class Stream {
* GL_TEXTURE_EXTERNAL_OES.
* @return This Builder, for chaining calls.
* @see Texture#setExternalStream
+ * @deprecated this method existed only for ARCore which doesn't need this anymore, use {@link Texture.Builder#importTexture(long)} instead.
*/
+ @Deprecated
@NonNull
public Builder stream(long externalTextureId) {
nBuilderStream(mNativeBuilder, externalTextureId);
diff --git a/android/filament-android/src/main/java/com/google/android/filament/Texture.java b/android/filament-android/src/main/java/com/google/android/filament/Texture.java
index 92cae94914..fa20825715 100644
--- a/android/filament-android/src/main/java/com/google/android/filament/Texture.java
+++ b/android/filament-android/src/main/java/com/google/android/filament/Texture.java
@@ -695,6 +695,26 @@ public class Texture {
return this;
}
+ /**
+ * Specify a native texture to import as a Filament texture.
+ *
+ * The texture id is backend-specific: + *
Texture instance.
* @param engine The {@link Engine} to associate this Texture with.
@@ -1167,6 +1187,7 @@ public class Texture {
private static native void nBuilderFormat(long nativeBuilder, int format);
private static native void nBuilderUsage(long nativeBuilder, int flags);
private static native void nBuilderSwizzle(long nativeBuilder, int r, int g, int b, int a);
+ private static native void nBuilderImportTexture(long nativeBuilder, long id);
private static native long nBuilderBuild(long nativeBuilder, long nativeEngine);
private static native int nGetWidth(long nativeTexture, int level);
diff --git a/filament/include/filament/Stream.h b/filament/include/filament/Stream.h
index f826bcb800..146762c20e 100644
--- a/filament/include/filament/Stream.h
+++ b/filament/include/filament/Stream.h
@@ -131,7 +131,9 @@ public:
* @return This Builder, for chaining calls.
*
* @see Texture::setExternalStream()
+ * @deprecated this method existed only for ARCore which doesn't need this anymore, use Texture::import() instead.
*/
+ UTILS_DEPRECATED
Builder& stream(intptr_t externalTextureId) noexcept;
/**
diff --git a/filament/include/filament/Texture.h b/filament/include/filament/Texture.h
index d3c0afde48..60dfbeeaff 100644
--- a/filament/include/filament/Texture.h
+++ b/filament/include/filament/Texture.h
@@ -217,7 +217,7 @@ public:
*
* With Metal, the id