from __future__ import annotations
import omni.kit.renderer_capture._renderer_capture
import typing
import omni.appwindow._appwindow
import omni.gpu_foundation_factory._gpu_foundation_factory

__all__ = [
    "IRendererCapture",
    "Metadata",
    "acquire_renderer_capture_interface",
    "convert_raw_bytes_to_list",
    "convert_raw_bytes_to_rgba_tuples"
]


class IRendererCapture():
    def capture_next_frame_rp_resource(self, filepath: str, resource: omni.gpu_foundation_factory._gpu_foundation_factory.RpResource, app_window: omni.appwindow._appwindow.IAppWindow = None, metadata: Metadata = None) -> None: 
        """
        Request capture RTX resource manager RpResource and save to a file.
        """
    def capture_next_frame_rp_resource_callback(self, callback: typing.Callable[[capsule, int, int, int, omni.gpu_foundation_factory._gpu_foundation_factory.TextureFormat], None], resource: omni.gpu_foundation_factory._gpu_foundation_factory.RpResource, app_window: omni.appwindow._appwindow.IAppWindow = None, metadata: Metadata = None) -> None: 
        """
        Request capture RTX resource manager RpResource and trigger a callback when capture buffer is available.
        """
    def capture_next_frame_rp_resource_list_callback(self, callback: typing.Callable[[typing.List[int], int, int, int, omni.gpu_foundation_factory._gpu_foundation_factory.TextureFormat], None], resource: omni.gpu_foundation_factory._gpu_foundation_factory.RpResource, app_window: omni.appwindow._appwindow.IAppWindow = None, metadata: Metadata = None) -> None: 
        """
        Request capture RTX resource manager RpResource and trigger a callback when capture buffer is available.
        """
    def capture_next_frame_rp_resource_to_file(self, filepath: str, resource: omni.gpu_foundation_factory._gpu_foundation_factory.RpResource, app_window: omni.appwindow._appwindow.IAppWindow = None, format_desc: object = None, metadata: Metadata = None) -> None: 
        """
        Request capture RTX resource manager RpResource and save to a file.
        """
    def capture_next_frame_swapchain(self, filepath: str, app_window: omni.appwindow._appwindow.IAppWindow = None, metadata: Metadata = None) -> None: 
        """
        Request capture swapchain and save to a file.
        """
    def capture_next_frame_swapchain_callback(self, callback: typing.Callable[[capsule, int, int, int, omni.gpu_foundation_factory._gpu_foundation_factory.TextureFormat], None], app_window: omni.appwindow._appwindow.IAppWindow = None, metadata: Metadata = None) -> None: 
        """
        Request capture swapchain and trigger a callback when capture buffer is available.
        """
    def capture_next_frame_swapchain_to_file(self, filepath: str, app_window: omni.appwindow._appwindow.IAppWindow = None, format_desc: object = None, metadata: Metadata = None) -> None: 
        """
        Request capture swapchain and save to a file.
        """
    def capture_next_frame_texture(self, filepath: str, texture: omni.gpu_foundation_factory._gpu_foundation_factory.Texture = None, app_window: omni.appwindow._appwindow.IAppWindow = None, metadata: Metadata = None) -> None: 
        """
        Request capture texture and save to a file.
        """
    def capture_next_frame_texture_callback(self, callback: typing.Callable[[capsule, int, int, int, omni.gpu_foundation_factory._gpu_foundation_factory.TextureFormat], None], texture: omni.gpu_foundation_factory._gpu_foundation_factory.Texture = None, app_window: omni.appwindow._appwindow.IAppWindow = None, metadata: Metadata = None) -> None: 
        """
        Request capture texture and trigger a callback when capture buffer is available.
        """
    def capture_next_frame_texture_to_file(self, filepath: str, texture: omni.gpu_foundation_factory._gpu_foundation_factory.Texture = None, app_window: omni.appwindow._appwindow.IAppWindow = None, format_desc: object = None, metadata: Metadata = None) -> None: 
        """
        Request capture texture and save to a file.
        """
    def capture_next_frame_using_render_product(self, viewport_handle: int, filepath: str, render_product: str) -> None: 
        """
        Request capture of all resources in render product
        """
    def request_callback_memory_ownership(self) -> bool: 
        """
        Request memory ownership of a buffer passed into callback. Should be called from within a callback.
        """
    def set_capture_sync(self, sync: bool, app_window: omni.appwindow._appwindow.IAppWindow = None) -> bool: 
        """
        Set synchronous capture mode.
        """
    def shutdown(self) -> bool: 
        """
        Internal function. Shuts down capture interface.
        """
    def start_frame_updates(self, app_window: omni.appwindow._appwindow.IAppWindow = None) -> bool: 
        """
        Starts per frame updates to collect capturing related data during each frame, such as FPS.
        """
    def startup(self) -> bool: 
        """
        Internal function. Starts up capture interface.
        """
    def wait_async_capture(self, app_window: omni.appwindow._appwindow.IAppWindow = None) -> None: 
        """
        Wait for asynchronous capture to complete.
        """
    pass
class Metadata():
    pass
def acquire_renderer_capture_interface(*args, **kwargs) -> typing.Any:
    pass
def convert_raw_bytes_to_list(arg0: capsule, arg1: int, arg2: int, arg3: int, arg4: omni.gpu_foundation_factory._gpu_foundation_factory.TextureFormat) -> typing.List[int]:
    pass
def convert_raw_bytes_to_rgba_tuples(arg0: capsule, arg1: int, arg2: int, arg3: int, arg4: omni.gpu_foundation_factory._gpu_foundation_factory.TextureFormat) -> typing.List[tuple]:
    pass
