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:
41
Sources/Voxelotl/Renderer/BlendFunc.swift
Normal file
41
Sources/Voxelotl/Renderer/BlendFunc.swift
Normal file
@ -0,0 +1,41 @@
|
||||
internal enum BlendFunc: Hashable {
|
||||
case off
|
||||
case on(src: BlendFuncSourceFactor = .one, dst: BlendFuncDestinationFactor = .zero, equation: BlendFuncEquation = .add)
|
||||
case separate(
|
||||
srcColor: BlendFuncSourceFactor, srcAlpha: BlendFuncSourceFactor,
|
||||
dstColor: BlendFuncDestinationFactor, dstAlpha: BlendFuncDestinationFactor,
|
||||
equColor: BlendFuncEquation, equAlpha: BlendFuncEquation)
|
||||
}
|
||||
|
||||
enum BlendFuncSourceFactor: Hashable {
|
||||
case zero, one
|
||||
case srcColor, oneMinusSrcColor
|
||||
case dstColor, oneMinusDstColor
|
||||
case srcAlpha, oneMinusSrcAlpha
|
||||
case dstAlpha, oneMinusDstAlpha
|
||||
/*
|
||||
case constantColor, oneMinusConstantColor
|
||||
case constantAlpha, oneMinusConstantAlpha
|
||||
*/
|
||||
case srcAlphaSaturate
|
||||
case src1Color, oneMinusSrc1Color
|
||||
case src1Alpha, oneMinusSrc1Alpha
|
||||
}
|
||||
|
||||
enum BlendFuncDestinationFactor: Hashable {
|
||||
case zero, one
|
||||
case srcColor, oneMinusSrcColor
|
||||
case dstColor, oneMinusDstColor
|
||||
case srcAlpha, oneMinusSrcAlpha
|
||||
case dstAlpha, oneMinusDstAlpha
|
||||
/*
|
||||
case constantColor, oneMinusConstantColor
|
||||
case constantAlpha, oneMinusConstantAlpha
|
||||
*/
|
||||
}
|
||||
|
||||
enum BlendFuncEquation: Hashable {
|
||||
case add
|
||||
case subtract, reverseSubtract
|
||||
case min, max
|
||||
}
|
Reference in New Issue
Block a user