diff options
author | Rudy Bousset <rbousset@z2r4p3.le-101.fr> | 2020-03-11 14:57:54 +0100 |
---|---|---|
committer | Rudy Bousset <rbousset@z2r4p3.le-101.fr> | 2020-03-11 14:57:54 +0100 |
commit | 650e83573987d004171f250e236b21b243477355 (patch) | |
tree | 50b4651c585574a802dd609b267a9ea07b1e78c0 /minilibx_beta/mlx_image.swift | |
parent | why macos (diff) | |
download | 42-cub3d-650e83573987d004171f250e236b21b243477355.tar.gz 42-cub3d-650e83573987d004171f250e236b21b243477355.tar.bz2 42-cub3d-650e83573987d004171f250e236b21b243477355.tar.xz 42-cub3d-650e83573987d004171f250e236b21b243477355.tar.zst 42-cub3d-650e83573987d004171f250e236b21b243477355.zip |
is not working
Diffstat (limited to 'minilibx_beta/mlx_image.swift')
-rw-r--r-- | minilibx_beta/mlx_image.swift | 48 |
1 files changed, 48 insertions, 0 deletions
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<UInt32> + 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 |