From 650e83573987d004171f250e236b21b243477355 Mon Sep 17 00:00:00 2001 From: Rudy Bousset Date: Wed, 11 Mar 2020 14:57:54 +0100 Subject: is not working --- minilibx_beta/mlx_image.swift | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 minilibx_beta/mlx_image.swift (limited to 'minilibx_beta/mlx_image.swift') diff --git a/minilibx_beta/mlx_image.swift b/minilibx_beta/mlx_image.swift new file mode 100644 index 0000000..7c1fa9b --- /dev/null +++ b/minilibx_beta/mlx_image.swift @@ -0,0 +1,48 @@ + + +import Metal + + +public class MlxImg +{ + public var texture: MTLTexture +/// var texture_buff: MTLBuffer + + public var texture_sizeline: Int + public var texture_data: UnsafeMutablePointer + public var texture_width: Int + public var texture_height: Int + + public var onGPU = 0 + + convenience public init(d device:MTLDevice, w width:Int, h height:Int) + { + self.init(d:device, w:width, h:height, t:0) + } + + public init(d device:MTLDevice, w width:Int, h height:Int, t target:Int) + { + texture_width = width + texture_height = height + texture_sizeline = width * 4 + texture_sizeline = 256 * (texture_sizeline / 256 + (texture_sizeline%256 >= 1 ? 1 : 0) ) + + let textureDesc = MTLTextureDescriptor() + textureDesc.width = texture_width + textureDesc.height = texture_height + textureDesc.usage = .shaderRead + if (target == 1) + { + textureDesc.usage = .renderTarget + textureDesc.storageMode = .private + } + textureDesc.pixelFormat = MTLPixelFormat.bgra8Unorm + let texture_buff = device.makeBuffer(length: texture_sizeline * height)! + texture = texture_buff.makeTexture(descriptor:textureDesc, offset:0, bytesPerRow:texture_sizeline)! + + let tmpptr = texture_buff.contents() + texture_data = tmpptr.assumingMemoryBound(to:UInt32.self) + } + + +} \ No newline at end of file -- cgit v1.2.3