aboutsummaryrefslogtreecommitdiff
path: root/vendor/darwin/Metal/MetalProcedures.odin
blob: 74e7903e93294a1651fd7f6b34e87aea43811bfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package objc_Metal

import NS "core:sys/darwin/Foundation"
import "core:c"

@(require)
foreign import "system:Metal.framework"

@(default_calling_convention="c", link_prefix="MTL")
foreign Metal {
	CopyAllDevices             :: proc() -> ^NS.Array ---
	CopyAllDevicesWithObserver :: proc(observer: ^id, handler: DeviceNotificationHandler) -> ^NS.Array ---
	CreateSystemDefaultDevice  :: proc() -> ^Device ---
	RemoveDeviceObserver       :: proc(observer: id) ---


	IOCompressionContextDefaultChunkSize :: proc() -> c.size_t ---
	IOCreateCompressionContext           :: proc(path: cstring, type: IOCompressionMethod, chuckSize: c.size_t) -> rawptr ---
	IOCompressionContextAppendData       :: proc(ctx: rawptr, data: rawptr, size: c.size_t) ---
	IOFlushAndDestroyCompressionContext  :: proc(ctx: rawptr) -> IOCompressionStatus ---
}


new :: proc($T: typeid) -> ^T where intrinsics.type_is_subtype_of(T, NS.Object) {
	return T.alloc()->init()
}