public static boolean supports(Collection<Caps> caps, FrameBuffer fb) {
        if (!caps.contains(Caps.FrameBuffer)) {
            return false;
        }

        if (fb.getSamples() > 1
                && !caps.contains(Caps.FrameBufferMultisample)) {
            return false;
        }

        RenderBuffer depthBuf = fb.getDepthBuffer();
        if (depthBuf != null) {
            Format depthFmt = depthBuf.getFormat();
            if (!depthFmt.isDepthFormat()) {
                return false;
            } else {
                if (depthFmt == Format.Depth32F
                        && !caps.contains(Caps.FloatDepthBuffer)) {
                    return false;
                }

                if (depthFmt == Format.Depth24Stencil8
                        && !caps.contains(Caps.PackedDepthStencilBuffer)) {
                    return false;
                }
            }
        }
        for (int i = 0; i < fb.getNumColorBuffers(); i++) {
            if (!supportsColorBuffer(caps, fb.getColorBuffer(i))) {
                return false;
            }
        }
        return true;
    }
Returns true if given the renderer capabilities, the framebuffer
can be supported by the renderer.

@param caps The collection of renderer capabilities {@link Renderer#getCaps() }.
@param fb The framebuffer to check
@return True if it is supported, false otherwise.
jme3-core/src/main/java/com/jme3/renderer/Caps.java