#pragma once
#include <Metal/Metal.hpp>
#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<VertexStride> vertexStrides;
int pushConstantSize = 0;
int pushConstantIndex = 0;
bool renderWire = false;