8#ifndef GrMtlPipelineState_DEFINED
9#define GrMtlPipelineState_DEFINED
18#import <Metal/Metal.h>
43 uint32_t uniformBufferSize,
45 std::unique_ptr<GrGeometryProcessor::ProgramImpl>,
46 std::unique_ptr<GrXferProcessor::ProgramImpl>,
47 std::vector<std::unique_ptr<GrFragmentProcessor::ProgramImpl>> fpImpls);
63 SkISize colorAttachmentDimensions,
75 struct RenderTargetState {
79 RenderTargetState() { this->invalidate(); }
81 fRenderTargetSize.
fWidth = -1;
97 struct SamplerBindings {
99 id<MTLTexture> fTexture;
106 MTLPixelFormat fPixelFormat;
108 RenderTargetState fRenderTargetState;
116 std::unique_ptr<GrGeometryProcessor::ProgramImpl> fGPImpl;
117 std::unique_ptr<GrXferProcessor::ProgramImpl> fXPImpl;
118 std::vector<std::unique_ptr<GrFragmentProcessor::ProgramImpl>> fFPImpls;
GrMtlUniformHandler::UniformInfoArray UniformInfoArray
void setDrawState(GrMtlRenderCommandEncoder *, const skgpu::Swizzle &writeSwizzle, const GrXferProcessor &)
GrMtlPipelineState(GrMtlGpu *, sk_sp< GrMtlRenderPipeline > pipeline, MTLPixelFormat, const GrGLSLBuiltinUniformHandles &builtinUniformHandles, const UniformInfoArray &uniforms, uint32_t uniformBufferSize, uint32_t numSamplers, std::unique_ptr< GrGeometryProcessor::ProgramImpl >, std::unique_ptr< GrXferProcessor::ProgramImpl >, std::vector< std::unique_ptr< GrFragmentProcessor::ProgramImpl > > fpImpls)
static void SetDynamicScissorRectState(GrMtlRenderCommandEncoder *renderCmdEncoder, SkISize colorAttachmentDimensions, GrSurfaceOrigin rtOrigin, SkIRect scissorRect)
bool doesntSampleAttachment(const MTLRenderPassAttachmentDescriptor *) const
void bindTextures(GrMtlRenderCommandEncoder *renderCmdEncoder)
void setTextures(const GrGeometryProcessor &, const GrPipeline &, const GrSurfaceProxy *const geomProcTextures[])
void setData(GrMtlFramebuffer *, const GrProgramInfo &)
GrGLSLProgramDataManager::UniformHandle UniformHandle
const sk_sp< GrMtlRenderPipeline > & pipeline() const