#pragma once #include #include "gfx_pipeline.hpp" class GFXMetalPipeline : public GFXPipeline { public: std::string label; MTL::RenderPipelineState* handle = nullptr; MTL::ComputePipelineState* compute_handle = nullptr; MTL::Size threadGroupSize; MTL::DepthStencilState* depthStencil = nullptr; MTL::PrimitiveType primitiveType; MTL::CullMode cullMode; GFXWindingMode winding_mode; struct VertexStride { int location, stride; }; std::vector vertexStrides; int pushConstantSize = 0; int pushConstantIndex = 0; bool renderWire = false; };