Skip to content

Commit fc4810f

Browse files
authored
Merge pull request #15 from yukiny0811/patch
fix: ShaderCore
2 parents 2978f9e + ad89f78 commit fc4810f

File tree

14 files changed

+42
-49
lines changed

14 files changed

+42
-49
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88

99
Easily create pipelines for Metal Shader.
1010

11+
## Q&A (AI Documentation)
12+
13+
https://chatgpt.com/g/g-67a4a543c1048191b24ee44bd805f64a-easymetalshader-library-q-a
14+
1115
## Usage
1216

1317
### Create Compute Function

Sources/EasyMetalShader/Builder/ShaderStringBuilder.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ import Foundation
99

1010
@resultBuilder
1111
public struct ShaderStringBuilder {
12+
public static func buildBlock() -> String {
13+
""
14+
}
1215
public static func buildBlock(_ component: String) -> String{
1316
component
1417
}

Sources/EasyMetalShader/Extensions/CGPoint+.swift

Lines changed: 0 additions & 15 deletions
This file was deleted.

Sources/EasyMetalShader/Extensions/MTLTexture+.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ extension MTLTexture {
1111
return nil
1212
}
1313
let flipped = ciimage.transformed(by: CGAffineTransform(scaleX: 1, y: -1))
14-
let cgimage = ShaderCore.context.createCGImage(
14+
let cgimage = ShaderCore_EasyMetalShaderLib.context.createCGImage(
1515
flipped,
1616
from: flipped.extent
1717
)

Sources/EasyMetalShader/Models/ArrayBuffer.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class BoolBuffer {
1818
public let count: Int
1919

2020
public init(count: Int) {
21-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<Bool>.stride * count)!
21+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<Bool>.stride * count)!
2222
self.count = count
2323
}
2424

@@ -49,7 +49,7 @@ public class IntBuffer {
4949
public let count: Int
5050

5151
public init(count: Int) {
52-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<Int32>.stride * count)!
52+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<Int32>.stride * count)!
5353
self.count = count
5454
}
5555

@@ -80,7 +80,7 @@ public class Int2Buffer {
8080
public let count: Int
8181

8282
public init(count: Int) {
83-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_int2>.stride * count)!
83+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_int2>.stride * count)!
8484
self.count = count
8585
}
8686

@@ -111,7 +111,7 @@ public class Int3Buffer {
111111
public let count: Int
112112

113113
public init(count: Int) {
114-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_int3>.stride * count)!
114+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_int3>.stride * count)!
115115
self.count = count
116116
}
117117

@@ -142,7 +142,7 @@ public class Int4Buffer {
142142
public let count: Int
143143

144144
public init(count: Int) {
145-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_int4>.stride * count)!
145+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_int4>.stride * count)!
146146
self.count = count
147147
}
148148

@@ -173,7 +173,7 @@ public class FloatBuffer {
173173
public let count: Int
174174

175175
public init(count: Int) {
176-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<Float>.stride * count)!
176+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<Float>.stride * count)!
177177
self.count = count
178178
}
179179

@@ -204,7 +204,7 @@ public class Float2Buffer {
204204
public let count: Int
205205

206206
public init(count: Int) {
207-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_float2>.stride * count)!
207+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_float2>.stride * count)!
208208
self.count = count
209209
}
210210

@@ -235,7 +235,7 @@ public class Float3Buffer {
235235
public let count: Int
236236

237237
public init(count: Int) {
238-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_float3>.stride * count)!
238+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_float3>.stride * count)!
239239
self.count = count
240240
}
241241

@@ -266,7 +266,7 @@ public class Float4Buffer {
266266
public let count: Int
267267

268268
public init(count: Int) {
269-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_float4>.stride * count)!
269+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_float4>.stride * count)!
270270
self.count = count
271271
}
272272

@@ -297,7 +297,7 @@ public class DoubleBuffer {
297297
public let count: Int
298298

299299
public init(count: Int) {
300-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<Double>.stride * count)!
300+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<Double>.stride * count)!
301301
self.count = count
302302
}
303303

@@ -328,7 +328,7 @@ public class Double2Buffer {
328328
public let count: Int
329329

330330
public init(count: Int) {
331-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_double2>.stride * count)!
331+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_double2>.stride * count)!
332332
self.count = count
333333
}
334334

@@ -359,7 +359,7 @@ public class Double3Buffer {
359359
public let count: Int
360360

361361
public init(count: Int) {
362-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_double3>.stride * count)!
362+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_double3>.stride * count)!
363363
self.count = count
364364
}
365365

@@ -390,7 +390,7 @@ public class Double4Buffer {
390390
public let count: Int
391391

392392
public init(count: Int) {
393-
self.buffer = ShaderCore.device.makeBuffer(length: MemoryLayout<simd_double4>.stride * count)!
393+
self.buffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(length: MemoryLayout<simd_double4>.stride * count)!
394394
self.count = count
395395
}
396396

Sources/EasyMetalShader/Models/EMMetalTexture.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class EMMetalTexture: NSObject {
3131
descriptor.usage = [.shaderRead, .shaderWrite]
3232
}
3333
descriptor.resourceOptions = .storageModePrivate
34-
let texture = ShaderCore.device.makeTexture(descriptor: descriptor)!
34+
let texture = ShaderCore_EasyMetalShaderLib.device.makeTexture(descriptor: descriptor)!
3535
texture.label = label
3636
return texture
3737
}
@@ -52,7 +52,7 @@ public class EMMetalTexture: NSObject {
5252
#elseif os(iOS)
5353
descriptor.resourceOptions = .storageModeShared
5454
#endif
55-
let texture = ShaderCore.device.makeTexture(descriptor: descriptor)!
55+
let texture = ShaderCore_EasyMetalShaderLib.device.makeTexture(descriptor: descriptor)!
5656
texture.label = label
5757
return texture
5858
}
@@ -70,7 +70,7 @@ public class EMMetalTexture: NSObject {
7070
descriptor.usage = [.shaderRead, .shaderWrite]
7171
}
7272
descriptor.resourceOptions = .storageModePrivate
73-
let texture = ShaderCore.device.makeTexture(descriptor: descriptor)!
73+
let texture = ShaderCore_EasyMetalShaderLib.device.makeTexture(descriptor: descriptor)!
7474
texture.label = label
7575
return texture
7676
}
@@ -92,7 +92,7 @@ public class EMMetalTexture: NSObject {
9292
#elseif os(iOS)
9393
descriptor.resourceOptions = .storageModeShared
9494
#endif
95-
let texture = ShaderCore.device.makeTexture(descriptor: descriptor)!
95+
let texture = ShaderCore_EasyMetalShaderLib.device.makeTexture(descriptor: descriptor)!
9696
texture.label = label
9797
return texture
9898
}

Sources/EasyMetalShader/Pipelines/EMMetalDispatch.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class EMMetalDispatch {
1313
private let commandBuffer: MTLCommandBuffer
1414

1515
public init() {
16-
commandBuffer = ShaderCore.commandQueue.makeCommandBuffer()!
16+
commandBuffer = ShaderCore_EasyMetalShaderLib.commandQueue.makeCommandBuffer()!
1717
}
1818

1919
public func custom(_ process: @escaping (MTLCommandBuffer) -> ()) {

Sources/EasyMetalShader/Pipelines/EMMetalRenderFunction.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ extension EMMetalRenderFunction {
143143
}
144144
}
145145

146-
let vertexBuffer = ShaderCore.device.makeBuffer(bytes: vertices, length: MemoryLayout<VertexInput>.stride * vertices.count)
146+
let vertexBuffer = ShaderCore_EasyMetalShaderLib.device.makeBuffer(bytes: vertices, length: MemoryLayout<VertexInput>.stride * vertices.count)
147147
encoder.setVertexBuffer(vertexBuffer, offset: 0, index: 0)
148148

149149
encoder.setViewport(

Sources/EasyMetalShader/Utils/ShaderCore.swift renamed to Sources/EasyMetalShader/Utils/ShaderCore_EasyMetalShaderLib.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
// Created by Yuki Kuwashima on 2024/01/04.
66
//
77

8-
public enum ShaderCore {
8+
public enum ShaderCore_EasyMetalShaderLib {
99
public static let device: MTLDevice = MTLCreateSystemDefaultDevice()!
10-
public static let commandQueue: MTLCommandQueue = ShaderCore.device.makeCommandQueue()!
10+
public static let commandQueue: MTLCommandQueue = ShaderCore_EasyMetalShaderLib.device.makeCommandQueue()!
1111
public static let context: CIContext = CIContext(mtlDevice: device)
1212
}

Sources/EasyMetalShader/Views/ShaderMTKView.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class ShaderMTKView: MTKView {
2222

2323
init(renderer: ShaderRenderer) {
2424
self.renderer = renderer
25-
super.init(frame: .zero, device: ShaderCore.device)
25+
super.init(frame: .zero, device: ShaderCore_EasyMetalShaderLib.device)
2626

2727
self.frame = .zero
2828
self.delegate = renderer
@@ -86,7 +86,8 @@ public class ShaderMTKView: MTKView {
8686
location.y = event.window!.contentRect(
8787
forFrameRect: event.window!.frame
8888
).height - location.y
89-
location -= CGPoint(x: viewFrame.minX, y: viewFrame.minY)
89+
location.x -= viewFrame.minX
90+
location.y -= viewFrame.minY
9091
return simd_float2(Float(location.x), Float(location.y))
9192
}
9293
#endif

Sources/EasyMetalShaderMacro/EMComputeShader/ComputeFunctionStrings/InitCompute.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,11 @@ public func setup() {
174174
functionImpl += impl
175175
functionImpl += "}"
176176
177-
let library = try! ShaderCore.device.makeLibrary(
177+
let library = try! ShaderCore_EasyMetalShaderLib.device.makeLibrary(
178178
source: functionImpl,
179179
options: nil
180180
)
181-
self.computePipelineState = try! ShaderCore.device.makeComputePipelineState(
181+
self.computePipelineState = try! ShaderCore_EasyMetalShaderLib.device.makeComputePipelineState(
182182
function: library.makeFunction(
183183
name: tempFunctionName
184184
)!

Sources/EasyMetalShaderMacro/EMComputeShader3D/ComputeFunctionStrings3D/InitCompute3D.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,11 @@ public func setup() {
174174
functionImpl += impl
175175
functionImpl += "}"
176176
177-
let library = try! ShaderCore.device.makeLibrary(
177+
let library = try! ShaderCore_EasyMetalShaderLib.device.makeLibrary(
178178
source: functionImpl,
179179
options: nil
180180
)
181-
self.computePipelineState = try! ShaderCore.device.makeComputePipelineState(
181+
self.computePipelineState = try! ShaderCore_EasyMetalShaderLib.device.makeComputePipelineState(
182182
function: library.makeFunction(
183183
name: tempFunctionName
184184
)!

Sources/EasyMetalShaderMacro/EMRenderShader/RenderFunctionStrings/InitRender.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ public func setup(targetPixelFormat: MTLPixelFormat) {
334334
functionImpl += "}"
335335
336336
337-
let library = try! ShaderCore.device.makeLibrary(
337+
let library = try! ShaderCore_EasyMetalShaderLib.device.makeLibrary(
338338
source: functionImpl,
339339
options: nil
340340
)
@@ -354,7 +354,7 @@ public func setup(targetPixelFormat: MTLPixelFormat) {
354354
descriptor.vertexDescriptor = vertexDesc
355355
descriptor.colorAttachments[0].pixelFormat = targetPixelFormat
356356
descriptor.colorAttachments[0].isBlendingEnabled = true
357-
self.renderPipelineState = try! ShaderCore.device.makeRenderPipelineState(descriptor: descriptor)
357+
self.renderPipelineState = try! ShaderCore_EasyMetalShaderLib.device.makeRenderPipelineState(descriptor: descriptor)
358358
}
359359
"""
360360
}

Sources/EasyMetalShaderTests/MetalPreLibraryTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,21 @@ class MetalPreLibraryTests: XCTestCase {
1212

1313
func testCompileRand() throws {
1414
let source = MetalPreLibrary.include + MetalPreLibrary.rand
15-
try ShaderCore.device.makeLibrary(source: source, options: nil)
15+
try ShaderCore_EasyMetalShaderLib.device.makeLibrary(source: source, options: nil)
1616
}
1717

1818
func testCompileRasterizerData() throws {
1919
let source = MetalPreLibrary.include + MetalPreLibrary.rasterizerData
20-
try ShaderCore.device.makeLibrary(source: source, options: nil)
20+
try ShaderCore_EasyMetalShaderLib.device.makeLibrary(source: source, options: nil)
2121
}
2222

2323
func testCompileVertexInput() throws {
2424
let source = MetalPreLibrary.include + MetalPreLibrary.vertexInput
25-
try ShaderCore.device.makeLibrary(source: source, options: nil)
25+
try ShaderCore_EasyMetalShaderLib.device.makeLibrary(source: source, options: nil)
2626
}
2727

2828
func testCompileAllCombined() throws {
2929
let source = MetalPreLibrary.include + MetalPreLibrary.rand + MetalPreLibrary.rasterizerData + MetalPreLibrary.vertexInput
30-
try ShaderCore.device.makeLibrary(source: source, options: nil)
30+
try ShaderCore_EasyMetalShaderLib.device.makeLibrary(source: source, options: nil)
3131
}
3232
}

0 commit comments

Comments
 (0)