From b155235760b25a44c545ce51980c2b1498d163b1 Mon Sep 17 00:00:00 2001 From: 222448082Ashen <167728161+222448082Ashen@users.noreply.github.com> Date: Tue, 6 Jan 2026 02:41:25 +0530 Subject: [PATCH 1/2] Add base64 encode usage examples in multiple languages Added example code for base64 encoding using SplashKit in C#, C++ (OOP and top-level), and Python, along with a sample output image and a brief description text. These examples demonstrate how to encode a string to Base64 format across different programming languages. --- myeasylog.log | 0 .../utilities/base64_encode-1-example-oop.cs | 16 ++++++++++++++++ .../base64_encode-1-example-top-level.cs | 8 ++++++++ .../utilities/base64_encode-1-example.cpp | 12 ++++++++++++ .../utilities/base64_encode-1-example.png | Bin 0 -> 8302 bytes .../utilities/base64_encode-1-example.py | 7 +++++++ .../utilities/base64_encode-1-example.txt | 2 ++ 7 files changed, 45 insertions(+) create mode 100644 myeasylog.log create mode 100644 public/usage-examples/utilities/base64_encode-1-example-oop.cs create mode 100644 public/usage-examples/utilities/base64_encode-1-example-top-level.cs create mode 100644 public/usage-examples/utilities/base64_encode-1-example.cpp create mode 100644 public/usage-examples/utilities/base64_encode-1-example.png create mode 100644 public/usage-examples/utilities/base64_encode-1-example.py create mode 100644 public/usage-examples/utilities/base64_encode-1-example.txt diff --git a/myeasylog.log b/myeasylog.log new file mode 100644 index 000000000..e69de29bb diff --git a/public/usage-examples/utilities/base64_encode-1-example-oop.cs b/public/usage-examples/utilities/base64_encode-1-example-oop.cs new file mode 100644 index 000000000..22ca63fce --- /dev/null +++ b/public/usage-examples/utilities/base64_encode-1-example-oop.cs @@ -0,0 +1,16 @@ +using SplashKitSDK; + +namespace Base64EncodeExample +{ + public class Program + { + public static void Main() + { + string input = "Hello World"; + string encoded = SplashKit.Base64Encode(input); + + SplashKit.WriteLine("Original: " + input); + SplashKit.WriteLine("Encoded: " + encoded); + } + } +} \ No newline at end of file diff --git a/public/usage-examples/utilities/base64_encode-1-example-top-level.cs b/public/usage-examples/utilities/base64_encode-1-example-top-level.cs new file mode 100644 index 000000000..31823f47b --- /dev/null +++ b/public/usage-examples/utilities/base64_encode-1-example-top-level.cs @@ -0,0 +1,8 @@ +using SplashKitSDK; +using static SplashKitSDK.SplashKit; + +string input = "Hello World"; +string encoded = Base64Encode(input); + +WriteLine("Original: " + input); +WriteLine("Encoded: " + encoded); \ No newline at end of file diff --git a/public/usage-examples/utilities/base64_encode-1-example.cpp b/public/usage-examples/utilities/base64_encode-1-example.cpp new file mode 100644 index 000000000..83a6d49ec --- /dev/null +++ b/public/usage-examples/utilities/base64_encode-1-example.cpp @@ -0,0 +1,12 @@ +#include "splashkit.h" + +int main() +{ + string input = "Hello World"; + string encoded = base64_encode(input); + + write_line("Original: " + input); + write_line("Encoded: " + encoded); + + return 0; +} \ No newline at end of file diff --git a/public/usage-examples/utilities/base64_encode-1-example.png b/public/usage-examples/utilities/base64_encode-1-example.png new file mode 100644 index 0000000000000000000000000000000000000000..473c07d7779c4d63ca5855ac73ca226837d644db GIT binary patch literal 8302 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 literal 0 HcmV?d00001 diff --git a/public/usage-examples/utilities/base64_encode-1-example.py b/public/usage-examples/utilities/base64_encode-1-example.py new file mode 100644 index 000000000..3f414c269 --- /dev/null +++ b/public/usage-examples/utilities/base64_encode-1-example.py @@ -0,0 +1,7 @@ +from splashkit import * + +input_str = "Hello World" +encoded = base64_encode(input_str) + +write_line("Original: " + input_str) +write_line("Encoded: " + encoded) \ No newline at end of file diff --git a/public/usage-examples/utilities/base64_encode-1-example.txt b/public/usage-examples/utilities/base64_encode-1-example.txt new file mode 100644 index 000000000..a4c3dbae6 --- /dev/null +++ b/public/usage-examples/utilities/base64_encode-1-example.txt @@ -0,0 +1,2 @@ +Base64 Encode Example +Encodes a string to Base64 format. \ No newline at end of file From 3c52e4e46a0ebfe1314ab2ac7f6e2b3ecfcf48a9 Mon Sep 17 00:00:00 2001 From: 222448082Ashen <167728161+222448082Ashen@users.noreply.github.com> Date: Tue, 6 Jan 2026 02:51:00 +0530 Subject: [PATCH 2/2] Add new usage examples and update references Inserted new usage examples for 'rectangle_around', 'bitmap_center', 'base64_encode', and 'close_window' in usage-example-references.json. Also fixed duplicate and ordering issues for 'lines_intersect'. Minor formatting changes to some example titles. Updated api-pages-script.cjs to add anchor spans for function links. --- scripts/api-pages-script.cjs | 1 + .../json-files/usage-example-references.json | 165 +++++++++++++----- 2 files changed, 122 insertions(+), 44 deletions(-) diff --git a/scripts/api-pages-script.cjs b/scripts/api-pages-script.cjs index 45dbc63fd..9dac1f525 100644 --- a/scripts/api-pages-script.cjs +++ b/scripts/api-pages-script.cjs @@ -579,6 +579,7 @@ for (const categoryKey in jsonData) { const hasSymbol = (hasExampleInGroup || hasGuideInGroup || hasExampleReferenceInGroup) ? `  {</>}` : ""; const formattedGroupLink = `${formattedLink}-functions`; + mdxContent += `\n\n`; mdxContent += `\n### [${formattedFunctionName}](#${formattedGroupLink})${hasSymbol} \\{#${formattedGroupLink}\\}\n\n`; mdxContent += ":::note\n\n"; diff --git a/scripts/json-files/usage-example-references.json b/scripts/json-files/usage-example-references.json index c41688ec6..8b24ef5b0 100644 --- a/scripts/json-files/usage-example-references.json +++ b/scripts/json-files/usage-example-references.json @@ -2,7 +2,7 @@ "audio": [ { "funcKey": "play_music_named", - "title": "Music Playback", + "title": "Music Playback\r", "url": "/api/audio/#play-music-named", "functions": [ "audio_ready", @@ -14,7 +14,7 @@ }, { "funcKey": "resume_music", - "title": "Pausing and Resuming Game Music", + "title": "Pausing and Resuming Game Music\r", "url": "/api/audio/#resume-music", "functions": [ "audio_ready", @@ -142,7 +142,7 @@ }, { "funcKey": "closest_point_on_circle", - "title": "Closest Point to Mouse on Circle", + "title": "Closest Point to Mouse on Circle\r", "url": "/api/geometry/#closest-point-on-circle", "functions": [ "open_window", @@ -161,6 +161,25 @@ "close_all_windows" ] }, + { + "funcKey": "lines_intersect", + "title": "Simple Line Intersect Check", + "url": "/api/geometry/#lines-intersect", + "functions": [ + "open_window", + "Point2D", + "line_from_point_to_point", + "draw_line_record", + "color_red", + "draw_text_no_font_no_size", + "color_black", + "color_blue", + "color_green", + "refresh_screen", + "delay", + "close_all_windows" + ] + }, { "funcKey": "line_intersects_rect", "title": "Avoid the Rectangle", @@ -256,25 +275,6 @@ "close_all_windows" ] }, - { - "funcKey": "lines_intersect", - "title": "Simple Line Intersect Check", - "url": "/api/geometry/#lines-intersect", - "functions": [ - "open_window", - "Point2D", - "line_from_point_to_point", - "draw_line_record", - "color_red", - "draw_text_no_font_no_size", - "color_black", - "color_blue", - "color_green", - "refresh_screen", - "delay", - "close_all_windows" - ] - }, { "funcKey": "point_at", "title": "Flower Grid", @@ -508,7 +508,7 @@ }, { "funcKey": "random_window_point", - "title": "Random Portals", + "title": "Random Portals\r", "url": "/api/geometry/#random-window-point", "functions": [ "open_window", @@ -524,6 +524,32 @@ "close_window" ] }, + { + "funcKey": "rectangle_around", + "title": "A perpetually moving circle which increases and decreases in size, surrounded by a rectangle shape", + "url": "/api/geometry/#rectangle-around", + "functions": [ + "open_window", + "create_timer", + "start_timer", + "quit_requested", + "point_at", + "cosine", + "sine", + "circle_at", + "timer_ticks", + "reset_timer", + "process_events", + "clear_screen_to_white", + "draw_rectangle_record", + "color_black", + "rectangle_around_circle", + "fill_circle_record", + "color_red", + "refresh_screen", + "close_all_windows" + ] + }, { "funcKey": "same_point", "title": "Point 2D Guessing Game", @@ -561,6 +587,24 @@ "close_all_windows" ] }, + { + "funcKey": "bitmap_center", + "title": "Draw a bitmap with a red dot at its center\r", + "url": "/api/graphics/#bitmap-center", + "functions": [ + "open_window", + "load_bitmap", + "clear_screen", + "color_white", + "draw_bitmap", + "fill_circle_record", + "color_red", + "circle_at", + "refresh_screen", + "delay", + "close_all_windows" + ] + }, { "funcKey": "clear_screen", "title": "Background Color", @@ -575,7 +619,7 @@ }, { "funcKey": "draw_bitmap_named", - "title": "SplashKit Logo", + "title": "SplashKit Logo\r", "url": "/api/graphics/#draw-bitmap-named", "functions": [ "open_window", @@ -1041,7 +1085,7 @@ }, { "funcKey": "fill_rectangle_on_bitmap", - "title": "Cityscape", + "title": "Cityscape\r", "url": "/api/graphics/#fill-rectangle-on-bitmap", "functions": [ "open_window", @@ -1112,7 +1156,7 @@ }, { "funcKey": "fill_triangle_on_bitmap", - "title": "Hooray! A Red Hat", + "title": "Hooray! A Red Hat\r", "url": "/api/graphics/#fill-triangle-on-bitmap", "functions": [ "open_window", @@ -1172,7 +1216,7 @@ }, { "funcKey": "free_font", - "title": "Freeing Fonts", + "title": "Freeing Fonts\r", "url": "/api/graphics/#free-font", "functions": [ "open_window", @@ -1211,7 +1255,7 @@ }, { "funcKey": "load_font", - "title": "Using Fonts", + "title": "Using Fonts\r", "url": "/api/graphics/#load-font", "functions": [ "open_window", @@ -1242,7 +1286,7 @@ }, { "funcKey": "text_width_font_named", - "title": "Underline Text using Text Width", + "title": "Underline Text using Text Width\r", "url": "/api/graphics/#text-width-font-named", "functions": [ "open_window", @@ -1303,7 +1347,7 @@ "physics": [ { "funcKey": "sprite_bitmap_collision", - "title": "Does SplashKit have bugs?", + "title": "Does SplashKit have bugs?\r", "url": "/api/physics/#sprite-bitmap-collision", "functions": [ "open_window", @@ -1323,7 +1367,7 @@ }, { "funcKey": "sprite_collision", - "title": "Colliding Sprites", + "title": "Colliding Sprites\r", "url": "/api/physics/#sprite-collision", "functions": [ "open_window", @@ -1342,7 +1386,7 @@ }, { "funcKey": "sprite_point_collision", - "title": "Determine Sprite Collisions with Points", + "title": "Determine Sprite Collisions with Points\r", "url": "/api/physics/#sprite-point-collision", "functions": [ "open_window", @@ -1365,7 +1409,7 @@ }, { "funcKey": "sprite_rectangle_collision", - "title": "Detect Sprite Collisions with Rectangles", + "title": "Detect Sprite Collisions with Rectangles\r", "url": "/api/physics/#sprite-rectangle-collision", "functions": [ "open_window", @@ -1390,7 +1434,7 @@ "raspberry": [ { "funcKey": "raspi_i2c_write_data", - "title": "LED Text Scrolling", + "title": "LED Text Scrolling\r", "url": "/api/raspberry/#raspi-i2c-write-data", "functions": [ "write_line", @@ -1407,7 +1451,7 @@ "sprites": [ { "funcKey": "create_sprite", - "title": "Creating a Player Sprite", + "title": "Creating a Player Sprite\r", "url": "/api/sprites/#create-sprite", "functions": [ "open_window", @@ -1425,7 +1469,7 @@ }, { "funcKey": "draw_sprite", - "title": "Drawing a Player Sprite", + "title": "Drawing a Player Sprite\r", "url": "/api/sprites/#draw-sprite", "functions": [ "open_window", @@ -1443,7 +1487,7 @@ }, { "funcKey": "free_sprite", - "title": "Freeing a Sprite", + "title": "Freeing a Sprite\r", "url": "/api/sprites/#free-sprite", "functions": [ "open_window", @@ -1465,7 +1509,7 @@ }, { "funcKey": "sprite_set_position", - "title": "Setting Sprite Position", + "title": "Setting Sprite Position\r", "url": "/api/sprites/#sprite-set-position", "functions": [ "open_window", @@ -1485,7 +1529,7 @@ }, { "funcKey": "sprite_set_velocity", - "title": "Setting Velocity of Sprite", + "title": "Setting Velocity of Sprite\r", "url": "/api/sprites/#sprite-set-velocity", "functions": [ "open_window", @@ -1507,7 +1551,7 @@ }, { "funcKey": "sprite_set_x", - "title": "Setting Sprite X-coordinate", + "title": "Setting Sprite X-coordinate\r", "url": "/api/sprites/#sprite-set-x", "functions": [ "open_window", @@ -1524,7 +1568,7 @@ }, { "funcKey": "sprite_set_y", - "title": "Setting Sprite Y-coordinate", + "title": "Setting Sprite Y-coordinate\r", "url": "/api/sprites/#sprite-set-y", "functions": [ "open_window", @@ -1541,7 +1585,7 @@ }, { "funcKey": "sprite_x", - "title": "Sprite x-coordinate", + "title": "Sprite x-coordinate\r", "url": "/api/sprites/#sprite-x", "functions": [ "open_window", @@ -1561,7 +1605,7 @@ }, { "funcKey": "sprite_y", - "title": "Sprite y-coordinate", + "title": "Sprite y-coordinate\r", "url": "/api/sprites/#sprite-y", "functions": [ "open_window", @@ -1640,6 +1684,14 @@ } ], "utilities": [ + { + "funcKey": "base64_encode", + "title": "Base64 Encode Example", + "url": "/api/utilities/#base64-encode", + "functions": [ + "write_line" + ] + }, { "funcKey": "contains", "title": "Checking if a string contains a word", @@ -1673,7 +1725,7 @@ }, { "funcKey": "current_ticks", - "title": "How many ticks?", + "title": "How many ticks?\r", "url": "/api/utilities/#current-ticks", "functions": [ "write_line", @@ -1790,5 +1842,30 @@ "write_line" ] } + ], + "windows": [ + { + "funcKey": "close_window", + "title": "Starts a countdown to close the window at the push of a button.", + "url": "/api/windows/#close-window", + "functions": [ + "open_window", + "create_timer", + "quit_requested", + "process_events", + "clear_window", + "color_white", + "button_at_position", + "rectangle_from", + "start_timer", + "draw_text_font_as_string", + "color_black", + "timer_ticks", + "reset_timer", + "draw_interface", + "refresh_window", + "close_all_windows" + ] + } ] } \ No newline at end of file