package raylib

  1. Overview
  2. Docs
OCaml bindings for raylib

Install

dune-project
 Dependency

Authors

Maintainers

Sources

raylib-2.2.0.tbz
sha256=69762387172e615a91287bddd35ffa74ce4010ba1491ee24df3f65c0a039aa00
sha512=03f3eaa44fc55c0a4dc8b8611acb8e4e1d1081a8ea57071510c7dc343e7a7c5213d8bf1162e48d3e4723e836cb481d9a6bd426658daca662cf1983db1379ec3b

doc/src/raylib.core/raylib_core.ml.html

Source file raylib_core.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
include Ctypes_reexports
include Raylib_types
open Ctypes_reexports
open Ctypes
include Raylib_c.Raylib_generated.Functions

(* CArray or string wrapped functions *)
let load_file_data path =
  let count = ptr_of_int 0 in
  let data = _load_file_data path count in
  let s = string_from_ptr data ~length:!@count in
  _unload_file_data data;
  s

let save_file_data path data =
  let count = CArray.length data in
  _save_file_data path (to_voidp (CArray.start data)) count

let export_data_as_code data filename =
  _export_data_as_code data (String.length data) filename

let _strlen ptr =
  let i = ref 0 in
  while !@(ptr +@ !i) <> '\000' do
    incr i
  done;
  !i

let load_file_text path =
  let text = _load_file_text path in
  let count = _strlen text in
  let s = string_from_ptr text ~length:count in
  _unload_file_text text;
  s

let compress_data in_data =
  let in_count = CArray.length in_data in
  let out_count = ptr_of_int 0 in
  let out_data = _compress_data (CArray.start in_data) in_count out_count in
  CArray.from_ptr out_data !@out_count

let decompress_data in_data =
  let in_count = CArray.length in_data in
  let out_count = ptr_of_int 0 in
  let out_data = _decompress_data (CArray.start in_data) in_count out_count in
  CArray.from_ptr out_data !@out_count

let get_char_pressed () = _get_char_pressed () |> Uchar.of_int