Initial commit
This commit is contained in:
commit
9e86f4eeb8
BIN
libraylib.a
Normal file
BIN
libraylib.a
Normal file
Binary file not shown.
14
main.rs
Normal file
14
main.rs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
mod raylib;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
raylib::init_window(800, 600, "Hello, raylib");
|
||||||
|
while !raylib::window_should_close() {
|
||||||
|
raylib::begin_drawing();
|
||||||
|
raylib::draw_rect(0, 0, 100, 200, raylib::Color(255, 0, 0, 255));
|
||||||
|
if raylib::is_key_pressed(raylib::Key::Z) {
|
||||||
|
raylib::draw_rect(200, 200, 100, 100, raylib::Color(0, 255, 0, 0));
|
||||||
|
}
|
||||||
|
raylib::end_drawing();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
54
raylib.rs
Normal file
54
raylib.rs
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
use std::ffi::{c_char,CString};
|
||||||
|
|
||||||
|
#[repr(C)]
|
||||||
|
pub struct Color(pub u8, pub u8, pub u8, pub u8);
|
||||||
|
|
||||||
|
#[link(name = "raylib")]
|
||||||
|
extern {
|
||||||
|
fn InitWindow(width: u32, height: u32, title: *const c_char);
|
||||||
|
fn WindowShouldClose() -> bool;
|
||||||
|
fn BeginDrawing();
|
||||||
|
fn EndDrawing();
|
||||||
|
fn DrawRectangle(pos_x: u32, pos_y: u32, width: u32, height: u32, color: Color);
|
||||||
|
fn IsKeyPressed(key: u32) -> bool;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Copy, Clone)]
|
||||||
|
pub enum Key {
|
||||||
|
Z = 89,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn init_window(width: u32, height: u32, title: &str) {
|
||||||
|
unsafe {
|
||||||
|
let title = CString::new(title).unwrap();
|
||||||
|
InitWindow(width, height, title.as_ptr());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn window_should_close() -> bool {
|
||||||
|
unsafe { WindowShouldClose() }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn begin_drawing() {
|
||||||
|
unsafe { BeginDrawing(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn end_drawing() {
|
||||||
|
unsafe { EndDrawing(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn draw_rect(pos_x: u32, pos_y: u32, width:u32, height: u32, color: Color) {
|
||||||
|
unsafe { DrawRectangle(pos_x, pos_y, width, height, color); }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn is_key_pressed(key: Key) -> bool {
|
||||||
|
let key = key as u32;
|
||||||
|
unsafe {
|
||||||
|
let ret = IsKeyPressed(key);
|
||||||
|
if ret {
|
||||||
|
println!("is_key_pressed({key})");
|
||||||
|
}
|
||||||
|
ret
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
16
raylib_LICENSE
Normal file
16
raylib_LICENSE
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
Copyright (c) 2013-2023 Ramon Santamaria (@raysan5)
|
||||||
|
|
||||||
|
This software is provided "as-is", without any express or implied warranty. In no event
|
||||||
|
will the authors be held liable for any damages arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose, including commercial
|
||||||
|
applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not claim that you
|
||||||
|
wrote the original software. If you use this software in a product, an acknowledgment
|
||||||
|
in the product documentation would be appreciated but is not required.
|
||||||
|
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be misrepresented
|
||||||
|
as being the original software.
|
||||||
|
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
Loading…
Reference in New Issue
Block a user