ShaderData(Shaders.externalId)
.addUniformData(CustomData(0.75, RGB(1.0, 1.0, 0.0)))
final case class CustomData(ALPHA: Float, BORDER_COLOR: RGB) derives ToUniformBlock
The conversion process supports all the same types we used to support, but now we don't need any specialised syntax - WHICH MEANS - all the old imports for shaders have gone - WHICH MEANS - no more term/import collisions with Ultraviolet!! 🎉
Additional clean up work done in this PR:
Deprecates BlendShaderData
Removes all shader primitives from the default import
Removes import indigo.shaders.* - not needed
Moves ShaderData to live with Shader classes, rather than Material classes
ShaderData no longer unnecessarily extends Material
The main goal of this PR is to drastically improve how easy it is to send data to shaders. We've gone from having to know about all of this:
...to a very familiar this:
The conversion process supports all the same types we used to support, but now we don't need any specialised syntax - WHICH MEANS - all the old imports for shaders have gone - WHICH MEANS - no more term/import collisions with Ultraviolet!! 🎉
Additional clean up work done in this PR:
BlendShaderData
import indigo.shaders.*
- not needed