Added Cybersteel theme

This commit is contained in:
Zachary Levy
2026-04-28 11:29:12 -07:00
parent e36229a3ef
commit c59858dcd4
33 changed files with 791 additions and 32 deletions
Binary file not shown.
Binary file not shown.
+20 -19
View File
@@ -1,14 +1,15 @@
package examples
import "../../draw"
import "../../draw/tess"
import "../../vendor/clay"
import "core:math"
import "core:os"
import sdl "vendor:sdl3"
JETBRAINS_MONO_REGULAR_RAW :: #load("fonts/JetBrainsMono-Regular.ttf")
JETBRAINS_MONO_REGULAR: draw.Font_Id = max(draw.Font_Id) // Max so we crash if registration is forgotten
import "../../draw"
import "../../draw/tess"
import "../../vendor/clay"
import cyber "../cybersteel"
PLEX_SANS_REGULAR: draw.Font_Id = max(draw.Font_Id) // Max so we crash if registration is forgotten
hellope_shapes :: proc() {
if !sdl.Init({.VIDEO}) do os.exit(1)
@@ -147,7 +148,7 @@ hellope_text :: proc() {
gpu := sdl.CreateGPUDevice(draw.PLATFORM_SHADER_FORMAT, true, nil)
if !sdl.ClaimWindowForGPUDevice(gpu, window) do os.exit(1)
if !draw.init(gpu, window) do os.exit(1)
JETBRAINS_MONO_REGULAR = draw.register_font(JETBRAINS_MONO_REGULAR_RAW)
PLEX_SANS_REGULAR = draw.register_font(cyber.SANS_REGULAR_RAW)
FONT_SIZE :: u16(24)
spin_angle: f32 = 0
@@ -168,10 +169,10 @@ hellope_text :: proc() {
base_layer,
"Hellope!",
{300, 80},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
origin = draw.center_of("Hellope!", JETBRAINS_MONO_REGULAR, FONT_SIZE),
origin = draw.center_of("Hellope!", PLEX_SANS_REGULAR, FONT_SIZE),
id = HELLOPE_ID,
)
@@ -180,10 +181,10 @@ hellope_text :: proc() {
base_layer,
"Hellope World!",
{300, 250},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = {255, 200, 50, 255},
origin = draw.center_of("Hellope World!", JETBRAINS_MONO_REGULAR, FONT_SIZE),
origin = draw.center_of("Hellope World!", PLEX_SANS_REGULAR, FONT_SIZE),
rotation = spin_angle,
id = ROTATING_SENTENCE_ID,
)
@@ -193,22 +194,22 @@ hellope_text :: proc() {
base_layer,
"Top-left anchored",
{20, 450},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
// Measure text for manual layout
size := draw.measure_text("Measured!", JETBRAINS_MONO_REGULAR, FONT_SIZE)
size := draw.measure_text("Measured!", PLEX_SANS_REGULAR, FONT_SIZE)
draw.rectangle(base_layer, {300 - size.x / 2, 380, size.x, size.y}, draw.Color{60, 60, 60, 200})
draw.text(
base_layer,
"Measured!",
{300, 380},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
origin = draw.top_of("Measured!", JETBRAINS_MONO_REGULAR, FONT_SIZE),
origin = draw.top_of("Measured!", PLEX_SANS_REGULAR, FONT_SIZE),
id = MEASURED_ID,
)
@@ -217,7 +218,7 @@ hellope_text :: proc() {
base_layer,
"Corner spin",
{150, 530},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = {100, 200, 255, 255},
rotation = spin_angle,
@@ -234,10 +235,10 @@ hellope_clay :: proc() {
gpu := sdl.CreateGPUDevice(draw.PLATFORM_SHADER_FORMAT, true, nil)
if !sdl.ClaimWindowForGPUDevice(gpu, window) do os.exit(1)
if !draw.init(gpu, window) do os.exit(1)
JETBRAINS_MONO_REGULAR = draw.register_font(JETBRAINS_MONO_REGULAR_RAW)
PLEX_SANS_REGULAR = draw.register_font(cyber.SANS_REGULAR_RAW)
text_config := clay.TextElementConfig {
fontId = JETBRAINS_MONO_REGULAR,
fontId = PLEX_SANS_REGULAR,
fontSize = 36,
textColor = {255, 255, 255, 255},
}
@@ -278,10 +279,10 @@ hellope_custom :: proc() {
gpu := sdl.CreateGPUDevice(draw.PLATFORM_SHADER_FORMAT, true, nil)
if !sdl.ClaimWindowForGPUDevice(gpu, window) do os.exit(1)
if !draw.init(gpu, window) do os.exit(1)
JETBRAINS_MONO_REGULAR = draw.register_font(JETBRAINS_MONO_REGULAR_RAW)
PLEX_SANS_REGULAR = draw.register_font(cyber.SANS_REGULAR_RAW)
text_config := clay.TextElementConfig {
fontId = JETBRAINS_MONO_REGULAR,
fontId = PLEX_SANS_REGULAR,
fontSize = 24,
textColor = {255, 255, 255, 255},
}
+15 -13
View File
@@ -1,9 +1,11 @@
package examples
import "core:os"
import sdl "vendor:sdl3"
import "../../draw"
import "../../draw/draw_qr"
import "core:os"
import sdl "vendor:sdl3"
import cyber "../cybersteel"
textures :: proc() {
if !sdl.Init({.VIDEO}) do os.exit(1)
@@ -11,7 +13,7 @@ textures :: proc() {
gpu := sdl.CreateGPUDevice(draw.PLATFORM_SHADER_FORMAT, true, nil)
if !sdl.ClaimWindowForGPUDevice(gpu, window) do os.exit(1)
if !draw.init(gpu, window) do os.exit(1)
JETBRAINS_MONO_REGULAR = draw.register_font(JETBRAINS_MONO_REGULAR_RAW)
PLEX_SANS_REGULAR = draw.register_font(cyber.SANS_REGULAR_RAW)
FONT_SIZE :: u16(14)
LABEL_OFFSET :: f32(8) // gap between item and its label
@@ -111,7 +113,7 @@ textures :: proc() {
base_layer,
"Nearest",
{COL1, ROW1_Y + ITEM_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -127,7 +129,7 @@ textures :: proc() {
base_layer,
"Linear",
{COL2, ROW1_Y + ITEM_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -144,7 +146,7 @@ textures :: proc() {
base_layer,
"Tiled 4x",
{COL3, ROW1_Y + ITEM_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -165,7 +167,7 @@ textures :: proc() {
base_layer,
"QR Code",
{COL1, ROW2_Y + ITEM_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -182,7 +184,7 @@ textures :: proc() {
base_layer,
"Rounded",
{COL2, ROW2_Y + ITEM_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -201,7 +203,7 @@ textures :: proc() {
base_layer,
"Rotating",
{COL3, ROW2_Y + ITEM_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -219,7 +221,7 @@ textures :: proc() {
base_layer,
"Stretch",
{COL1, ROW3_Y + FIT_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -232,7 +234,7 @@ textures :: proc() {
base_layer,
"Fill",
{COL2, ROW3_Y + FIT_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -245,7 +247,7 @@ textures :: proc() {
base_layer,
"Fit",
{COL3, ROW3_Y + FIT_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)
@@ -262,7 +264,7 @@ textures :: proc() {
base_layer,
"Per-corner",
{COL4, ROW3_Y + FIT_SIZE + LABEL_OFFSET},
JETBRAINS_MONO_REGULAR,
PLEX_SANS_REGULAR,
FONT_SIZE,
color = draw.WHITE,
)