package raylib

  1. Overview
  2. Docs
OCaml bindings for raylib

Install

dune-project
 Dependency

Authors

Maintainers

Sources

raylib-2.2.2.tbz
sha256=a1baf56fab14350ab9eefdb9cc9789329c2071a9b53e73ffd2284ece1d18e43b
sha512=8801141c7e96e698aa5c74452eec0aa12d8b3ee50ab82cfc44eac79eb9b0641fd7fe99da14ab6418b92182bab95e3b834032d405a32b79badac23da3acdf37fa

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