Add Color Mix Example

This commit is contained in:
unkl nik 2023-10-15 20:02:24 +02:00
parent e7668cd4cb
commit 4b88d9867b
2 changed files with 96 additions and 0 deletions

View file

@ -0,0 +1,69 @@
package main
import (
rl "github.com/gen2brain/raylib-go/raylib"
)
func main() {
screenWidth := int32(800)
screenHeight := int32(450)
rl.SetConfigFlags(rl.FlagMsaa4xHint) // Enable Multi Sampling Anti Aliasing 4x (if available)
rl.InitWindow(screenWidth, screenHeight, "raylib [shaders] example - multiple sample2D")
imRed := rl.GenImageColor(int(screenWidth), int(screenHeight), rl.NewColor(uint8(255), uint8(0), uint8(0), uint8(255)))
texRed := rl.LoadTextureFromImage(imRed)
rl.UnloadImage(imRed)
imBlue := rl.GenImageColor(int(screenWidth), int(screenHeight), rl.NewColor(uint8(0), uint8(0), uint8(255), uint8(255)))
texBlue := rl.LoadTextureFromImage(imBlue)
rl.UnloadImage(imBlue)
shader := rl.LoadShader("", "color_mix.fs")
texBlueLoc := rl.GetShaderLocation(shader, "texture1")
dividerLoc := rl.GetShaderLocation(shader, "divider")
dividerValue := []float32{0.5}
rl.SetTargetFPS(60)
for !rl.WindowShouldClose() {
if rl.IsKeyDown(rl.KeyRight) {
dividerValue[0] += 0.01
} else if rl.IsKeyDown(rl.KeyLeft) {
dividerValue[0] -= 0.01
}
if dividerValue[0] < 0 {
dividerValue[0] = 0
} else if dividerValue[0] > 1 {
dividerValue[0] = 1
}
rl.SetShaderValue(shader, dividerLoc, dividerValue, rl.ShaderUniformFloat)
rl.BeginDrawing()
rl.ClearBackground(rl.RayWhite)
rl.BeginShaderMode(shader)
rl.SetShaderValueTexture(shader, texBlueLoc, texBlue)
rl.DrawTexture(texRed, 0, 0, rl.White)
rl.EndShaderMode()
rl.DrawText("USE LEFT/RIGHT ARROW KEYS TO MIX COLORS", 15, 17, 20, rl.Black)
rl.DrawText("USE LEFT/RIGHT ARROW KEYS TO MIX COLORS", 16, 16, 20, rl.White)
rl.EndDrawing()
}
rl.UnloadShader(shader) // Unload shader
rl.UnloadTexture(texRed) // Unload texture
rl.UnloadTexture(texBlue) // Unload texture
rl.CloseWindow()
}