diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index b49f14b1c3..028c61092f 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -5,21 +5,23 @@ A new header is inserted each time a *tag* is created. ## Next release (main branch) +- engine: Add new `Renderer::renderStandaloneView()` API. + ## v1.9.21 ## v1.9.20 -Android: Fix VSM. -engine: Introduce BufferObject API. -engine: Add new isTextureSwizzleSupported API on Texture. -engine: Add support to Metal and Vulkan backends for texture swizzling. -engine: Add new DoF settings (native/half res, gather kernel ring counts, CoC radius clamp). -engine: DoF quality and performance improvements. -engine: Fix high-quality upsampling issue with SSAO. -Java: Expose `TransformManager.getParent(int)`. -samples: Add Metal and Vulkan backend support to Suzanne sample. -WebGL: expose fitIntoUnitCube to JS. -WebGL: support for multiple elements. +- Android: Fix VSM. +- engine: Introduce BufferObject API. +- engine: Add new isTextureSwizzleSupported API on Texture. +- engine: Add support to Metal and Vulkan backends for texture swizzling. +- engine: Add new DoF settings (native/half res, gather kernel ring counts, CoC radius clamp). +- engine: DoF quality and performance improvements. +- engine: Fix high-quality upsampling issue with SSAO. +- Java: Expose `TransformManager.getParent(int)`. +- samples: Add Metal and Vulkan backend support to Suzanne sample. +- WebGL: expose fitIntoUnitCube to JS. +- WebGL: support for multiple `` elements. ## v1.9.19 diff --git a/android/filament-android/src/main/cpp/Renderer.cpp b/android/filament-android/src/main/cpp/Renderer.cpp index b140b50a5d..f20b7a0bcf 100644 --- a/android/filament-android/src/main/cpp/Renderer.cpp +++ b/android/filament-android/src/main/cpp/Renderer.cpp @@ -50,6 +50,14 @@ Java_com_google_android_filament_Renderer_nRender(JNIEnv *, jclass, jlong native renderer->render(view); } +extern "C" JNIEXPORT void JNICALL +Java_com_google_android_filament_Renderer_nRenderStandaloneView(JNIEnv *, jclass, jlong nativeRenderer, + jlong nativeView) { + Renderer *renderer = (Renderer *) nativeRenderer; + View *view = (View *) nativeView; + renderer->renderStandaloneView(view); +} + extern "C" JNIEXPORT void JNICALL Java_com_google_android_filament_Renderer_nCopyFrame(JNIEnv *, jclass, jlong nativeRenderer, jlong nativeDstSwapChain, diff --git a/android/filament-android/src/main/java/com/google/android/filament/Renderer.java b/android/filament-android/src/main/java/com/google/android/filament/Renderer.java index 5a4aae7b4f..b4c456c8d3 100644 --- a/android/filament-android/src/main/java/com/google/android/filament/Renderer.java +++ b/android/filament-android/src/main/java/com/google/android/filament/Renderer.java @@ -315,7 +315,7 @@ public class Renderer { *
  • Color pass
  • *
  • Post-processing pass
  • * - * + *

    * A typical render loop looks like this: * *

    @@ -331,31 +331,58 @@ public class Renderer {
          * 
    * * * * @param view the {@link View} to render - * * @see #beginFrame * @see #endFrame * @see View - * */ public void render(@NonNull View view) { nRender(getNativeObject(), view.getNativeObject()); } + /** + * Renders a standalone {@link View} into its associated RenderTarget. + * + *

    + * This call is mostly equivalent to calling {@link #render(View)} inside a + * {@link #beginFrame} / {@link #endFrame} block, but incurs less overhead. It can be used + * as a poor man's compute API. + *

    + * + *