{"id":16726102,"url":"https://github.com/tatut/raylib-smalltalk","last_synced_at":"2026-03-18T21:49:54.033Z","repository":{"id":221369837,"uuid":"754189947","full_name":"tatut/raylib-smalltalk","owner":"tatut","description":"Smalltalk bindings to Raylib","archived":false,"fork":false,"pushed_at":"2024-02-17T11:04:13.000Z","size":40,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-22T05:28:15.738Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tatut.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-07T15:19:02.000Z","updated_at":"2024-08-09T17:49:28.000Z","dependencies_parsed_at":"2024-02-17T09:23:22.991Z","dependency_job_id":"9cbcdacc-69a1-4499-b397-b1a24650847b","html_url":"https://github.com/tatut/raylib-smalltalk","commit_stats":null,"previous_names":["tatut/raylib-smalltalk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tatut%2Fraylib-smalltalk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tatut%2Fraylib-smalltalk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tatut%2Fraylib-smalltalk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tatut%2Fraylib-smalltalk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tatut","download_url":"https://codeload.github.com/tatut/raylib-smalltalk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243747546,"owners_count":20341508,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T22:52:07.728Z","updated_at":"2026-01-02T10:46:34.649Z","avatar_url":"https://github.com/tatut.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raylib Smalltalk bindings\n\nSmalltalk bindings for [raylib](https://www.raylib.com).\nDeveloped in [Pharo](https://pharo.org) (11).\n\nWIP: not all raylib functions are implemented yet, only tested on OS X.\n\n# Notes on changes\n\nAll code lives in the `raylib` package.\nThe FFI bindings to the raylib C functions are in the class FFIRaylib class.\n\nStructs are their own classes prefixed with Rb, eg. `Vector2` and `Color` become `RbVector2` and `RbColor`.\nThe typical Smalltalk accessor methods to get/set the values are present.\n\nAs Smalltalk uses different naming styles, the methods are not one to one to the C functions names.\nGetter functions like `GetScreenWidth` omit the first part and becomes `screenWidth`. \nFunctions to set things likewise omit the first part so `SetTargetFPS` becomes `targetFPS:`.\n\nThere is a new class called `RbScene` which abstracts the update \u0026 draw functionality that will be called\nin a loop.\n\n# Development\n\nAs Pharo is single threaded, the regular raylib loop to continuously redraw everything and wait for next frame,\nwill cause the development environment to halt as well. It is recommended to add a keybinding to scene update\nthat calls `terminate` which stops the game loop (without closing the window). This allows you to inspect things\nin Pharo and change code and then continue the game.\n\nThere is also a method `runOnce` which calls the scene update/draw one time. This can be used to step through\nframes of the game. Or see how code changes would look.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftatut%2Fraylib-smalltalk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftatut%2Fraylib-smalltalk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftatut%2Fraylib-smalltalk/lists"}