blob: da8f8aaabf1ca589a64b25772d9c421b3e225572 [file] [log] [blame]
/*
* Copyright 2021 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef skgpu_graphite_MtlGraphiteTypesPriv_DEFINED
#define skgpu_graphite_MtlGraphiteTypesPriv_DEFINED
#include "include/core/SkString.h"
#include "include/ports/SkCFObject.h"
class SkStream;
class SkWStream;
///////////////////////////////////////////////////////////////////////////////
#include <TargetConditionals.h>
// We're using the MSL version as shorthand for the Metal SDK version here
#if defined(SK_BUILD_FOR_MAC)
#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 130000
#define SKGPU_GRAPHITE_METAL_SDK_VERSION 300
#elif __MAC_OS_X_VERSION_MAX_ALLOWED >= 120000
#define SKGPU_GRAPHITE_METAL_SDK_VERSION 240
#elif __MAC_OS_X_VERSION_MAX_ALLOWED >= 110000
#define SKGPU_GRAPHITE_METAL_SDK_VERSION 230
#else
#error Must use at least 11.00 SDK to build Metal backend for MacOS
#endif
#else
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 160000 || __TV_OS_VERSION_MAX_ALLOWED >= 160000
#define SKGPU_GRAPHITE_METAL_SDK_VERSION 300
#elif __IPHONE_OS_VERSION_MAX_ALLOWED >= 150000 || __TV_OS_VERSION_MAX_ALLOWED >= 150000
#define SKGPU_GRAPHITE_METAL_SDK_VERSION 240
#elif __IPHONE_OS_VERSION_MAX_ALLOWED >= 140000 || __TV_OS_VERSION_MAX_ALLOWED >= 140000
#define SKGPU_GRAPHITE_METAL_SDK_VERSION 230
#else
#error Must use at least 14.00 SDK to build Metal backend for iOS
#endif
#endif
#import <Metal/Metal.h>
namespace skgpu {
class ShaderErrorHandler;
}
namespace skgpu::graphite {
class MtlSharedContext;
enum class TextureFormat : uint8_t;
sk_cfp<id<MTLLibrary>> MtlCompileShaderLibrary(const MtlSharedContext* sharedContext,
std::string_view label,
std::string_view msl,
ShaderErrorHandler* errorHandler);
TextureFormat MTLPixelFormatToTextureFormat(MTLPixelFormat);
MTLPixelFormat TextureFormatToMTLPixelFormat(TextureFormat);
} // namespace skgpu::graphite
#endif // skgpu_graphite_MtlGraphiteTypesPriv_DEFINED