48 id<MTLSamplerState> sampler);
55 struct BufferOffsetPair {
56 id<MTLBuffer> buffer =
nullptr;
59 using BufferMap = std::map<uint64_t, BufferOffsetPair>;
60 using TextureMap = std::map<uint64_t, id<MTLTexture>>;
61 using SamplerMap = std::map<uint64_t, id<MTLSamplerState>>;
63 id<MTLRenderCommandEncoder> encoder_;
64 id<MTLRenderPipelineState> pipeline_ =
nullptr;
65 id<MTLDepthStencilState> depth_stencil_ =
nullptr;
66 std::map<ShaderStage, BufferMap> buffers_;
67 std::map<ShaderStage, TextureMap> textures_;
68 std::map<ShaderStage, SamplerMap> samplers_;
69 std::optional<Viewport> viewport_;
70 std::optional<IRect> scissor_;
static const uint8_t buffer[]