• Dear Cerberus X User!

    As we prepare to transition the forum ownership from Mike to Phil (TripleHead GmbH), we need your explicit consent to transfer your user data in accordance with our amended Terms and Rules in order to be compliant with data protection laws.

    Important: If you accept the amended Terms and Rules, you agree to the transfer of your user data to the future forum owner!

    Please read the new Terms and Rules below, check the box to agree, and click "Accept" to continue enjoying your Cerberus X Forum experience. The deadline for consent is April 5, 2024.

    Do not accept the amended Terms and Rules if you do not wish your personal data to be transferred to the future forum owner!

    Accepting ensures:

    - Continued access to your account with a short break for the actual transfer.

    - Retention of your data under the same terms.

    Without consent:

    - You don't have further access to your forum user account.

    - Your account and personal data will be deleted after April 5, 2024.

    - Public posts remain, but usernames indicating real identity will be anonymized. If you disagree with a fictitious name you have the option to contact us so we can find a name that is acceptable to you.

    We hope to keep you in our community and see you on the forum soon!

    All the best

    Your Cerberus X Team

Snippet The Book of Shaders Port (mojo2)

SimonVD

New member
Tutorial Author
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...

The Book of Shaders code​
My Port​
The Book of Shaders: uniforms 2020-06-01 16-01-16.png
CerberusGame 2020-06-01 16-04-28.png
Just save the shader code in the data folder of your project and name it "gradient.glsl"


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:
Back
Top Bottom