/* * Copyright 2021 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "experimental/graphite/src/mtl/MtlResourceProvider.h" #include "experimental/graphite/src/mtl/MtlBuffer.h" #include "experimental/graphite/src/mtl/MtlCommandBuffer.h" #include "experimental/graphite/src/mtl/MtlGpu.h" #include "experimental/graphite/src/mtl/MtlTexture.h" #include "experimental/graphite/src/GraphicsPipelineDesc.h" #include "experimental/graphite/src/mtl/MtlGraphicsPipeline.h" namespace skgpu::mtl { ResourceProvider::ResourceProvider(const skgpu::Gpu* gpu) : skgpu::ResourceProvider(gpu) { } const Gpu* ResourceProvider::mtlGpu() { return static_cast(fGpu); } sk_sp ResourceProvider::createCommandBuffer() { return CommandBuffer::Make(this->mtlGpu()); } sk_sp ResourceProvider::onCreateGraphicsPipeline( const GraphicsPipelineDesc& desc) { return GraphicsPipeline::Make(this->mtlGpu(), desc); } sk_sp ResourceProvider::createTexture(SkISize dimensions, const skgpu::TextureInfo& info) { return Texture::Make(this->mtlGpu(), dimensions, info); } sk_sp ResourceProvider::createBuffer(size_t size, BufferType type, PrioritizeGpuReads prioritizeGpuReads) { return Buffer::Make(this->mtlGpu(), size, type, prioritizeGpuReads); } } // namespace skgpu::mtl