Skip to content

v3.0.0

Compare
Choose a tag to compare
@yukiny0811 yukiny0811 released this 12 Jan 12:01
· 25 commits to main since this release
f407bca

Macro Update!

v3.0.0

@EMComputeShader
class MyCompute {

    var tex: MTLTexture?
    var intensity: Float = 0
    
    var impl: String {
        "float2 floatGid = float2(gid.x, gid.y);"
        "float2 center = float2(tex.get_width() / 2, tex.get_height() / 2);"
        "float dist = distance(center, floatGid);"
        "float color = intensity / dist;"
        "tex.write(float4(color, color, color, 1), gid);"
    }
    
    var customMetalCode: String { "" }
}

v2.2.1 (previous)

class MyCompute: EMMetalComputeFunction {
    
    @EMArgument("tex") var tex: EMMetalTexture = .init(texture: nil, usage: .read_write)
    @EMArgument("intensity") var intensity: Float = 0
    
    @ShaderStringBuilder
    override var impl: String {
        "float2 floatGid = float2(gid.x, gid.y);"
        "float2 center = float2(tex.get_width() / 2, tex.get_height() / 2);"
        "float dist = distance(center, floatGid);"
        "float color = intensity / dist;"
        "tex.write(float4(color, color, color, 1), gid);"
    }
}