@@ -37,6 +37,7 @@ public class ResourceLoader {
3737 private final long mNativeObject ;
3838 private final long mNativeStbProvider ;
3939 private final long mNativeKtx2Provider ;
40+ private final long mNativeWebpProvider ;
4041
4142 /**
4243 * Constructs a resource loader tied to the given Filament engine.
@@ -50,9 +51,17 @@ public ResourceLoader(@NonNull Engine engine) {
5051 mNativeObject = nCreateResourceLoader (nativeEngine , false );
5152 mNativeStbProvider = nCreateStbProvider (nativeEngine );
5253 mNativeKtx2Provider = nCreateKtx2Provider (nativeEngine );
54+
5355 nAddTextureProvider (mNativeObject , "image/jpeg" , mNativeStbProvider );
5456 nAddTextureProvider (mNativeObject , "image/png" , mNativeStbProvider );
5557 nAddTextureProvider (mNativeObject , "image/ktx2" , mNativeKtx2Provider );
58+ if (nIsWebpSupported ()) {
59+ mNativeWebpProvider = nCreateWebpProvider (nativeEngine );
60+ nAddTextureProvider (mNativeObject , "image/webp" , mNativeWebpProvider );
61+ }
62+ else {
63+ mNativeWebpProvider = 0 ;
64+ }
5665 }
5766
5867 /**
@@ -68,9 +77,17 @@ public ResourceLoader(@NonNull Engine engine, boolean normalizeSkinningWeights)
6877 mNativeObject = nCreateResourceLoader (nativeEngine , normalizeSkinningWeights );
6978 mNativeStbProvider = nCreateStbProvider (nativeEngine );
7079 mNativeKtx2Provider = nCreateKtx2Provider (nativeEngine );
80+
7181 nAddTextureProvider (mNativeObject , "image/jpeg" , mNativeStbProvider );
7282 nAddTextureProvider (mNativeObject , "image/png" , mNativeStbProvider );
7383 nAddTextureProvider (mNativeObject , "image/ktx2" , mNativeKtx2Provider );
84+ if (nIsWebpSupported ()) {
85+ mNativeWebpProvider = nCreateWebpProvider (nativeEngine );
86+ nAddTextureProvider (mNativeObject , "image/webp" , mNativeWebpProvider );
87+ }
88+ else {
89+ mNativeWebpProvider = 0 ;
90+ }
7491 }
7592
7693 /**
@@ -80,6 +97,9 @@ public void destroy() {
8097 nDestroyResourceLoader (mNativeObject );
8198 nDestroyTextureProvider (mNativeStbProvider );
8299 nDestroyTextureProvider (mNativeKtx2Provider );
100+ if (nIsWebpSupported ()) {
101+ nDestroyTextureProvider (mNativeWebpProvider );
102+ }
83103 }
84104
85105 /**
@@ -191,6 +211,9 @@ private static native void nAddResourceData(long nativeLoader, String url, Buffe
191211
192212 private static native long nCreateStbProvider (long nativeEngine );
193213 private static native long nCreateKtx2Provider (long nativeEngine );
214+ private static native boolean nIsWebpSupported ();
215+ private static native long nCreateWebpProvider (long nativeEngine );
216+
194217 private static native void nAddTextureProvider (long nativeLoader , String url , long nativeProvider );
195218 private static native void nDestroyTextureProvider (long nativeProvider );
196219}
0 commit comments