1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2021 Google LLC 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci#ifndef skgpu_MtlTexture_DEFINED 9cb93a386Sopenharmony_ci#define skgpu_MtlTexture_DEFINED 10cb93a386Sopenharmony_ci 11cb93a386Sopenharmony_ci#include "experimental/graphite/src/Texture.h" 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ci#import <Metal/Metal.h> 14cb93a386Sopenharmony_ci 15cb93a386Sopenharmony_cinamespace skgpu::mtl { 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_ciclass Gpu; 18cb93a386Sopenharmony_ci 19cb93a386Sopenharmony_ciclass Texture : public skgpu::Texture { 20cb93a386Sopenharmony_cipublic: 21cb93a386Sopenharmony_ci static sk_sp<Texture> Make(const Gpu* gpu, 22cb93a386Sopenharmony_ci SkISize dimensions, 23cb93a386Sopenharmony_ci const skgpu::TextureInfo&); 24cb93a386Sopenharmony_ci 25cb93a386Sopenharmony_ci ~Texture() override {} 26cb93a386Sopenharmony_ci 27cb93a386Sopenharmony_ci id<MTLTexture> mtlTexture() const { return fTexture.get(); } 28cb93a386Sopenharmony_ci 29cb93a386Sopenharmony_ciprivate: 30cb93a386Sopenharmony_ci Texture(SkISize dimensions, 31cb93a386Sopenharmony_ci const skgpu::TextureInfo& info, 32cb93a386Sopenharmony_ci sk_cfp<id<MTLTexture>> texture); 33cb93a386Sopenharmony_ci 34cb93a386Sopenharmony_ci sk_cfp<id<MTLTexture>> fTexture; 35cb93a386Sopenharmony_ci}; 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci} // namepsace skgpu::mtl 38cb93a386Sopenharmony_ci 39cb93a386Sopenharmony_ci#endif // skgpu_MtlTexture_DEFINED 40