//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;

use crate::*;

extern_protocol!(
    #[cfg(feature = "MTLCommandEncoder")]
    pub unsafe trait MTLParallelRenderCommandEncoder:
        MTLCommandEncoder + IsRetainable
    {
        #[cfg(feature = "MTLRenderCommandEncoder")]
        #[method_id(@__retain_semantics Other renderCommandEncoder)]
        fn renderCommandEncoder(
            &self,
        ) -> Option<Retained<ProtocolObject<dyn MTLRenderCommandEncoder>>>;

        #[cfg(feature = "MTLRenderPass")]
        #[method(setColorStoreAction:atIndex:)]
        unsafe fn setColorStoreAction_atIndex(
            &self,
            store_action: MTLStoreAction,
            color_attachment_index: NSUInteger,
        );

        #[cfg(feature = "MTLRenderPass")]
        #[method(setDepthStoreAction:)]
        unsafe fn setDepthStoreAction(&self, store_action: MTLStoreAction);

        #[cfg(feature = "MTLRenderPass")]
        #[method(setStencilStoreAction:)]
        unsafe fn setStencilStoreAction(&self, store_action: MTLStoreAction);

        #[cfg(feature = "MTLRenderPass")]
        #[method(setColorStoreActionOptions:atIndex:)]
        unsafe fn setColorStoreActionOptions_atIndex(
            &self,
            store_action_options: MTLStoreActionOptions,
            color_attachment_index: NSUInteger,
        );

        #[cfg(feature = "MTLRenderPass")]
        #[method(setDepthStoreActionOptions:)]
        unsafe fn setDepthStoreActionOptions(&self, store_action_options: MTLStoreActionOptions);

        #[cfg(feature = "MTLRenderPass")]
        #[method(setStencilStoreActionOptions:)]
        unsafe fn setStencilStoreActionOptions(&self, store_action_options: MTLStoreActionOptions);
    }

    #[cfg(feature = "MTLCommandEncoder")]
    unsafe impl ProtocolType for dyn MTLParallelRenderCommandEncoder {}
);
