Skip to content

Commit

Permalink
Merge pull request #12 from MetalBuilder/bytes_from_binding
Browse files Browse the repository at this point in the history
bytes from binding
  • Loading branch information
gadirom authored Aug 25, 2022
2 parents 09f5210 + 210b703 commit 5b442f9
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ public extension Compute{
let argument = MetalBytesArgument(binding: binding, space: space, type: type, name: name, index: index)
return bytes(binding, argument: argument)
}
func bytes<T>(_ binding: Binding<T>, space: String = "constant", type: String?=nil, name: String, index: Int?=nil)->Compute{
let metalBinding = MetalBinding(binding: binding, metalType: type, metalName: name)
let argument = MetalBytesArgument(binding: metalBinding, space: space, type: type, name: name, index: index)
return bytes(binding, argument: argument)
}
func uniforms(_ uniforms: UniformsContainer, name: String?=nil) -> Compute{
var c = self
c.uniforms.append(uniforms)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,12 +165,26 @@ public extension Render{
let argument = MetalBytesArgument(binding: binding, space: space, type: type, name: name)
return vertexBytes(binding, argument: argument)
}
func vertexBytes<T>(_ binding: Binding<T>, space: String = "constant", type: String?=nil, name: String, index: Int?=nil)->Render{
let metalBinding = MetalBinding(binding: binding, metalType: type, metalName: name)
let argument = MetalBytesArgument(binding: metalBinding, space: space, type: type, name: name)
return vertexBytes(binding, argument: argument)
}
func fragBytes<T>(_ binding: Binding<T>, index: Int)->Render{
var r = self
let bytes = Bytes(binding: binding, index: index)
r.fragBytes.append(bytes)
return r
}
func fragBytes<T>(_ binding: MetalBinding<T>, argument: MetalBytesArgument)->Render{
var r = self
var argument = argument
argument.index = checkFragmentBufferIndex(r: &r, index: argument.index)
r.fragmentArguments.append(.bytes(argument))
let bytes = Bytes(binding: binding.binding, index: argument.index!)
r.fragBytes.append(bytes)
return r
}
func fragBytes<T>(_ binding: Binding<T>, argument: MetalBytesArgument)->Render{
var r = self
var argument = argument
Expand All @@ -180,6 +194,15 @@ public extension Render{
r.fragBytes.append(bytes)
return r
}
func fragBytes<T>(_ binding: MetalBinding<T>, space: String = "constant", type: String?=nil, name: String?=nil, index: Int?=nil)->Render{
let argument = MetalBytesArgument(binding: binding, space: space, type: type, name: name)
return fragBytes(binding, argument: argument)
}
func fragBytes<T>(_ binding: Binding<T>, space: String = "constant", type: String?=nil, name: String, index: Int?=nil)->Render{
let metalBinding = MetalBinding(binding: binding, metalType: type, metalName: name)
let argument = MetalBytesArgument(binding: metalBinding, space: space, type: type, name: name)
return fragBytes(binding, argument: argument)
}
func uniforms(_ uniforms: UniformsContainer, name: String?=nil) -> Render{
var r = self
r.uniforms.append(uniforms)
Expand Down
6 changes: 6 additions & 0 deletions Sources/MetalBuilder/PropertyWrappers/MetalState.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ public struct MetalBinding<T>{
self.metalType = metalType
self.metalName = metalName
}
public init(binding: Binding<T>,
metalType: String?, metalName: String?){
self.binding = binding
self.metalType = metalType
self.metalName = metalName
}
}

public struct BytesDescriptor{
Expand Down

0 comments on commit 5b442f9

Please sign in to comment.