blob: 5aa07ced280f9ea6ac9fc90ad5e53ed6bb912724 [file]
/*
* Copyright 2023 Rive
*/
// This file includes the Metal Objective-C backend's headers in a way that the obfuscator can find
// their symbols without needing to support Objective-C. We currently use castxml, which does not
// support Objective-C.
#include <cstddef>
#define RIVE_OBJC_NOP
template <typename T> struct id
{
id() = default;
id(std::nullptr_t) {}
};
using MTLDevice = void*;
using MTLCommandQueue = void*;
using MTLLibrary = void*;
using MTLTexture = void*;
using MTLBuffer = void*;
using MTLPixelFormat = void*;
using MTLTextureUsage = void*;
#include "rive/pls/metal/pls_render_context_metal.h"
#include "rive/pls/metal/pls_render_target_metal.h"
#include "buffer_ring_metal.h"
namespace rive::pls
{
const char* rive_pls_macosx_metallib;
int rive_pls_macosx_metallib_len;
const char* rive_pls_ios_metallib;
int rive_pls_ios_metallib_len;
void make_memoryless_pls_texture();
void make_pipeline_state();
} // namespace rive::pls