32 lines
647 B
C++
Executable file
32 lines
647 B
C++
Executable file
#pragma once
|
|
|
|
#include <Metal/Metal.h>
|
|
|
|
#include "gfx_pipeline.hpp"
|
|
|
|
class GFXMetalPipeline : public GFXPipeline {
|
|
public:
|
|
std::string label;
|
|
|
|
id<MTLRenderPipelineState> handle = nil;
|
|
id<MTLComputePipelineState> compute_handle = nil;
|
|
|
|
MTLSize threadGroupSize;
|
|
|
|
id<MTLDepthStencilState> depthStencil = nil;
|
|
MTLPrimitiveType primitiveType;
|
|
|
|
MTLCullMode cullMode;
|
|
GFXWindingMode winding_mode;
|
|
|
|
struct VertexStride {
|
|
int location, stride;
|
|
};
|
|
|
|
std::vector<VertexStride> vertexStrides;
|
|
|
|
int pushConstantSize = 0;
|
|
int pushConstantIndex = 0;
|
|
|
|
bool renderWire = false;
|
|
};
|