Update C sources, add new functions

This commit is contained in:
Milan Nikolic 2018-05-06 09:34:11 +02:00
parent e6a1abb290
commit a6d36a3699
98 changed files with 7964 additions and 2985 deletions

0
examples/android/example/bootstrap.sh Executable file → Normal file
View file

View file

@ -19,13 +19,13 @@ func main() {
buildings := make([]raylib.Rectangle, maxBuildings)
buildColors := make([]raylib.Color, maxBuildings)
spacing := int32(0)
spacing := float32(0)
for i := 0; i < maxBuildings; i++ {
r := raylib.Rectangle{}
r.Width = raylib.GetRandomValue(50, 200)
r.Height = raylib.GetRandomValue(100, 800)
r.Y = screenHeight - 130 - r.Height
r.Width = float32(raylib.GetRandomValue(50, 200))
r.Height = float32(raylib.GetRandomValue(100, 800))
r.Y = float32(screenHeight) - 130 - r.Height
r.X = -6000 + spacing
spacing += r.Width
@ -89,7 +89,7 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin2dMode(camera)
raylib.BeginMode2D(camera)
raylib.DrawRectangle(-6000, 320, 13000, 8000, raylib.DarkGray)
@ -102,7 +102,7 @@ func main() {
raylib.DrawRectangle(int32(camera.Target.X), -500, 1, screenHeight*4, raylib.Green)
raylib.DrawRectangle(-500, int32(camera.Target.Y), screenWidth*4, 1, raylib.Green)
raylib.End2dMode()
raylib.EndMode2D()
raylib.DrawText("SCREEN AREA", 640, 10, 20, raylib.Red)

View file

@ -11,11 +11,12 @@ const (
func main() {
raylib.InitWindow(800, 450, "raylib [core] example - 3d camera first person")
camera := raylib.Camera{}
camera := raylib.Camera3D{}
camera.Position = raylib.NewVector3(4.0, 2.0, 4.0)
camera.Target = raylib.NewVector3(0.0, 1.8, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 60.0
camera.Type = raylib.CameraPerspective
// Generates some random columns
heights := make([]float32, maxColumns)
@ -39,7 +40,7 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawPlane(raylib.NewVector3(0.0, 0.0, 0.0), raylib.NewVector2(32.0, 32.0), raylib.LightGray) // Draw ground
raylib.DrawCube(raylib.NewVector3(-16.0, 2.5, 0.0), 1.0, 5.0, 32.0, raylib.Blue) // Draw a blue wall
@ -52,7 +53,7 @@ func main() {
raylib.DrawCubeWires(positions[i], 2.0, heights[i], 2.0, raylib.Maroon)
}
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawRectangle(10, 10, 220, 70, raylib.Fade(raylib.SkyBlue, 0.5))
raylib.DrawRectangleLines(10, 10, 220, 70, raylib.Blue)

View file

@ -7,11 +7,12 @@ import (
func main() {
raylib.InitWindow(800, 450, "raylib [core] example - 3d camera free")
camera := raylib.Camera{}
camera := raylib.Camera3D{}
camera.Position = raylib.NewVector3(10.0, 10.0, 10.0)
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
cubePosition := raylib.NewVector3(0.0, 0.0, 0.0)
@ -30,14 +31,14 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawCube(cubePosition, 2.0, 2.0, 2.0, raylib.Red)
raylib.DrawCubeWires(cubePosition, 2.0, 2.0, 2.0, raylib.Maroon)
raylib.DrawGrid(10, 1.0)
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawRectangle(10, 10, 320, 133, raylib.Fade(raylib.SkyBlue, 0.5))
raylib.DrawRectangleLines(10, 10, 320, 133, raylib.Blue)

View file

@ -7,11 +7,12 @@ import (
func main() {
raylib.InitWindow(800, 450, "raylib [core] example - 3d mode")
camera := raylib.Camera{}
camera := raylib.Camera3D{}
camera.Position = raylib.NewVector3(0.0, 10.0, 10.0)
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
cubePosition := raylib.NewVector3(0.0, 0.0, 0.0)
@ -22,14 +23,14 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawCube(cubePosition, 2.0, 2.0, 2.0, raylib.Red)
raylib.DrawCubeWires(cubePosition, 2.0, 2.0, 2.0, raylib.Maroon)
raylib.DrawGrid(10, 1.0)
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawText("Welcome to the third dimension!", 10, 40, 20, raylib.DarkGray)

View file

@ -10,11 +10,12 @@ func main() {
raylib.InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d picking")
camera := raylib.Camera{}
camera := raylib.Camera3D{}
camera.Position = raylib.NewVector3(10.0, 10.0, 10.0)
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
cubePosition := raylib.NewVector3(0.0, 1.0, 0.0)
cubeSize := raylib.NewVector3(2.0, 2.0, 2.0)
@ -44,7 +45,7 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
if collision {
raylib.DrawCube(cubePosition, cubeSize.X, cubeSize.Y, cubeSize.Z, raylib.Red)
@ -60,7 +61,7 @@ func main() {
raylib.DrawGrid(10, 1.0)
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawText("Try selecting the box with mouse!", 240, 10, 20, raylib.DarkGray)

View file

@ -18,8 +18,8 @@ func main() {
// Fills colorsRecs data (for every rectangle)
for i := 0; i < 21; i++ {
r := raylib.Rectangle{}
r.X = int32(20 + 100*(i%7) + 10*(i%7))
r.Y = int32(60 + 100*(i/7) + 10*(i/7))
r.X = float32(20 + 100*(i%7) + 10*(i%7))
r.Y = float32(60 + 100*(i/7) + 10*(i/7))
r.Width = 100
r.Height = 100
@ -56,10 +56,10 @@ func main() {
// Draw four rectangles around selected rectangle
if selected[i] {
raylib.DrawRectangle(colorsRecs[i].X, colorsRecs[i].Y, 100, 10, raylib.RayWhite) // Square top rectangle
raylib.DrawRectangle(colorsRecs[i].X, colorsRecs[i].Y, 10, 100, raylib.RayWhite) // Square left rectangle
raylib.DrawRectangle(colorsRecs[i].X+90, colorsRecs[i].Y, 10, 100, raylib.RayWhite) // Square right rectangle
raylib.DrawRectangle(colorsRecs[i].X, colorsRecs[i].Y+90, 100, 10, raylib.RayWhite) // Square bottom rectangle
raylib.DrawRectangle(int32(colorsRecs[i].X), int32(colorsRecs[i].Y), 100, 10, raylib.RayWhite) // Square top rectangle
raylib.DrawRectangle(int32(colorsRecs[i].X), int32(colorsRecs[i].Y), 10, 100, raylib.RayWhite) // Square left rectangle
raylib.DrawRectangle(int32(colorsRecs[i].X+90), int32(colorsRecs[i].Y), 10, 100, raylib.RayWhite) // Square right rectangle
raylib.DrawRectangle(int32(colorsRecs[i].X), int32(colorsRecs[i].Y)+90, 100, 10, raylib.RayWhite) // Square bottom rectangle
}
}

View file

@ -15,7 +15,7 @@ func main() {
raylib.InitWindow(screenWidth, screenHeight, "raylib [core] example - gestures detection")
touchPosition := raylib.NewVector2(0, 0)
touchArea := raylib.NewRectangle(220, 10, screenWidth-230, screenHeight-20)
touchArea := raylib.NewRectangle(220, 10, float32(screenWidth)-230, float32(screenHeight)-20)
gestureStrings := make([]string, 0)

View file

@ -36,14 +36,14 @@ func main() {
raylib.BeginVrDrawing()
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawCube(cubePosition, 2.0, 2.0, 2.0, raylib.Red)
raylib.DrawCubeWires(cubePosition, 2.0, 2.0, 2.0, raylib.Maroon)
raylib.DrawGrid(40, 1.0)
raylib.End3dMode()
raylib.EndMode3D()
raylib.EndVrDrawing()

View file

@ -33,14 +33,14 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawCube(cubePosition, 2.0, 2.0, 2.0, raylib.Red)
raylib.DrawCubeWires(cubePosition, 2.0, 2.0, 2.0, raylib.Maroon)
raylib.DrawGrid(10, 1.0)
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawText("Enemy: 100 / 100", int32(cubeScreenPosition.X)-raylib.MeasureText("Enemy: 100 / 100", 20)/2, int32(cubeScreenPosition.Y), 20, raylib.Black)
raylib.DrawText("Text is always on top of the cube", (screenWidth-raylib.MeasureText("Text is always on top of the cube", 20))/2, 25, 20, raylib.Gray)

View file

@ -15,6 +15,7 @@ func main() {
camera.Target = raylib.NewVector3(0.0, 2.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
bill := raylib.LoadTexture("billboard.png") // Our texture billboard
billPosition := raylib.NewVector3(0.0, 2.0, 0.0) // Position where draw billboard
@ -30,13 +31,13 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawBillboard(camera, bill, billPosition, 2.0, raylib.White)
raylib.DrawGrid(10, 1.0) // Draw a grid
raylib.End3dMode()
raylib.EndMode3D()
raylib.EndDrawing()
}

View file

@ -15,6 +15,7 @@ func main() {
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
playerPosition := raylib.NewVector3(0.0, 1.0, 2.0)
playerSize := raylib.NewVector3(1.0, 2.0, 1.0)
@ -81,7 +82,7 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
// Draw enemy-box
raylib.DrawCube(enemyBoxPos, enemyBoxSize.X, enemyBoxSize.Y, enemyBoxSize.Z, raylib.Gray)
@ -96,7 +97,7 @@ func main() {
raylib.DrawGrid(10, 1.0) // Draw a grid
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawText("Move player with cursors to collide", 220, 40, 20, raylib.Gray)

View file

@ -15,6 +15,7 @@ func main() {
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
image := raylib.LoadImage("cubicmap.png") // Load cubicmap image (RAM)
cubicmap := raylib.LoadTextureFromImage(image) // Convert image to texture to display (VRAM)
@ -45,11 +46,11 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawModel(model, mapPosition, 1.0, raylib.White)
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawTextureEx(cubicmap, raylib.NewVector2(float32(screenWidth-cubicmap.Width*4-20), 20), 0.0, 4.0, raylib.White)
raylib.DrawRectangleLines(screenWidth-cubicmap.Width*4-20, 20, cubicmap.Width*4, cubicmap.Height*4, raylib.Green)

View file

@ -23,7 +23,7 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawCube(raylib.NewVector3(-4.0, 0.0, 2.0), 2.0, 5.0, 2.0, raylib.Red)
raylib.DrawCubeWires(raylib.NewVector3(-4.0, 0.0, 2.0), 2.0, 5.0, 2.0, raylib.Gold)
@ -41,7 +41,7 @@ func main() {
raylib.DrawGrid(10, 1.0) // Draw a grid
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawFPS(10, 10)

View file

@ -42,13 +42,13 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawModel(model, mapPosition, 1.0, raylib.Red)
raylib.DrawGrid(20, 1.0)
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawTexture(texture, screenWidth-texture.Width-20, 20, raylib.White)
raylib.DrawRectangleLines(screenWidth-texture.Width-20, 20, texture.Width, texture.Height, raylib.Green)

View file

@ -30,7 +30,7 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawModel(dwarf, position, 2.0, raylib.White) // Draw 3d model with texture
@ -38,7 +38,7 @@ func main() {
raylib.DrawGizmo(position) // Draw gizmo
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawText("(c) Dwarf 3D model by David Moreno", screenWidth-200, screenHeight-20, 10, raylib.Gray)

0
examples/rpi/basic_window/bootstrap.sh Executable file → Normal file
View file

View file

@ -23,4 +23,4 @@ void main()
// Calculate final vertex position
gl_Position = mvp*vec4(vertexPosition, 1.0);
}
}

View file

@ -13,8 +13,9 @@ out vec4 finalColor;
// NOTE: Add here your custom variables
const float renderWidth = 800.0; // HARDCODED for example!
const float renderHeight = 480.0; // Use uniforms instead...
// NOTE: Render size values should be passed from code
const float renderWidth = 800;
const float renderHeight = 450;
float radius = 250.0;
float angle = 0.8;

View file

@ -62,13 +62,13 @@ func main() {
raylib.BeginTextureMode(target) // Enable drawing to texture
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawModel(dwarf, position, 2.0, raylib.White) // Draw 3d model with texture
raylib.DrawGrid(10, 1.0) // Draw a grid
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawText("TEXT DRAWN IN RENDER TEXTURE", 200, 10, 30, raylib.Red)
@ -77,7 +77,7 @@ func main() {
raylib.BeginShaderMode(shader)
// NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom)
raylib.DrawTextureRec(target.Texture, raylib.NewRectangle(0, 0, target.Texture.Width, -target.Texture.Height), raylib.NewVector2(0, 0), raylib.White)
raylib.DrawTextureRec(target.Texture, raylib.NewRectangle(0, 0, float32(target.Texture.Width), float32(-target.Texture.Height)), raylib.NewVector2(0, 0), raylib.White)
raylib.EndShaderMode()

View file

@ -23,4 +23,4 @@ void main()
// Calculate final vertex position
gl_Position = mvp*vec4(vertexPosition, 1.0);
}
}

View file

@ -40,13 +40,13 @@ func main() {
raylib.ClearBackground(raylib.RayWhite)
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawModel(dwarf, position, 2.0, raylib.White) // Draw 3d model with texture
raylib.DrawGrid(10, 1.0) // Draw a grid
raylib.End3dMode()
raylib.EndMode3D()
raylib.DrawText("(c) Dwarf 3D model by David Moreno", screenWidth-200, screenHeight-20, 10, raylib.Gray)

View file

@ -102,13 +102,13 @@ func main() {
raylib.BeginTextureMode(target) // Enable drawing to texture
raylib.Begin3dMode(camera)
raylib.BeginMode3D(camera)
raylib.DrawModel(dwarf, position, 2.0, raylib.White) // Draw 3d model with texture
raylib.DrawGrid(10, 1.0) // Draw a grid
raylib.End3dMode()
raylib.EndMode3D()
raylib.EndTextureMode() // End drawing to texture (now we have a texture available for next passes)
@ -116,7 +116,7 @@ func main() {
raylib.BeginShaderMode(shaders[currentShader])
// NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom)
raylib.DrawTextureRec(target.Texture, raylib.NewRectangle(0, 0, target.Texture.Width, -target.Texture.Height), raylib.NewVector2(0, 0), raylib.White)
raylib.DrawTextureRec(target.Texture, raylib.NewRectangle(0, 0, float32(target.Texture.Width), float32(-target.Texture.Height)), raylib.NewVector2(0, 0), raylib.White)
raylib.EndShaderMode()

View file

@ -23,4 +23,4 @@ void main()
// Calculate final vertex position
gl_Position = mvp*vec4(vertexPosition, 1.0);
}
}

View file

@ -14,8 +14,8 @@ func main() {
msgTtf := "THIS SPRITE FONT has been GENERATED from a TTF"
// NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required)
fontBm := raylib.LoadSpriteFont("fonts/bmfont.fnt") // BMFont (AngelCode)
fontTtf := raylib.LoadSpriteFont("fonts/pixantiqua.ttf") // TTF font
fontBm := raylib.LoadFont("fonts/bmfont.fnt") // BMFont (AngelCode)
fontTtf := raylib.LoadFont("fonts/pixantiqua.ttf") // TTF font
fontPosition := raylib.Vector2{}
@ -35,8 +35,8 @@ func main() {
raylib.EndDrawing()
}
raylib.UnloadSpriteFont(fontBm) // AngelCode SpriteFont unloading
raylib.UnloadSpriteFont(fontTtf) // TTF SpriteFont unloading
raylib.UnloadFont(fontBm) // AngelCode Font unloading
raylib.UnloadFont(fontTtf) // TTF Font unloading
raylib.CloseWindow()
}

View file

@ -17,7 +17,7 @@ func main() {
msg := "ASCII extended characters:\n¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆ\nÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæ\nçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
// NOTE: Loaded font has an unordered list of characters (chars in the range 32..255)
font := raylib.LoadSpriteFont("fonts/pixantiqua.fnt") // BMFont (AngelCode)
font := raylib.LoadFont("fonts/pixantiqua.fnt") // BMFont (AngelCode)
raylib.SetTargetFPS(60)
@ -35,7 +35,7 @@ func main() {
raylib.EndDrawing()
}
raylib.UnloadSpriteFont(font) // AngelCode SpriteFont unloading
raylib.UnloadFont(font) // AngelCode Font unloading
raylib.CloseWindow()
}

View file

@ -12,15 +12,15 @@ func main() {
raylib.InitWindow(screenWidth, screenHeight, "raylib [text] example - raylib fonts")
fonts := make([]raylib.SpriteFont, maxFonts)
fonts[0] = raylib.LoadSpriteFont("fonts/alagard.png")
fonts[1] = raylib.LoadSpriteFont("fonts/pixelplay.png")
fonts[2] = raylib.LoadSpriteFont("fonts/mecha.png")
fonts[3] = raylib.LoadSpriteFont("fonts/setback.png")
fonts[4] = raylib.LoadSpriteFont("fonts/romulus.png")
fonts[5] = raylib.LoadSpriteFont("fonts/pixantiqua.png")
fonts[6] = raylib.LoadSpriteFont("fonts/alpha_beta.png")
fonts[7] = raylib.LoadSpriteFont("fonts/jupiter_crash.png")
fonts := make([]raylib.Font, maxFonts)
fonts[0] = raylib.LoadFont("fonts/alagard.png")
fonts[1] = raylib.LoadFont("fonts/pixelplay.png")
fonts[2] = raylib.LoadFont("fonts/mecha.png")
fonts[3] = raylib.LoadFont("fonts/setback.png")
fonts[4] = raylib.LoadFont("fonts/romulus.png")
fonts[5] = raylib.LoadFont("fonts/pixantiqua.png")
fonts[6] = raylib.LoadFont("fonts/alpha_beta.png")
fonts[7] = raylib.LoadFont("fonts/jupiter_crash.png")
messages := []string{
"ALAGARD FONT designed by Hewett Tsoi",
@ -33,7 +33,7 @@ func main() {
"JUPITER_CRASH FONT designed by Brian Kent (AEnigma)",
}
spacings := []int32{2, 4, 8, 4, 3, 4, 4, 1}
spacings := []float32{2, 4, 8, 4, 3, 4, 4, 1}
positions := make([]raylib.Vector2, maxFonts)
var i int32
@ -67,7 +67,7 @@ func main() {
}
for i = 0; i < maxFonts; i++ {
raylib.UnloadSpriteFont(fonts[i])
raylib.UnloadFont(fonts[i])
}
raylib.CloseWindow()

View file

@ -15,9 +15,9 @@ func main() {
msg3 := "...and a THIRD one! GREAT! :D"
// NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required)
font1 := raylib.LoadSpriteFont("fonts/custom_mecha.png") // SpriteFont loading
font2 := raylib.LoadSpriteFont("fonts/custom_alagard.png") // SpriteFont loading
font3 := raylib.LoadSpriteFont("fonts/custom_jupiter_crash.png") // SpriteFont loading
font1 := raylib.LoadFont("fonts/custom_mecha.png") // Font loading
font2 := raylib.LoadFont("fonts/custom_alagard.png") // Font loading
font3 := raylib.LoadFont("fonts/custom_jupiter_crash.png") // Font loading
var fontPosition1, fontPosition2, fontPosition3 raylib.Vector2
@ -44,9 +44,9 @@ func main() {
raylib.EndDrawing()
}
raylib.UnloadSpriteFont(font1) // SpriteFont unloading
raylib.UnloadSpriteFont(font2) // SpriteFont unloading
raylib.UnloadSpriteFont(font3) // SpriteFont unloading
raylib.UnloadFont(font1) // Font unloading
raylib.UnloadFont(font2) // Font unloading
raylib.UnloadFont(font3) // Font unloading
raylib.CloseWindow()
}

View file

@ -12,14 +12,14 @@ func main() {
raylib.InitWindow(screenWidth, screenHeight, "raylib [text] example - ttf loading")
msg := "TTF SpriteFont"
msg := "TTF Font"
// NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required)
fontChars := int32(0)
// TTF SpriteFont loading with custom generation parameters
font := raylib.LoadSpriteFontEx("fonts/KAISG.ttf", 96, 0, &fontChars)
// TTF Font loading with custom generation parameters
font := raylib.LoadFontEx("fonts/KAISG.ttf", 96, 0, &fontChars)
// Generate mipmap levels to use trilinear filtering
// NOTE: On 2D drawing it won't be noticeable, it looks like FILTER_BILINEAR
@ -68,8 +68,8 @@ func main() {
droppedFiles = raylib.GetDroppedFiles(&count)
if count == 1 { // Only support one ttf file dropped
raylib.UnloadSpriteFont(font)
font = raylib.LoadSpriteFontEx(droppedFiles[0], fontSize, 0, &fontChars)
raylib.UnloadFont(font)
font = raylib.LoadFontEx(droppedFiles[0], fontSize, 0, &fontChars)
raylib.ClearDroppedFiles()
}
}
@ -104,7 +104,7 @@ func main() {
raylib.EndDrawing()
}
raylib.UnloadSpriteFont(font) // SpriteFont unloading
raylib.UnloadFont(font) // Font unloading
raylib.ClearDroppedFiles() // Clear internal buffers

View file

@ -19,8 +19,8 @@ func main() {
parrots := raylib.LoadImage("parrots.png") // Load image in CPU memory (RAM)
// Draw one image over the other with a scaling of 1.5f
raylib.ImageDraw(parrots, cat, raylib.NewRectangle(0, 0, cat.Width, cat.Height), raylib.NewRectangle(30, 40, int32(float32(cat.Width)*1.5), int32(float32(cat.Height)*1.5)))
raylib.ImageCrop(parrots, raylib.NewRectangle(0, 50, parrots.Width, parrots.Height-100)) // Crop resulting image
raylib.ImageDraw(parrots, cat, raylib.NewRectangle(0, 0, float32(cat.Width), float32(cat.Height)), raylib.NewRectangle(30, 40, float32(cat.Width)*1.5, float32(cat.Height)*1.5))
raylib.ImageCrop(parrots, raylib.NewRectangle(0, 50, float32(parrots.Width), float32(parrots.Height-100))) // Crop resulting image
raylib.UnloadImage(cat) // Unload image from RAM

View file

@ -35,17 +35,17 @@ func main() {
raylib.InitWindow(screenWidth, screenHeight, "raylib [textures] example - image processing")
image := raylib.LoadImage("parrots.png") // Loaded in CPU memory (RAM)
raylib.ImageFormat(image, int32(raylib.UncompressedR8g8b8a8)) // Format image to RGBA 32bit (required for texture update)
texture := raylib.LoadTextureFromImage(image) // Image converted to texture, GPU memory (VRAM)
image := raylib.LoadImage("parrots.png") // Loaded in CPU memory (RAM)
raylib.ImageFormat(image, raylib.UncompressedR8g8b8a8) // Format image to RGBA 32bit (required for texture update)
texture := raylib.LoadTextureFromImage(image) // Image converted to texture, GPU memory (VRAM)
currentProcess := None
textureReload := false
selectRecs := make([]raylib.Rectangle, numProcesses)
for i := int32(0); i < numProcesses; i++ {
selectRecs[i] = raylib.NewRectangle(40, 50+32*i, 150, 30)
for i := 0; i < numProcesses; i++ {
selectRecs[i] = raylib.NewRectangle(40, 50+32*float32(i), 150, 30)
}
raylib.SetTargetFPS(60)
@ -114,12 +114,12 @@ func main() {
for i := 0; i < numProcesses; i++ {
if i == currentProcess {
raylib.DrawRectangleRec(selectRecs[i], raylib.SkyBlue)
raylib.DrawRectangleLines(selectRecs[i].X, selectRecs[i].Y, selectRecs[i].Width, selectRecs[i].Height, raylib.Blue)
raylib.DrawText(processText[i], selectRecs[i].X+selectRecs[i].Width/2-raylib.MeasureText(processText[i], 10)/2, selectRecs[i].Y+11, 10, raylib.DarkBlue)
raylib.DrawRectangleLines(int32(selectRecs[i].X), int32(selectRecs[i].Y), int32(selectRecs[i].Width), int32(selectRecs[i].Height), raylib.Blue)
raylib.DrawText(processText[i], int32(selectRecs[i].X+selectRecs[i].Width/2)-raylib.MeasureText(processText[i], 10)/2, int32(selectRecs[i].Y)+11, 10, raylib.DarkBlue)
} else {
raylib.DrawRectangleRec(selectRecs[i], raylib.LightGray)
raylib.DrawRectangleLines(selectRecs[i].X, selectRecs[i].Y, selectRecs[i].Width, selectRecs[i].Height, raylib.Gray)
raylib.DrawText(processText[i], selectRecs[i].X+selectRecs[i].Width/2-raylib.MeasureText(processText[i], 10)/2, selectRecs[i].Y+11, 10, raylib.DarkGray)
raylib.DrawRectangleLines(int32(selectRecs[i].X), int32(selectRecs[i].Y), int32(selectRecs[i].Width), int32(selectRecs[i].Height), raylib.Gray)
raylib.DrawText(processText[i], int32(selectRecs[i].X+selectRecs[i].Width/2)-raylib.MeasureText(processText[i], 10)/2, int32(selectRecs[i].Y)+11, 10, raylib.DarkGray)
}
}

View file

@ -10,9 +10,9 @@ func main() {
raylib.InitWindow(screenWidth, screenHeight, "raylib [textures] example - image text drawing")
// TTF SpriteFont loading with custom generation parameters
// TTF Font loading with custom generation parameters
var fontChars int32
font := raylib.LoadSpriteFontEx("fonts/KAISG.ttf", 64, 0, &fontChars)
font := raylib.LoadFontEx("fonts/KAISG.ttf", 64, 0, &fontChars)
parrots := raylib.LoadImage("parrots.png") // Load image in CPU memory (RAM)
@ -56,7 +56,7 @@ func main() {
}
raylib.UnloadTexture(texture)
raylib.UnloadSpriteFont(font)
raylib.UnloadFont(font)
raylib.CloseWindow()
}

View file

@ -95,8 +95,8 @@ func main() {
if mouseTail[i].Active {
raylib.DrawTexturePro(
smoke,
raylib.NewRectangle(0, 0, smoke.Width, smoke.Height),
raylib.NewRectangle(int32(mouseTail[i].Position.X), int32(mouseTail[i].Position.Y), smoke.Width*int32(mouseTail[i].Size), smoke.Height*int32(mouseTail[i].Size)),
raylib.NewRectangle(0, 0, float32(smoke.Width), float32(smoke.Height)),
raylib.NewRectangle(mouseTail[i].Position.X, mouseTail[i].Position.Y, float32(smoke.Width)*mouseTail[i].Size, float32(smoke.Height)*mouseTail[i].Size),
raylib.NewVector2(float32(smoke.Width)*mouseTail[i].Size/2, float32(smoke.Height)*mouseTail[i].Size/2),
mouseTail[i].Rotation,
raylib.Fade(mouseTail[i].Color, mouseTail[i].Alpha),

View file

@ -21,8 +21,8 @@ func main() {
scarfy := raylib.LoadTexture("scarfy.png") // Texture loading
position := raylib.NewVector2(350.0, 280.0)
frameRec := raylib.NewRectangle(0, 0, scarfy.Width/6, scarfy.Height)
currentFrame := int32(0)
frameRec := raylib.NewRectangle(0, 0, float32(scarfy.Width/6), float32(scarfy.Height))
currentFrame := float32(0)
framesCounter := 0
framesSpeed := 8 // Number of spritesheet frames shown by second
@ -40,7 +40,7 @@ func main() {
currentFrame = 0
}
frameRec.X = currentFrame * scarfy.Width / 6
frameRec.X = currentFrame * float32(scarfy.Width) / 6
}
if raylib.IsKeyPressed(raylib.KeyRight) {
@ -61,7 +61,7 @@ func main() {
raylib.DrawTexture(scarfy, 15, 40, raylib.White)
raylib.DrawRectangleLines(15, 40, scarfy.Width, scarfy.Height, raylib.Lime)
raylib.DrawRectangleLines(15+frameRec.X, 40+frameRec.Y, frameRec.Width, frameRec.Height, raylib.Red)
raylib.DrawRectangleLines(15+int32(frameRec.X), 40+int32(frameRec.Y), int32(frameRec.Width), int32(frameRec.Height), raylib.Red)
raylib.DrawText("FRAME SPEED: ", 165, 210, 10, raylib.DarkGray)
raylib.DrawText(fmt.Sprintf("%02d FPS", framesSpeed), 575, 210, 10, raylib.DarkGray)

View file

@ -13,14 +13,14 @@ func main() {
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
scarfy := raylib.LoadTexture("scarfy.png") // Texture loading
frameWidth := scarfy.Width / 7
frameHeight := scarfy.Height
frameWidth := float32(scarfy.Width) / 7
frameHeight := float32(scarfy.Height)
// NOTE: Source rectangle (part of the texture to use for drawing)
sourceRec := raylib.NewRectangle(0, 0, int32(frameWidth), int32(frameHeight))
sourceRec := raylib.NewRectangle(0, 0, frameWidth, frameHeight)
// NOTE: Destination rectangle (screen rectangle where drawing part of texture)
destRec := raylib.NewRectangle(screenWidth/2, screenHeight/2, frameWidth*2, frameHeight*2)
destRec := raylib.NewRectangle(float32(screenWidth)/2, float32(screenHeight)/2, frameWidth*2, frameHeight*2)
// NOTE: Origin of the texture (rotation/scale point), it's relative to destination rectangle size
origin := raylib.NewVector2(float32(frameWidth), float32(frameHeight))
@ -45,8 +45,8 @@ func main() {
// rotation defines the texture rotation (using origin as rotation point)
raylib.DrawTexturePro(scarfy, sourceRec, destRec, origin, rotation, raylib.White)
raylib.DrawLine(destRec.X, 0, destRec.X, screenHeight, raylib.Gray)
raylib.DrawLine(0, destRec.Y, screenWidth, destRec.Y, raylib.Gray)
raylib.DrawLine(int32(destRec.X), 0, int32(destRec.X), screenHeight, raylib.Gray)
raylib.DrawLine(0, int32(destRec.Y), screenWidth, int32(destRec.Y), raylib.Gray)
raylib.DrawText("(c) Scarfy sprite by Eiden Marsal", screenWidth-200, screenHeight-20, 10, raylib.Gray)