mirror of
https://github.com/GayPizzaSpecifications/voxelotl-engine.git
synced 2025-08-03 13:11:33 +00:00
renderer: internal support for blend modes
This commit is contained in:
23
Sources/Voxelotl/Renderer/BlendMode.swift
Normal file
23
Sources/Voxelotl/Renderer/BlendMode.swift
Normal file
@ -0,0 +1,23 @@
|
||||
public enum BlendMode: Hashable {
|
||||
case none
|
||||
case normal
|
||||
case premultiplied
|
||||
case additive
|
||||
case screen
|
||||
case multiply
|
||||
case subtract
|
||||
}
|
||||
|
||||
internal extension BlendMode {
|
||||
var function: BlendFunc {
|
||||
switch self {
|
||||
case .none: .off
|
||||
case .normal: .on(src: .srcAlpha, dst: .oneMinusSrcAlpha, equation: .add)
|
||||
case .premultiplied: .on(src: .one, dst: .oneMinusSrcAlpha, equation: .add)
|
||||
case .additive: .on(src: .srcAlpha, dst: .one, equation: .add)
|
||||
case .screen: .on(src: .one, dst: .oneMinusSrcColor, equation: .add)
|
||||
case .multiply: .on(src: .dstColor, dst: .one, equation: .add)
|
||||
case .subtract: .on(src: .oneMinusSrcAlpha, dst: .one, equation: .subtract)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user