Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== raylib [[toc:]] === Description Bindings to the [[https://github.com/raysan5/raylib|raylib]] game library version 5.5. These are not complete yet, but all of the functions I commonly use are ported over. It's a very thin wrapper around the raylib C library that hopefully has minimal performance drawbacks. Types such as {{Color}}, {{Vector2}}, {{Vector3}}, and {{Rectangle}} are represented as [[https://wiki.call-cc.org/man/5/Module%20srfi-4|SRFI-4]] vectors to keep the memory managed by CHICKEN. See [[https://github.com/raysan5/raylib/blob/master/src/raylib.h|raylib.h]] for more info on each function. === Requirements * foreigners * raylib c library (should be visible via -lraylib) === Documentation ==== Color interface <procedure>(make-color R G B A)</procedure> Represented as {{u8vector}}. ==== Vector interface <procedure>(make-vec2 X Y)</procedure> <procedure>(vec2-x V)</procedure> <procedure>(vec2-y V)</procedure> <procedure>(make-vec3 X Y Z)</procedure> <procedure>(vec3-x V)</procedure> <procedure>(vec3-y V)</procedure> <procedure>(vec3-z V)</procedure> Represented as {{f32vector}}. ==== Rectangle interface <procedure>(make-rect X Y W H)</procedure> <procedure>(rect-x RECT)</procedure> <procedure>(rect-y RECT)</procedure> <procedure>(rect-w RECT)</procedure> <procedure>(rect-h RECT)</procedure> Represented as {{f32vector}}. ==== Texture interface <procedure>(make-texture)</procedure> <procedure>(free-texture TEXTURE)</procedure> Allocates C struct in unmanaged memory ({{C_malloc}}). Remember to free. <procedure>(texture-id TEXTURE)</procedure> <procedure>(texture-width TEXTURE)</procedure> <procedure>(texture-height TEXTURE)</procedure> <procedure>(texture-mipmaps TEXTURE)</procedure> <procedure>(texture-format TEXTURE)</procedure> ==== Camera2D interface <procedure>(make-camera2d)</procedure> <procedure>(free-camera2d CAMERA)</procedure> Allocates C struct in unmanaged memory ({{C_malloc}}). Remember to free. <procedure>(camera2d-offset CAMERA)</procedure> <procedure>(camera2d-target CAMERA)</procedure> Return {{f32vector}} ({{Vector2}}). <procedure>(camera2d-rotation CAMERA)</procedure> <procedure>(camera2d-zoom CAMERA)</procedure> Return {{flonum}}. <procedure>(camera2d-offset-set! CAMERA VEC2)</procedure> <procedure>(camera2d-target-set! CAMERA VEC2)</procedure> <procedure>(camera2d-rotation-set! CAMERA ROTATION)</procedure> <procedure>(camera2d-zoom-set! CAMERA ZOOM)</procedure> Set the specified slots. ==== Camera3D interface <procedure>(make-camera3d)</procedure> <procedure>(free-camera3d CAMERA)</procedure> Allocates C struct in unmanaged memory ({{C_malloc}}). Remember to free. <procedure>(camera3d-position CAMERA)</procedure> <procedure>(camera3d-target CAMERA)</procedure> <procedure>(camera3d-up CAMERA)</procedure> Return {{f32vector}} ({{Vector3}}). <procedure>(camera3d-fovy CAMERA)</procedure> Return {{flonum}}. <procedure>(camera3d-projection CAMERA)</procedure> Return {{fixnum}}. <procedure>(camera3d-position-set! CAMERA VEC3)</procedure> <procedure>(camera3d-target-set! CAMERA VEC3)</procedure> <procedure>(camera3d-up-set! CAMERA VEC3)</procedure> <procedure>(camera3d-fovy-set! CAMERA FOVY)</procedure> <procedure>(camera3d-projection-set! CAMERA PROJ)</procedure> ==== Constants The following are defined from [[https://github.com/raysan5/raylib/blob/master/src/raylib.h|raylib.h]]: * Colors (e.g. {{LIGHTGRAY}}) * {{KEY_*}} (e.g. {{KEY_ENTER}}) * {{MOUSE_BUTTON_*}} (e.g. {{MOUSE_BUTTON_LEFT}}) * {{LOG_*}} (e.g. {{LOG_INFO}}) ==== General interface ===== Window-related functions <procedure>(init-window WIDTH HEIGHT TITLE)</procedure> <procedure>(close-window)</procedure> <procedure>(get-screen-width)</procedure> <procedure>(get-screen-height)</procedure> <procedure>(window-should-close?)</procedure> ===== Drawing-related functions <procedure>(begin-drawing)</procedure> <procedure>(end-drawing)</procedure> <procedure>(begin-mode-2d CAMERA)</procedure> <procedure>(end-mode-2d)</procedure> <procedure>(begin-mode-3d CAMERA)</procedure> <procedure>(end-mode-3d)</procedure> <procedure>(clear-background COLOR)</procedure> ===== Timing-related functions <procedure>(set-target-fps FPS)</procedure> <procedure>(get-frame-time)</procedure> <procedure>(get-time)</procedure> <procedure>(get-fps)</procedure> ===== Input-related functions: keyboard <procedure>(key-pressed? KEY)</procedure> <procedure>(key-pressed-repeat? KEY)</procedure> <procedure>(key-down? KEY)</procedure> <procedure>(key-released? KEY)</procedure> <procedure>(key-up? KEY)</procedure> <procedure>(get-key-pressed)</procedure> <procedure>(get-char-pressed)</procedure> ===== Input-related functions: mouse <procedure>(mouse-button-pressed? MOUSEBUTTON)</procedure> <procedure>(mouse-button-down? MOUSEBUTTON)</procedure> <procedure>(mouse-button-released? MOUSEBUTTON)</procedure> <procedure>(mouse-button-up? MOUSEBUTTON)</procedure> <procedure>(get-mouse-x)</procedure> <procedure>(get-mouse-y)</procedure> <procedure>(get-mouse-position)</procedure> ===== Misc. functions <procedure>(trace-log LOGLEVEL TEXT)</procedure> ===== File system functions <procedure>(change-directory DIR)</procedure> ===== Texture loading functions <procedure>(load-texture FILENAME)</procedure> ===== Basic shapes drawing functions <procedure>(draw-pixel POSX POSY COLOR)</procedure> <procedure>(draw-pixel-v POSITION COLOR)</procedure> <procedure>(draw-line STARTPOSX STARTPOSY ENDPOSX ENDPOSY COLOR)</procedure> <procedure>(draw-line-v STARTPOS ENDPOS COLOR)</procedure> <procedure>(draw-line-ex STARTPOS ENDPOS THICK COLOR)</procedure> <procedure>(draw-circle CENTERX CENTERY RADIUS COLOR)</procedure> <procedure>(draw-circle-v CENTER RADIUS COLOR)</procedure> <procedure>(draw-circle-lines CENTERX CENTERY RADIUS COLOR)</procedure> <procedure>(draw-circle-lines-v CENTER RADIUS COLOR)</procedure> <procedure>(draw-rectangle POSX POSY WIDTH HEIGHT COLOR)</procedure> <procedure>(draw-rectangle-v POSITION SIZE COLOR)</procedure> <procedure>(draw-rectangle-rec RECT COLOR)</procedure> <procedure>(draw-rectangle-pro RECT ORIGIN ROTATION COLOR)</procedure> <procedure>(draw-rectangle-lines POSX POSY WIDTH HEIGHT COLOR)</procedure> <procedure>(draw-rectangle-lines-ex RECT LINETHICK COLOR)</procedure> <procedure>(draw-triangle V1 V2 V3 COLOR)</procedure> <procedure>(draw-triangle-lines V1 V2 V3 COLOR)</procedure> ===== Texture drawing functions <procedure>(draw-texture TEXTURE POSX POSY TINT)</procedure> <procedure>(draw-texture-v TEXTURE POSITION TINT)</procedure> <procedure>(draw-texture-ex TEXTURE POSITION ROTATION SCALE TINT)</procedure> <procedure>(draw-texture-rec TEXTURE SOURCERECT POSITION TINT)</procedure> <procedure>(draw-texture-pro TEXTURE SOURCERECT DESTRECT ORIGIN ROTATION TINT)</procedure> ===== Text drawing functions <procedure>(draw-text TEXT POSX POSY FONTSIZE)</procedure> <procedure>(measure-text TEXT FONTSIZE)</procedure> ==== Quality of life <procedure>(with-window WIDTH HEIGHT TITLE THUNK)</procedure> <procedure>(with-drawing THUNK)</procedure> <procedure>(with-mode-2d CAMERA THUNK)</procedure> <procedure>(with-mode-3d CAMERA THUNK)</procedure> === Example <enscript highligh="scheme"> (import raylib) (init-window 800 450 "raylib [core] example - basic window") (let loop () (with-drawing (lambda () (clear-background RAYWHITE) (draw-text "Congrats! You created your first window!" 190 200 20 LIGHTGRAY))) (unless (window-should-close?) (loop))) (close-window) </enscript> === Source repository [[https://github.com/meowstr/chicken-raylib]] Feel free to open issues and PR's! === Authors Meowster === License MIT
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you multiply 7 by 5?