From 95e9bbf99f3110194edb20f166e896f8cadc68d7 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 14 Feb 2022 12:52:30 +0000 Subject: [PATCH] Improve Buffer --- core/sys/darwin/Metal/MetalClasses.odin | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/core/sys/darwin/Metal/MetalClasses.odin b/core/sys/darwin/Metal/MetalClasses.odin index 26f603564..c025778ea 100644 --- a/core/sys/darwin/Metal/MetalClasses.odin +++ b/core/sys/darwin/Metal/MetalClasses.odin @@ -5491,8 +5491,14 @@ Buffer_addDebugMarker :: #force_inline proc(self: ^Buffer, marker: ^NS.String, r msgSend(nil, self, "addDebugMarker:range:", marker, range) } @(objc_type=Buffer, objc_name="contents") -Buffer_contents :: #force_inline proc(self: ^Buffer) -> rawptr { - return msgSend(rawptr, self, "contents") +Buffer_contents :: #force_inline proc(self: ^Buffer) -> []byte { + contents := msgSend([^]byte, self, "contents") + length := Buffer_length(self) + return contents[:length] +} +@(objc_type=Buffer, objc_name="contentsPointer") +Buffer_contentsPointer :: #force_inline proc(self: ^Buffer) -> rawptr { + return msgSend([^]byte, self, "contents") } @(objc_type=Buffer, objc_name="didModifyRange") Buffer_didModifyRange :: #force_inline proc(self: ^Buffer, range: NS.Range) { @@ -5519,6 +5525,11 @@ Buffer_removeAllDebugMarkers :: #force_inline proc(self: ^Buffer) { msgSend(nil, self, "removeAllDebugMarkers") } +@(objc_type=Buffer, objc_name="newTexture") +Buffer_newTexture :: #force_inline proc(self: ^Buffer, descriptor: ^TextureDescriptor, offset: NS.UInteger, bytesPerRow: NS.UInteger) -> ^Texture { + return msgSend(^Texture, self, "newTextureWithDescriptor:offset:bytesPerRow:") +} + //////////////////////////////////////////////////////////////////////////////// /*