class RenderResources:
    """
    The resources handler of the rendering process.
    """

    def __init__(
        self,
        opengl_context: 'moderngl.Context',
        render_target_provider: 'RenderTargetProvider'
    ):
        self.opengl_context: 'moderngl.Context' = opengl_context
        """
        The moderngl context we need to operate with GPU.
        """
        self._render_target_provider: 'RenderTargetProvider' = render_target_provider
        """
        *For internal use only*

        The render target provider, able to handle the
        pool and acquire and release `RenderTarget`
        instances on demand.
        """
        # TODO: Maybe a pool of textures that is also used
        # by the 'RenderTargetProvider' (?)