- Joined
- Dec 22, 2019
- Messages
- 39
I try to port The Book of Shaders examples to Cerberus X using the Mojo 2, Shader Effect example code as starting point. It's going well so far...
This is the gradient example...
Just save the shader code in the data folder of your project and name it "gradient.glsl"
This is the gradient example...
The Book of Shaders code | My Port |
Code:
void shader(){
// convert clip position to valid texcoords
vec2 texcoords=( b3d_ClipPosition.st / b3d_ClipPosition.w )*0.5+0.5;
// I have to invert the y value to get the same result with The Book of Shaders
b3d_FragColor = vec4( texcoords.x, 1.0-texcoords.y, 0.0, 1.0);
}
Code:
Strict
Import mojo2
Class MBShader Extends Shader
Method New()
Build(LoadString("gradient.glsl"))
End
Method OnInitMaterial:Void( myMaterial:Material )
End
End
Class MyApp Extends App
Field shaderMaterial:Material = New Material(New MBShader())
Field myCanvas:Canvas
Method OnCreate:Int()
myCanvas = New Canvas()
Return 0
End
Method OnRender:Int()
myCanvas.DrawRect(0, 0, DeviceWidth(), DeviceHeight(), shaderMaterial)
myCanvas.DrawText(Millisecs()/10000.0, 0,0)
myCanvas.Flush()
Return 0
End
End
Function Main:Int()
New MyApp()
Return 0
End
Last edited: