mt_internal.h

cross platform rendering playground

src/backend/metal/mt_internal.h

460 B
#pragma once

namespace MTL {
class Device;
} // namespace MTL

namespace CA {
class MetalLayer;
class MetalDrawable;
} // namespace CA

namespace mt {

CA::MetalLayer *mt_attach_metal_layer(void *glfw_window, MTL::Device *device);

// +1. caller frees.
void mt_set_current_drawable(CA::MetalDrawable *drawable);
// borrowed.
CA::MetalDrawable *mt_current_drawable();
// drop current.
void mt_clear_current_drawable();

void mt_wait_idle();

} // namespace mt