1/* 2 * Copyright 2021 Google LLC 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8#include "experimental/graphite/src/mtl/MtlResourceProvider.h" 9 10#include "experimental/graphite/src/mtl/MtlBuffer.h" 11#include "experimental/graphite/src/mtl/MtlCommandBuffer.h" 12#include "experimental/graphite/src/mtl/MtlGpu.h" 13#include "experimental/graphite/src/mtl/MtlTexture.h" 14 15#include "experimental/graphite/src/GraphicsPipelineDesc.h" 16#include "experimental/graphite/src/mtl/MtlGraphicsPipeline.h" 17 18namespace skgpu::mtl { 19 20ResourceProvider::ResourceProvider(const skgpu::Gpu* gpu) 21 : skgpu::ResourceProvider(gpu) { 22} 23 24const Gpu* ResourceProvider::mtlGpu() { 25 return static_cast<const Gpu*>(fGpu); 26} 27 28sk_sp<skgpu::CommandBuffer> ResourceProvider::createCommandBuffer() { 29 return CommandBuffer::Make(this->mtlGpu()); 30} 31 32sk_sp<skgpu::GraphicsPipeline> ResourceProvider::onCreateGraphicsPipeline( 33 const GraphicsPipelineDesc& desc) { 34 return GraphicsPipeline::Make(this->mtlGpu(), desc); 35} 36 37sk_sp<skgpu::Texture> ResourceProvider::createTexture(SkISize dimensions, 38 const skgpu::TextureInfo& info) { 39 return Texture::Make(this->mtlGpu(), dimensions, info); 40} 41 42sk_sp<skgpu::Buffer> ResourceProvider::createBuffer(size_t size, 43 BufferType type, 44 PrioritizeGpuReads prioritizeGpuReads) { 45 return Buffer::Make(this->mtlGpu(), size, type, prioritizeGpuReads); 46} 47 48} // namespace skgpu::mtl 49