mirror of
https://github.com/raylib-zig/raylib-zig.git
synced 2025-12-06 06:13:08 +00:00
Function bindings are completely automated now
This commit is contained in:
parent
b41650c6ba
commit
c1d01c193f
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,9 +1,9 @@
|
|||||||
zig-cache/
|
zig-cache/
|
||||||
.idea/
|
.idea/
|
||||||
Project/*
|
Project/*
|
||||||
raylib-headers/raylib.h
|
|
||||||
raylib-headers/raymath.h
|
|
||||||
|
|
||||||
|
**/raylib.h
|
||||||
|
**/raymath.h
|
||||||
**/.DS_Store
|
**/.DS_Store
|
||||||
**/CMakeLists.txt
|
**/CMakeLists.txt
|
||||||
**/cmake-build-debug
|
**/cmake-build-debug
|
||||||
|
|||||||
@ -15,7 +15,7 @@ pub fn createExe(b: *Builder, name: []const u8, source: []const u8, desc: []cons
|
|||||||
var exe = b.addExecutable(name, source);
|
var exe = b.addExecutable(name, source);
|
||||||
exe.setBuildMode(mode);
|
exe.setBuildMode(mode);
|
||||||
exe.linkSystemLibrary("raylib");
|
exe.linkSystemLibrary("raylib");
|
||||||
exe.addCSourceFile("lib/workaround/workaround.c", &[_][]const u8{});
|
exe.addCSourceFile("lib/workaround.c", &[_][]const u8{});
|
||||||
exe.addPackagePath("raylib", "lib/raylib-zig.zig");
|
exe.addPackagePath("raylib", "lib/raylib-zig.zig");
|
||||||
exe.addPackagePath("raylib-math", "lib/raylib-zig-math.zig");
|
exe.addPackagePath("raylib-math", "lib/raylib-zig-math.zig");
|
||||||
|
|
||||||
|
|||||||
188
lib/generate_functions.py
Normal file
188
lib/generate_functions.py
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
"""
|
||||||
|
Automatic utility for generating functions, including workaround functions
|
||||||
|
to fix Zig's issue with C ABI struct parameters. Simply put raylib.h in the
|
||||||
|
working directory of this script and execute. You'll get a workaround.c and
|
||||||
|
workaround.zig. The first has to be added as a C source and the latter has
|
||||||
|
to be included in raylib-zig.zig. Tested with raylib version 3.0.0
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
# Some c types have a different size on different systems
|
||||||
|
# and zig knows that so we tell it to get the system specific size for us
|
||||||
|
def c_to_zig_type(t: str) -> str:
|
||||||
|
t = t.replace("const ", "")
|
||||||
|
if t == "float":
|
||||||
|
t = "f32"
|
||||||
|
if t == "int":
|
||||||
|
t = "c_int"
|
||||||
|
if t == "unsigned int":
|
||||||
|
t = "c_uint"
|
||||||
|
if t == "long":
|
||||||
|
t = "c_long"
|
||||||
|
if t == "char":
|
||||||
|
t = "u8"
|
||||||
|
if t == "unsigned char":
|
||||||
|
t = "u8"
|
||||||
|
return t
|
||||||
|
|
||||||
|
|
||||||
|
def fix_pointer(name: str, t: str):
|
||||||
|
t = t.replace("const ", "")
|
||||||
|
pre = ""
|
||||||
|
while name.startswith("*"):
|
||||||
|
name = name[1:]
|
||||||
|
pre += "[*c]"
|
||||||
|
if len(pre) != 0:
|
||||||
|
t = pre + "const " + t
|
||||||
|
return name, t
|
||||||
|
|
||||||
|
|
||||||
|
small_structs = ["Vector2", "Vector3", "Vector4", "Quaternion", "Color", "Rectangle", "Shader"]
|
||||||
|
c_functions = []
|
||||||
|
|
||||||
|
|
||||||
|
def parse_header(header_name: str, output_file: str, prefix: str):
|
||||||
|
header = open(header_name, mode="r")
|
||||||
|
zig_functions = []
|
||||||
|
zig_heads = []
|
||||||
|
|
||||||
|
for line in header.readlines():
|
||||||
|
if not line.startswith(prefix):
|
||||||
|
continue
|
||||||
|
|
||||||
|
line = line.split(";", 1)[0]
|
||||||
|
# each (.*) is some variable value
|
||||||
|
result = re.search(prefix + "(.*) (.*)start_arg(.*)end_arg(.*)", line.replace("(", "start_arg").replace(")", "end_arg"))
|
||||||
|
|
||||||
|
# get whats in the (.*)'s
|
||||||
|
return_type = result.group(1)
|
||||||
|
func_name = result.group(2)
|
||||||
|
arguments = result.group(3)
|
||||||
|
|
||||||
|
if "..." in arguments or return_type in small_structs or return_type == "float3" or return_type == "float16":
|
||||||
|
continue
|
||||||
|
|
||||||
|
for struct in small_structs:
|
||||||
|
if struct in arguments:
|
||||||
|
break
|
||||||
|
else: # we found a completely normal function
|
||||||
|
return_type = c_to_zig_type(return_type)
|
||||||
|
func_name, return_type = fix_pointer(func_name, return_type)
|
||||||
|
|
||||||
|
zig_arguments = []
|
||||||
|
for arg in arguments.split(", "):
|
||||||
|
if arg == "void":
|
||||||
|
break
|
||||||
|
arg_type = " ".join(arg.split(" ")[0:-1]) # everything but the last element (for stuff like "const Vector3")
|
||||||
|
arg_type = arg_type.replace("const ", "") # zig doesn't like const in function arguments that aren't pointer and really we don't need const
|
||||||
|
arg_name = arg.split(" ")[-1] # last element should be the name
|
||||||
|
|
||||||
|
arg_type = c_to_zig_type(arg_type)
|
||||||
|
arg_name, arg_type = fix_pointer(arg_name, arg_type)
|
||||||
|
zig_arguments.append(arg_name + ": " + arg_type) # put everything together
|
||||||
|
zig_arguments = ", ".join(zig_arguments)
|
||||||
|
zig_heads.append("pub extern fn " + func_name + "(" + zig_arguments + ") " + return_type + ";")
|
||||||
|
continue
|
||||||
|
|
||||||
|
zig_arguments_w = [] # arguments for the workaround function head on the zig side
|
||||||
|
zig_arguments = [] # arguments that are passed to the copied raylib function
|
||||||
|
zig_pass = [] # arguments that are passed to the workaround function on the zig side
|
||||||
|
c_arguments = [] # arguments for the workaround function head on the c side
|
||||||
|
c_pass = [] # arguments that are passed to the actual raylib function
|
||||||
|
|
||||||
|
for arg in arguments.split(", "):
|
||||||
|
if arg == "void": break
|
||||||
|
arg_type = " ".join(arg.split(" ")[0:-1]).replace("const ", "") # everything but the last element (for stuff like "const Vector3"), but discarding const
|
||||||
|
arg_name = arg.split(" ")[-1] # last element should be the name
|
||||||
|
depoint = False # set to true if we need to dereference a pointer to a small struct in the c workaround
|
||||||
|
if arg_type in small_structs:
|
||||||
|
if not arg_name.startswith("*"):
|
||||||
|
depoint = True
|
||||||
|
|
||||||
|
if depoint:
|
||||||
|
arg_name = "*" + arg_name # dereference the arguments
|
||||||
|
|
||||||
|
c_arguments.append(arg_type + " " + arg_name)
|
||||||
|
if arg_name.startswith("*") and not depoint: # That's in case of an actual array
|
||||||
|
c_name = arg_name
|
||||||
|
while c_name.startswith("*"):
|
||||||
|
c_name = c_name[1:]
|
||||||
|
c_pass.append(c_name) # We don't want to dereference the array
|
||||||
|
else:
|
||||||
|
c_pass.append(arg_name)
|
||||||
|
|
||||||
|
# zig conversions
|
||||||
|
zig_type = c_to_zig_type(arg_type)
|
||||||
|
zig_name = arg_name
|
||||||
|
|
||||||
|
if depoint and zig_name.startswith("*"): # These are the arguments without pointers
|
||||||
|
zig_name = zig_name[1:]
|
||||||
|
zig_pass_name = "&" + zig_name
|
||||||
|
elif zig_name.startswith("*") and not depoint: # That's in case of an actual array
|
||||||
|
zig_name = zig_name[1:]
|
||||||
|
if zig_name.startswith("*"):
|
||||||
|
zig_name = zig_name[1:]
|
||||||
|
zig_type = "[*c][]const " + zig_type
|
||||||
|
else:
|
||||||
|
zig_type = "[]const " + zig_type
|
||||||
|
zig_pass_name = "&" + zig_name + "[0]"
|
||||||
|
else: # Normal argument i.e. float, int, etc.
|
||||||
|
zig_pass_name = zig_name
|
||||||
|
zig_arguments.append(zig_name + ": " + zig_type) # put everything together
|
||||||
|
zig_pass.append(zig_pass_name)
|
||||||
|
|
||||||
|
# These are the arguments for the extern workaround functions with pointers
|
||||||
|
arg_type = c_to_zig_type(arg_type)
|
||||||
|
arg_name, arg_type = fix_pointer(arg_name, arg_type)
|
||||||
|
zig_arguments_w.append(arg_name + ": " + arg_type) # put everything together
|
||||||
|
|
||||||
|
# Workaround function head in zig
|
||||||
|
zig_arguments_w = ", ".join(zig_arguments_w)
|
||||||
|
zig_ret_type = c_to_zig_type(return_type)
|
||||||
|
zig_func_name, zig_ret_type = fix_pointer(func_name, zig_ret_type)
|
||||||
|
zig_heads.append("pub extern fn W" + func_name + "(" + zig_arguments_w + ") " + return_type + ";")
|
||||||
|
|
||||||
|
# Create the function to call the workaround
|
||||||
|
zig_arguments = ", ".join(zig_arguments)
|
||||||
|
zig_pass = ", ".join(zig_pass)
|
||||||
|
function = "pub fn " + func_name + "(" + zig_arguments + ") " + return_type + "\n"
|
||||||
|
function += "{\n"
|
||||||
|
if return_type != "void":
|
||||||
|
function += " return W" + func_name + "(" + zig_pass + ");\n"
|
||||||
|
else:
|
||||||
|
function += " W" + func_name + "(" + zig_pass + ");\n"
|
||||||
|
function += "}\n"
|
||||||
|
zig_functions.append(function)
|
||||||
|
|
||||||
|
# Create workaround function
|
||||||
|
c_arguments = ", ".join(c_arguments)
|
||||||
|
c_pass = ", ".join(c_pass)
|
||||||
|
function = return_type + " W" + func_name + "(" + c_arguments + ")\n"
|
||||||
|
function += "{\n"
|
||||||
|
if return_type != "void":
|
||||||
|
function += " return " + func_name + "(" + c_pass + ");\n"
|
||||||
|
else:
|
||||||
|
function += " " + func_name + "(" + c_pass + ");\n"
|
||||||
|
function += "}\n"
|
||||||
|
c_functions.append(function)
|
||||||
|
|
||||||
|
zigheader = open(output_file, mode="w")
|
||||||
|
print("usingnamespace @import(\"raylib-zig.zig\");\n", file=zigheader)
|
||||||
|
|
||||||
|
print("\n".join(zig_heads), file=zigheader)
|
||||||
|
print("", file=zigheader)
|
||||||
|
print("\n".join(zig_functions), file=zigheader)
|
||||||
|
|
||||||
|
|
||||||
|
parse_header("raylib.h", "raylib-wa.zig", "RLAPI ")
|
||||||
|
parse_header("raymath.h", "raylib-zig-math.zig", "RMDEF ")
|
||||||
|
|
||||||
|
workaround = open("workaround.c", mode="w")
|
||||||
|
print("// raylib-zig (c) Nikolas Wipper 2020\n", file=workaround)
|
||||||
|
print("#include <raylib.h>", file=workaround)
|
||||||
|
print("#include <raymath.h>\n", file=workaround)
|
||||||
|
|
||||||
|
print("\n".join(c_functions), file=workaround)
|
||||||
1062
lib/raylib-wa.zig
Normal file
1062
lib/raylib-wa.zig
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,54 +1,15 @@
|
|||||||
//
|
|
||||||
// raylib-zig-math
|
|
||||||
// Zig version: 0.6.0
|
|
||||||
// Author: Nikolas Wipper
|
|
||||||
// Date: 2020-02-15
|
|
||||||
//
|
|
||||||
|
|
||||||
usingnamespace @import("raylib-zig.zig");
|
usingnamespace @import("raylib-zig.zig");
|
||||||
|
|
||||||
pub extern fn Clamp(value: f32, min: f32, max: f32) f32;
|
pub extern fn Clamp(value: f32, min: f32, max: f32) f32;
|
||||||
pub extern fn Lerp(start: f32, end: f32, amount: f32) f32;
|
pub extern fn Lerp(start: f32, end: f32, amount: f32) f32;
|
||||||
pub extern fn Vector2Zero() Vector2;
|
pub extern fn WVector2Length(v: [*c]const Vector2) float;
|
||||||
pub extern fn Vector2One() Vector2;
|
pub extern fn WVector2DotProduct(v1: [*c]const Vector2, v2: [*c]const Vector2) float;
|
||||||
pub extern fn Vector2Add(v1: Vector2, v2: Vector2) Vector2;
|
pub extern fn WVector2Distance(v1: [*c]const Vector2, v2: [*c]const Vector2) float;
|
||||||
pub extern fn Vector2Subtract(v1: Vector2, v2: Vector2) Vector2;
|
pub extern fn WVector2Angle(v1: [*c]const Vector2, v2: [*c]const Vector2) float;
|
||||||
pub extern fn Vector2Length(v: Vector2) f32;
|
pub extern fn WVector3Length(v: [*c]const Vector3) float;
|
||||||
pub extern fn Vector2DotProduct(v1: Vector2, v2: Vector2) f32;
|
pub extern fn WVector3DotProduct(v1: [*c]const Vector3, v2: [*c]const Vector3) float;
|
||||||
pub extern fn Vector2Distance(v1: Vector2, v2: Vector2) f32;
|
pub extern fn WVector3Distance(v1: [*c]const Vector3, v2: [*c]const Vector3) float;
|
||||||
pub extern fn Vector2Angle(v1: Vector2, v2: Vector2) f32;
|
pub extern fn WVector3OrthoNormalize(v1: [*c]const Vector3, v2: [*c]const Vector3) void;
|
||||||
pub extern fn Vector2Scale(v: Vector2, scale: f32) Vector2;
|
|
||||||
pub extern fn Vector2MultiplyV(v1: Vector2, v2: Vector2) Vector2;
|
|
||||||
pub extern fn Vector2Negate(v: Vector2) Vector2;
|
|
||||||
pub extern fn Vector2Divide(v: Vector2, div: f32) Vector2;
|
|
||||||
pub extern fn Vector2DivideV(v1: Vector2, v2: Vector2) Vector2;
|
|
||||||
pub extern fn Vector2Normalize(v: Vector2) Vector2;
|
|
||||||
pub extern fn Vector2Lerp(v1: Vector2, v2: Vector2, amount: f32) Vector2;
|
|
||||||
pub extern fn Vector2Rotate(v: Vector2, degs: f32) Vector2;
|
|
||||||
pub extern fn Vector3Zero() Vector3;
|
|
||||||
pub extern fn Vector3One() Vector3;
|
|
||||||
pub extern fn Vector3Add(v1: Vector3, v2: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Subtract(v1: Vector3, v2: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Scale(v: Vector3, scalar: f32) Vector3;
|
|
||||||
pub extern fn Vector3Multiply(v1: Vector3, v2: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3CrossProduct(v1: Vector3, v2: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Perpendicular(v: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Length(v: Vector3) f32;
|
|
||||||
pub extern fn Vector3DotProduct(v1: Vector3, v2: Vector3) f32;
|
|
||||||
pub extern fn Vector3Distance(v1: Vector3, v2: Vector3) f32;
|
|
||||||
pub extern fn Vector3Negate(v: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Divide(v: Vector3, div: f32) Vector3;
|
|
||||||
pub extern fn Vector3DivideV(v1: Vector3, v2: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Normalize(v: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3OrthoNormalize(v1: [*c]Vector3, v2: [*c]Vector3) c_void;
|
|
||||||
pub extern fn Vector3Transform(v: Vector3, mat: Matrix) Vector3;
|
|
||||||
pub extern fn Vector3RotateByQuaternion(v: Vector3, q: Quaternion) Vector3;
|
|
||||||
pub extern fn Vector3Lerp(v1: Vector3, v2: Vector3, amount: f32) Vector3;
|
|
||||||
pub extern fn Vector3Reflect(v: Vector3, normal: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Min(v1: Vector3, v2: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Max(v1: Vector3, v2: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3Barycenter(p: Vector3, a: Vector3, b: Vector3, c: Vector3) Vector3;
|
|
||||||
pub extern fn Vector3ToFloatV(v: Vector3) float3;
|
|
||||||
pub extern fn MatrixDeterminant(mat: Matrix) f32;
|
pub extern fn MatrixDeterminant(mat: Matrix) f32;
|
||||||
pub extern fn MatrixTrace(mat: Matrix) f32;
|
pub extern fn MatrixTrace(mat: Matrix) f32;
|
||||||
pub extern fn MatrixTranspose(mat: Matrix) Matrix;
|
pub extern fn MatrixTranspose(mat: Matrix) Matrix;
|
||||||
@ -58,8 +19,8 @@ pub extern fn MatrixIdentity() Matrix;
|
|||||||
pub extern fn MatrixAdd(left: Matrix, right: Matrix) Matrix;
|
pub extern fn MatrixAdd(left: Matrix, right: Matrix) Matrix;
|
||||||
pub extern fn MatrixSubtract(left: Matrix, right: Matrix) Matrix;
|
pub extern fn MatrixSubtract(left: Matrix, right: Matrix) Matrix;
|
||||||
pub extern fn MatrixTranslate(x: f32, y: f32, z: f32) Matrix;
|
pub extern fn MatrixTranslate(x: f32, y: f32, z: f32) Matrix;
|
||||||
pub extern fn MatrixRotate(axis: Vector3, angle: f32) Matrix;
|
pub extern fn WMatrixRotate(axis: [*c]const Vector3, angle: f32) Matrix;
|
||||||
pub extern fn MatrixRotateXYZ(ang: Vector3) Matrix;
|
pub extern fn WMatrixRotateXYZ(ang: [*c]const Vector3) Matrix;
|
||||||
pub extern fn MatrixRotateX(angle: f32) Matrix;
|
pub extern fn MatrixRotateX(angle: f32) Matrix;
|
||||||
pub extern fn MatrixRotateY(angle: f32) Matrix;
|
pub extern fn MatrixRotateY(angle: f32) Matrix;
|
||||||
pub extern fn MatrixRotateZ(angle: f32) Matrix;
|
pub extern fn MatrixRotateZ(angle: f32) Matrix;
|
||||||
@ -68,23 +29,78 @@ pub extern fn MatrixMultiply(left: Matrix, right: Matrix) Matrix;
|
|||||||
pub extern fn MatrixFrustum(left: double, right: double, bottom: double, top: double, near: double, far: double) Matrix;
|
pub extern fn MatrixFrustum(left: double, right: double, bottom: double, top: double, near: double, far: double) Matrix;
|
||||||
pub extern fn MatrixPerspective(fovy: double, aspect: double, near: double, far: double) Matrix;
|
pub extern fn MatrixPerspective(fovy: double, aspect: double, near: double, far: double) Matrix;
|
||||||
pub extern fn MatrixOrtho(left: double, right: double, bottom: double, top: double, near: double, far: double) Matrix;
|
pub extern fn MatrixOrtho(left: double, right: double, bottom: double, top: double, near: double, far: double) Matrix;
|
||||||
pub extern fn MatrixLookAt(eye: Vector3, target: Vector3, up: Vector3) Matrix;
|
pub extern fn WMatrixLookAt(eye: [*c]const Vector3, target: [*c]const Vector3, up: [*c]const Vector3) Matrix;
|
||||||
pub extern fn MatrixToFloatV(mat: Matrix) float16;
|
pub extern fn WQuaternionLength(q: [*c]const Quaternion) float;
|
||||||
pub extern fn QuaternionIdentity() Quaternion;
|
pub extern fn WQuaternionToMatrix(q: [*c]const Quaternion) Matrix;
|
||||||
pub extern fn QuaternionLength(q: Quaternion) f32;
|
pub extern fn WQuaternionToAxisAngle(q: [*c]const Quaternion, outAxis: [*c]const Vector3, outAngle: [*c]const f32) void;
|
||||||
pub extern fn QuaternionNormalize(q: Quaternion) Quaternion;
|
|
||||||
pub extern fn QuaternionInvert(q: Quaternion) Quaternion;
|
|
||||||
pub extern fn QuaternionMultiply(q1: Quaternion, q2: Quaternion) Quaternion;
|
|
||||||
pub extern fn QuaternionLerp(q1: Quaternion, q2: Quaternion, amount: f32) Quaternion;
|
|
||||||
pub extern fn QuaternionNlerp(q1: Quaternion, q2: Quaternion, amount: f32) Quaternion;
|
|
||||||
pub extern fn QuaternionSlerp(q1: Quaternion, q2: Quaternion, amount: f32) Quaternion;
|
|
||||||
pub extern fn QuaternionFromVector3ToVector3(from: Vector3, to: Vector3) Quaternion;
|
|
||||||
pub extern fn QuaternionFromMatrix(mat: Matrix) Quaternion;
|
|
||||||
pub extern fn QuaternionToMatrix(q: Quaternion) Matrix;
|
|
||||||
pub extern fn QuaternionFromAxisAngle(axis: Vector3, angle: f32) Quaternion;
|
|
||||||
pub extern fn QuaternionToAxisAngle(q: Quaternion, outAxis: [*c]Vector3, outAngle: [*c]f32) c_void;
|
|
||||||
pub extern fn QuaternionFromEuler(roll: f32, pitch: f32, yaw: f32) Quaternion;
|
|
||||||
pub extern fn QuaternionToEuler(q: Quaternion) Vector3;
|
|
||||||
pub extern fn QuaternionTransform(q: Quaternion, mat: Matrix) Quaternion;
|
|
||||||
|
|
||||||
|
pub fn Vector2Length(v: Vector2) float
|
||||||
|
{
|
||||||
|
return WVector2Length(&v);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn Vector2DotProduct(v1: Vector2, v2: Vector2) float
|
||||||
|
{
|
||||||
|
return WVector2DotProduct(&v1, &v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn Vector2Distance(v1: Vector2, v2: Vector2) float
|
||||||
|
{
|
||||||
|
return WVector2Distance(&v1, &v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn Vector2Angle(v1: Vector2, v2: Vector2) float
|
||||||
|
{
|
||||||
|
return WVector2Angle(&v1, &v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn Vector3Length(v: Vector3) float
|
||||||
|
{
|
||||||
|
return WVector3Length(&v);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn Vector3DotProduct(v1: Vector3, v2: Vector3) float
|
||||||
|
{
|
||||||
|
return WVector3DotProduct(&v1, &v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn Vector3Distance(v1: Vector3, v2: Vector3) float
|
||||||
|
{
|
||||||
|
return WVector3Distance(&v1, &v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn Vector3OrthoNormalize(v1: []const Vector3, v2: []const Vector3) void
|
||||||
|
{
|
||||||
|
WVector3OrthoNormalize(&v1[0], &v2[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn MatrixRotate(axis: Vector3, angle: f32) Matrix
|
||||||
|
{
|
||||||
|
return WMatrixRotate(&axis, angle);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn MatrixRotateXYZ(ang: Vector3) Matrix
|
||||||
|
{
|
||||||
|
return WMatrixRotateXYZ(&ang);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn MatrixLookAt(eye: Vector3, target: Vector3, up: Vector3) Matrix
|
||||||
|
{
|
||||||
|
return WMatrixLookAt(&eye, &target, &up);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn QuaternionLength(q: Quaternion) float
|
||||||
|
{
|
||||||
|
return WQuaternionLength(&q);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn QuaternionToMatrix(q: Quaternion) Matrix
|
||||||
|
{
|
||||||
|
return WQuaternionToMatrix(&q);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn QuaternionToAxisAngle(q: Quaternion, outAxis: []const Vector3, outAngle: []const f32) void
|
||||||
|
{
|
||||||
|
WQuaternionToAxisAngle(&q, &outAxis[0], &outAngle[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,6 @@
|
|||||||
// Author: Nikolas Wipper
|
// Author: Nikolas Wipper
|
||||||
// Date: 2020-02-15
|
// Date: 2020-02-15
|
||||||
//
|
//
|
||||||
const wa = @import("workaround/workaround.zig");
|
|
||||||
|
|
||||||
pub const Vector2 = extern struct {
|
pub const Vector2 = extern struct {
|
||||||
x: f32,
|
x: f32,
|
||||||
@ -730,447 +729,6 @@ pub const NPatchType = extern enum(c_int) {
|
|||||||
NPT_3PATCH_HORIZONTAL = 2,
|
NPT_3PATCH_HORIZONTAL = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub extern fn InitWindow(width: c_int, height: c_int, title: [*c]const u8) void;
|
|
||||||
pub extern fn WindowShouldClose() bool;
|
|
||||||
pub extern fn CloseWindow() void;
|
|
||||||
pub extern fn IsWindowReady() bool;
|
|
||||||
pub extern fn IsWindowMinimized() bool;
|
|
||||||
pub extern fn IsWindowResized() bool;
|
|
||||||
pub extern fn IsWindowHidden() bool;
|
|
||||||
pub extern fn IsWindowFullscreen() bool;
|
|
||||||
pub extern fn ToggleFullscreen() void;
|
|
||||||
pub extern fn UnhideWindow() void;
|
|
||||||
pub extern fn HideWindow() void;
|
|
||||||
pub extern fn SetWindowIcon(image: Image) void;
|
|
||||||
pub extern fn SetWindowTitle(title: [*c]const u8) void;
|
|
||||||
pub extern fn SetWindowPosition(x: c_int, y: c_int) void;
|
|
||||||
pub extern fn SetWindowMonitor(monitor: c_int) void;
|
|
||||||
pub extern fn SetWindowMinSize(width: c_int, height: c_int) void;
|
|
||||||
pub extern fn SetWindowSize(width: c_int, height: c_int) void;
|
|
||||||
pub extern fn GetWindowHandle() ?*c_void;
|
|
||||||
pub extern fn GetScreenWidth() c_int;
|
|
||||||
pub extern fn GetScreenHeight() c_int;
|
|
||||||
pub extern fn GetMonitorCount() c_int;
|
|
||||||
pub extern fn GetMonitorWidth(monitor: c_int) c_int;
|
|
||||||
pub extern fn GetMonitorHeight(monitor: c_int) c_int;
|
|
||||||
pub extern fn GetMonitorPhysicalWidth(monitor: c_int) c_int;
|
|
||||||
pub extern fn GetMonitorPhysicalHeight(monitor: c_int) c_int;
|
|
||||||
pub extern fn GetWindowPosition() Vector2;
|
|
||||||
pub extern fn GetMonitorName(monitor: c_int) [*c]const u8;
|
|
||||||
pub extern fn GetClipboardText() [*c]const u8;
|
|
||||||
pub extern fn SetClipboardText(text: [*c]const u8) void;
|
|
||||||
pub extern fn ShowCursor() void;
|
|
||||||
pub extern fn HideCursor() void;
|
|
||||||
pub extern fn IsCursorHidden() bool;
|
|
||||||
pub extern fn EnableCursor() void;
|
|
||||||
pub extern fn DisableCursor() void;
|
|
||||||
pub extern fn ClearBackground(color: Color) void;
|
|
||||||
pub extern fn BeginDrawing() void;
|
|
||||||
pub extern fn EndDrawing() void;
|
|
||||||
pub extern fn BeginMode2D(camera: Camera2D) void;
|
|
||||||
pub extern fn EndMode2D() void;
|
|
||||||
pub extern fn BeginMode3D(camera: Camera3D) void;
|
|
||||||
pub extern fn EndMode3D() void;
|
|
||||||
pub extern fn BeginTextureMode(target: RenderTexture2D) void;
|
|
||||||
pub extern fn EndTextureMode() void;
|
|
||||||
pub extern fn BeginScissorMode(x: c_int, y: c_int, width: c_int, height: c_int) void;
|
|
||||||
pub extern fn EndScissorMode() void;
|
|
||||||
//pub extern fn GetMouseRay(mousePosition: Vector2, camera: Camera) Ray;
|
|
||||||
pub extern fn GetCameraMatrix(camera: Camera) Matrix;
|
|
||||||
pub extern fn GetCameraMatrix2D(camera: Camera2D) Matrix;
|
|
||||||
pub extern fn GetWorldToScreen(position: Vector3, camera: Camera) Vector2;
|
|
||||||
pub extern fn GetWorldToScreenEx(position: Vector3, camera: Camera, width: c_int, height: c_int) Vector2;
|
|
||||||
pub extern fn GetWorldToScreen2D(position: Vector2, camera: Camera2D) Vector2;
|
|
||||||
pub extern fn GetScreenToWorld2D(position: Vector2, camera: Camera2D) Vector2;
|
|
||||||
pub extern fn SetTargetFPS(fps: c_int) void;
|
|
||||||
pub extern fn GetFPS() c_int;
|
|
||||||
pub extern fn GetFrameTime() f32;
|
|
||||||
pub extern fn GetTime() f64;
|
|
||||||
pub extern fn ColorToInt(color: Color) c_int;
|
|
||||||
pub extern fn ColorNormalize(color: Color) Vector4;
|
|
||||||
pub extern fn ColorFromNormalized(normalized: Vector4) Color;
|
|
||||||
pub extern fn ColorToHSV(color: Color) Vector3;
|
|
||||||
pub extern fn ColorFromHSV(hsv: Vector3) Color;
|
|
||||||
pub extern fn GetColor(hexValue: c_int) Color;
|
|
||||||
pub extern fn Fade(color: Color, alpha: f32) Color;
|
|
||||||
pub extern fn SetConfigFlags(flags: c_uint) void;
|
|
||||||
pub extern fn SetTraceLogLevel(logType: c_int) void;
|
|
||||||
pub extern fn SetTraceLogExit(logType: c_int) void;
|
|
||||||
//pub extern fn SetTraceLogCallback(callback: TraceLogCallback) void;
|
|
||||||
pub extern fn TraceLog(logType: c_int, text: [*c]const u8, ...) void;
|
|
||||||
pub extern fn TakeScreenshot(fileName: [*c]const u8) void;
|
|
||||||
pub extern fn GetRandomValue(min: c_int, max: c_int) c_int;
|
|
||||||
pub extern fn LoadFileData(fileName: [*c]const u8, bytesRead: [*c]c_uint) [*c]u8;
|
|
||||||
pub extern fn SaveFileData(fileName: [*c]const u8, data: ?*c_void, bytesToWrite: c_uint) void;
|
|
||||||
pub extern fn LoadFileText(fileName: [*c]const u8) [*c]u8;
|
|
||||||
pub extern fn SaveFileText(fileName: [*c]const u8, text: [*c]u8) void;
|
|
||||||
pub extern fn FileExists(fileName: [*c]const u8) bool;
|
|
||||||
pub extern fn IsFileExtension(fileName: [*c]const u8, ext: [*c]const u8) bool;
|
|
||||||
pub extern fn DirectoryExists(dirPath: [*c]const u8) bool;
|
|
||||||
pub extern fn GetExtension(fileName: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn GetFileName(filePath: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn GetFileNameWithoutExt(filePath: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn GetDirectoryPath(filePath: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn GetPrevDirectoryPath(dirPath: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn GetWorkingDirectory() [*c]const u8;
|
|
||||||
pub extern fn GetDirectoryFiles(dirPath: [*c]const u8, count: [*c]c_int) [*c][*c]u8;
|
|
||||||
pub extern fn ClearDirectoryFiles() void;
|
|
||||||
pub extern fn ChangeDirectory(dir: [*c]const u8) bool;
|
|
||||||
pub extern fn IsFileDropped() bool;
|
|
||||||
pub extern fn GetDroppedFiles(count: [*c]c_int) [*c][*c]u8;
|
|
||||||
pub extern fn ClearDroppedFiles() void;
|
|
||||||
pub extern fn GetFileModTime(fileName: [*c]const u8) c_long;
|
|
||||||
pub extern fn CompressData(data: [*c]u8, dataLength: c_int, compDataLength: [*c]c_int) [*c]u8;
|
|
||||||
pub extern fn DecompressData(compData: [*c]u8, compDataLength: c_int, dataLength: [*c]c_int) [*c]u8;
|
|
||||||
pub extern fn SaveStorageValue(position: c_uint, value: c_int) void;
|
|
||||||
pub extern fn LoadStorageValue(position: c_uint) c_int;
|
|
||||||
pub extern fn OpenURL(url: [*c]const u8) void;
|
|
||||||
pub extern fn IsKeyPressed(key: KeyboardKey) bool;
|
|
||||||
pub extern fn IsKeyDown(key: KeyboardKey) bool;
|
|
||||||
pub extern fn IsKeyReleased(key: KeyboardKey) bool;
|
|
||||||
pub extern fn IsKeyUp(key: KeyboardKey) bool;
|
|
||||||
pub extern fn GetKeyPressed() KeyboardKey;
|
|
||||||
pub extern fn SetExitKey(key: KeyboardKey) void;
|
|
||||||
pub extern fn IsGamepadAvailable(gamepad: c_int) bool;
|
|
||||||
pub extern fn IsGamepadName(gamepad: c_int, name: [*c]const u8) bool;
|
|
||||||
pub extern fn GetGamepadName(gamepad: c_int) [*c]const u8;
|
|
||||||
pub extern fn IsGamepadButtonPressed(gamepad: c_int, button: c_int) bool;
|
|
||||||
pub extern fn IsGamepadButtonDown(gamepad: c_int, button: c_int) bool;
|
|
||||||
pub extern fn IsGamepadButtonReleased(gamepad: c_int, button: c_int) bool;
|
|
||||||
pub extern fn IsGamepadButtonUp(gamepad: c_int, button: c_int) bool;
|
|
||||||
pub extern fn GetGamepadButtonPressed() c_int;
|
|
||||||
pub extern fn GetGamepadAxisCount(gamepad: c_int) c_int;
|
|
||||||
pub extern fn GetGamepadAxisMovement(gamepad: c_int, axis: c_int) f32;
|
|
||||||
pub extern fn IsMouseButtonPressed(button: MouseButton) bool;
|
|
||||||
pub extern fn IsMouseButtonDown(button: MouseButton) bool;
|
|
||||||
pub extern fn IsMouseButtonReleased(button: MouseButton) bool;
|
|
||||||
pub extern fn IsMouseButtonUp(button: MouseButton) bool;
|
|
||||||
pub extern fn GetMouseX() c_int;
|
|
||||||
pub extern fn GetMouseY() c_int;
|
|
||||||
pub extern fn GetMousePosition() Vector2;
|
|
||||||
pub extern fn SetMousePosition(x: c_int, y: c_int) void;
|
|
||||||
pub extern fn SetMouseOffset(offsetX: c_int, offsetY: c_int) void;
|
|
||||||
pub extern fn SetMouseScale(scaleX: f32, scaleY: f32) void;
|
|
||||||
pub extern fn GetMouseWheelMove() c_int;
|
|
||||||
pub extern fn GetTouchX() c_int;
|
|
||||||
pub extern fn GetTouchY() c_int;
|
|
||||||
pub extern fn GetTouchPosition(index: c_int) Vector2;
|
|
||||||
pub extern fn SetGesturesEnabled(gestureFlags: c_uint) void;
|
|
||||||
pub extern fn IsGestureDetected(gesture: c_int) bool;
|
|
||||||
pub extern fn GetGestureDetected() c_int;
|
|
||||||
pub extern fn GetTouchPointsCount() c_int;
|
|
||||||
pub extern fn GetGestureHoldDuration() f32;
|
|
||||||
pub extern fn GetGestureDragVector() Vector2;
|
|
||||||
pub extern fn GetGestureDragAngle() f32;
|
|
||||||
pub extern fn GetGesturePinchVector() Vector2;
|
|
||||||
pub extern fn GetGesturePinchAngle() f32;
|
|
||||||
pub extern fn SetCameraMode(camera: Camera, mode: CameraMode) void;
|
|
||||||
pub extern fn UpdateCamera(camera: [*c]Camera) void;
|
|
||||||
pub extern fn SetCameraPanControl(panKey: c_int) void;
|
|
||||||
pub extern fn SetCameraAltControl(altKey: c_int) void;
|
|
||||||
pub extern fn SetCameraSmoothZoomControl(szKey: c_int) void;
|
|
||||||
pub extern fn SetCameraMoveControls(frontKey: c_int, backKey: c_int, rightKey: c_int, leftKey: c_int, upKey: c_int, downKey: c_int) void;
|
|
||||||
//pub extern fn DrawPixel(posX: c_int, posY: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawPixelV(position: Vector2, color: Color) void;
|
|
||||||
//pub extern fn DrawLine(startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawLineV(startPos: Vector2, endPos: Vector2, color: Color) void;
|
|
||||||
//pub extern fn DrawLineEx(startPos: Vector2, endPos: Vector2, thick: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawLineStrip(points: [*c]Vector2, numPoints: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawCircle(centerX: c_int, centerY: c_int, radius: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawCircleSector(center: Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawCircleSectorLines(center: Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawCircleGradient(centerX: c_int, centerY: c_int, radius: f32, color1: Color, color2: Color) void;
|
|
||||||
//pub extern fn DrawCircleV(center: Vector2, radius: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawCircleLines(centerX: c_int, centerY: c_int, radius: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawEllipse(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawEllipseLines(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawRing(center: Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawRingLines(center: Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawRectangle(posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawRectangleV(position: Vector2, size: Vector2, color: Color) void;
|
|
||||||
//pub extern fn DrawRectangleRec(rec: Rectangle, color: Color) void;
|
|
||||||
//pub extern fn DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawRectangleGradientV(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: Color, color2: Color) void;
|
|
||||||
//pub extern fn DrawRectangleGradientH(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: Color, color2: Color) void;
|
|
||||||
//pub extern fn DrawRectangleGradientEx(rec: Rectangle, col1: Color, col2: Color, col3: Color, col4: Color) void;
|
|
||||||
//pub extern fn DrawRectangleLines(posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawRectangleLinesEx(rec: Rectangle, lineThick: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawRectangleRounded(rec: Rectangle, roundness: f32, segments: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawRectangleRoundedLines(rec: Rectangle, roundness: f32, segments: c_int, lineThick: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color) void;
|
|
||||||
//pub extern fn DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color) void;
|
|
||||||
//pub extern fn DrawTriangleFan(points: [*c]Vector2, numPoints: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawTriangleStrip(points: [*c]Vector2, pointsCount: c_int, color: Color) void;
|
|
||||||
//pub extern fn DrawPoly(center: Vector2, sides: c_int, radius: f32, rotation: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawPolyLines(center: Vector2, sides: c_int, radius: f32, rotation: f32, color: Color) void;
|
|
||||||
//pub extern fn CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle) bool;
|
|
||||||
//pub extern fn CheckCollisionCircles(center1: Vector2, radius1: f32, center2: Vector2, radius2: f32) bool;
|
|
||||||
//pub extern fn CheckCollisionCircleRec(center: Vector2, radius: f32, rec: Rectangle) bool;
|
|
||||||
//pub extern fn GetCollisionRec(rec1: Rectangle, rec2: Rectangle) Rectangle;
|
|
||||||
//pub extern fn CheckCollisionPointRec(point: Vector2, rec: Rectangle) bool;
|
|
||||||
//pub extern fn CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: f32) bool;
|
|
||||||
//pub extern fn CheckCollisionPointTriangle(point: Vector2, p1: Vector2, p2: Vector2, p3: Vector2) bool;
|
|
||||||
pub extern fn LoadImage(fileName: [*c]const u8) Image;
|
|
||||||
pub extern fn LoadImageEx(pixels: [*c]Color, width: c_int, height: c_int) Image;
|
|
||||||
pub extern fn LoadImagePro(data: ?*c_void, width: c_int, height: c_int, format: PixelFormat) Image;
|
|
||||||
pub extern fn LoadImageRaw(fileName: [*c]const u8, width: c_int, height: c_int, format: PixelFormat, headerSize: c_int) Image;
|
|
||||||
pub extern fn UnloadImage(image: Image) void;
|
|
||||||
pub extern fn ExportImage(image: Image, fileName: [*c]const u8) void;
|
|
||||||
pub extern fn ExportImageAsCode(image: Image, fileName: [*c]const u8) void;
|
|
||||||
pub extern fn GetImageData(image: Image) [*c]Color;
|
|
||||||
pub extern fn GetImageDataNormalized(image: Image) [*c]Vector4;
|
|
||||||
pub extern fn GenImageColor(width: c_int, height: c_int, color: Color) Image;
|
|
||||||
pub extern fn GenImageGradientV(width: c_int, height: c_int, top: Color, bottom: Color) Image;
|
|
||||||
pub extern fn GenImageGradientH(width: c_int, height: c_int, left: Color, right: Color) Image;
|
|
||||||
pub extern fn GenImageGradientRadial(width: c_int, height: c_int, density: f32, inner: Color, outer: Color) Image;
|
|
||||||
pub extern fn GenImageChecked(width: c_int, height: c_int, checksX: c_int, checksY: c_int, col1: Color, col2: Color) Image;
|
|
||||||
pub extern fn GenImageWhiteNoise(width: c_int, height: c_int, factor: f32) Image;
|
|
||||||
pub extern fn GenImagePerlinNoise(width: c_int, height: c_int, offsetX: c_int, offsetY: c_int, scale: f32) Image;
|
|
||||||
pub extern fn GenImageCellular(width: c_int, height: c_int, tileSize: c_int) Image;
|
|
||||||
pub extern fn ImageCopy(image: Image) Image;
|
|
||||||
pub extern fn ImageFromImage(image: Image, rec: Rectangle) Image;
|
|
||||||
pub extern fn ImageText(text: [*c]const u8, fontSize: c_int, color: Color) Image;
|
|
||||||
pub extern fn ImageTextEx(font: Font, text: [*c]const u8, fontSize: f32, spacing: f32, tint: Color) Image;
|
|
||||||
pub extern fn ImageToPOT(image: [*c]Image, fillColor: Color) void;
|
|
||||||
pub extern fn ImageFormat(image: [*c]Image, newFormat: PixelFormat) void;
|
|
||||||
pub extern fn ImageAlphaMask(image: [*c]Image, alphaMask: Image) void;
|
|
||||||
pub extern fn ImageAlphaClear(image: [*c]Image, color: Color, threshold: f32) void;
|
|
||||||
pub extern fn ImageAlphaCrop(image: [*c]Image, threshold: f32) void;
|
|
||||||
pub extern fn ImageAlphaPremultiply(image: [*c]Image) void;
|
|
||||||
pub extern fn ImageCrop(image: [*c]Image, crop: Rectangle) void;
|
|
||||||
pub extern fn ImageResize(image: [*c]Image, newWidth: c_int, newHeight: c_int) void;
|
|
||||||
pub extern fn ImageResizeNN(image: [*c]Image, newWidth: c_int, newHeight: c_int) void;
|
|
||||||
pub extern fn ImageResizeCanvas(image: [*c]Image, newWidth: c_int, newHeight: c_int, offsetX: c_int, offsetY: c_int, color: Color) void;
|
|
||||||
pub extern fn ImageMipmaps(image: [*c]Image) void;
|
|
||||||
pub extern fn ImageDither(image: [*c]Image, rBpp: c_int, gBpp: c_int, bBpp: c_int, aBpp: c_int) void;
|
|
||||||
pub extern fn ImageFlipVertical(image: [*c]Image) void;
|
|
||||||
pub extern fn ImageFlipHorizontal(image: [*c]Image) void;
|
|
||||||
pub extern fn ImageRotateCW(image: [*c]Image) void;
|
|
||||||
pub extern fn ImageRotateCCW(image: [*c]Image) void;
|
|
||||||
pub extern fn ImageColorTint(image: [*c]Image, color: Color) void;
|
|
||||||
pub extern fn ImageColorInvert(image: [*c]Image) void;
|
|
||||||
pub extern fn ImageColorGrayscale(image: [*c]Image) void;
|
|
||||||
pub extern fn ImageColorContrast(image: [*c]Image, contrast: f32) void;
|
|
||||||
pub extern fn ImageColorBrightness(image: [*c]Image, brightness: c_int) void;
|
|
||||||
pub extern fn ImageColorReplace(image: [*c]Image, color: Color, replace: Color) void;
|
|
||||||
pub extern fn ImageExtractPalette(image: Image, maxPaletteSize: c_int, extractCount: [*c]c_int) [*c]Color;
|
|
||||||
pub extern fn GetImageAlphaBorder(image: Image, threshold: f32) Rectangle;
|
|
||||||
pub extern fn ImageClearBackground(dst: [*c]Image, color: Color) void;
|
|
||||||
pub extern fn ImageDrawPixel(dst: [*c]Image, posX: c_int, posY: c_int, color: Color) void;
|
|
||||||
pub extern fn ImageDrawPixelV(dst: [*c]Image, position: Vector2, color: Color) void;
|
|
||||||
pub extern fn ImageDrawLine(dst: [*c]Image, startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: Color) void;
|
|
||||||
pub extern fn ImageDrawLineV(dst: [*c]Image, start: Vector2, end: Vector2, color: Color) void;
|
|
||||||
pub extern fn ImageDrawCircle(dst: [*c]Image, centerX: c_int, centerY: c_int, radius: c_int, color: Color) void;
|
|
||||||
pub extern fn ImageDrawCircleV(dst: [*c]Image, center: Vector2, radius: c_int, color: Color) void;
|
|
||||||
pub extern fn ImageDrawRectangle(dst: [*c]Image, posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void;
|
|
||||||
pub extern fn ImageDrawRectangleV(dst: [*c]Image, position: Vector2, size: Vector2, color: Color) void;
|
|
||||||
pub extern fn ImageDrawRectangleRec(dst: [*c]Image, rec: Rectangle, color: Color) void;
|
|
||||||
pub extern fn ImageDrawRectangleLines(dst: [*c]Image, rec: Rectangle, thick: c_int, color: Color) void;
|
|
||||||
pub extern fn ImageDraw(dst: [*c]Image, src: Image, srcRec: Rectangle, dstRec: Rectangle, tint: Color) void;
|
|
||||||
pub extern fn ImageDrawText(dst: [*c]Image, position: Vector2, text: [*c]const u8, fontSize: c_int, color: Color) void;
|
|
||||||
pub extern fn ImageDrawTextEx(dst: [*c]Image, position: Vector2, font: Font, text: [*c]const u8, fontSize: f32, spacing: f32, color: Color) void;
|
|
||||||
pub extern fn LoadTexture(fileName: [*c]const u8) Texture2D;
|
|
||||||
pub extern fn LoadTextureFromImage(image: Image) Texture2D;
|
|
||||||
pub extern fn LoadTextureCubemap(image: Image, layoutType: c_int) TextureCubemap;
|
|
||||||
pub extern fn LoadRenderTexture(width: c_int, height: c_int) RenderTexture2D;
|
|
||||||
pub extern fn UnloadTexture(texture: Texture2D) void;
|
|
||||||
pub extern fn UnloadRenderTexture(target: RenderTexture2D) void;
|
|
||||||
pub extern fn UpdateTexture(texture: Texture2D, pixels: ?*c_void) void;
|
|
||||||
pub extern fn GetTextureData(texture: Texture2D) Image;
|
|
||||||
pub extern fn GetScreenData() Image;
|
|
||||||
pub extern fn GenTextureMipmaps(texture: [*c]Texture2D) void;
|
|
||||||
pub extern fn SetTextureFilter(texture: Texture2D, filterMode: c_int) void;
|
|
||||||
pub extern fn SetTextureWrap(texture: Texture2D, wrapMode: c_int) void;
|
|
||||||
pub extern fn DrawTexture(texture: Texture2D, posX: c_int, posY: c_int, tint: Color) void;
|
|
||||||
pub extern fn DrawTextureV(texture: Texture2D, position: Vector2, tint: Color) void;
|
|
||||||
pub extern fn DrawTextureEx(texture: Texture2D, position: Vector2, rotation: f32, scale: f32, tint: Color) void;
|
|
||||||
pub extern fn DrawTextureRec(texture: Texture2D, sourceRec: Rectangle, position: Vector2, tint: Color) void;
|
|
||||||
pub extern fn DrawTextureQuad(texture: Texture2D, tiling: Vector2, offset: Vector2, quad: Rectangle, tint: Color) void;
|
|
||||||
pub extern fn DrawTexturePro(texture: Texture2D, sourceRec: Rectangle, destRec: Rectangle, origin: Vector2, rotation: f32, tint: Color) void;
|
|
||||||
pub extern fn DrawTextureNPatch(texture: Texture2D, nPatchInfo: NPatchInfo, destRec: Rectangle, origin: Vector2, rotation: f32, tint: Color) void;
|
|
||||||
pub extern fn GetPixelDataSize(width: c_int, height: c_int, format: PixelFormat) c_int;
|
|
||||||
pub extern fn GetFontDefault() Font;
|
|
||||||
pub extern fn LoadFont(fileName: [*c]const u8) Font;
|
|
||||||
pub extern fn LoadFontEx(fileName: [*c]const u8, fontSize: c_int, fontChars: [*c]c_int, charsCount: c_int) Font;
|
|
||||||
pub extern fn LoadFontFromImage(image: Image, key: Color, firstChar: c_int) Font;
|
|
||||||
pub extern fn LoadFontData(fileName: [*c]const u8, fontSize: c_int, fontChars: [*c]c_int, charsCount: c_int, type: c_int) [*c]CharInfo;
|
|
||||||
pub extern fn GenImageFontAtlas(chars: [*c]const CharInfo, recs: [*c][*c]Rectangle, charsCount: c_int, fontSize: c_int, padding: c_int, packMethod: c_int) Image;
|
|
||||||
pub extern fn UnloadFont(font: Font) void;
|
|
||||||
pub extern fn DrawFPS(posX: c_int, posY: c_int) void;
|
|
||||||
pub extern fn DrawText(text: [*c]const u8, posX: c_int, posY: c_int, fontSize: c_int, color: Color) void;
|
|
||||||
pub extern fn DrawTextEx(font: Font, text: [*c]const u8, position: Vector2, fontSize: f32, spacing: f32, tint: Color) void;
|
|
||||||
pub extern fn DrawTextRec(font: Font, text: [*c]const u8, rec: Rectangle, fontSize: f32, spacing: f32, wordWrap: bool, tint: Color) void;
|
|
||||||
pub extern fn DrawTextRecEx(font: Font, text: [*c]const u8, rec: Rectangle, fontSize: f32, spacing: f32, wordWrap: bool, tint: Color, selectStart: c_int, selectLength: c_int, selectTint: Color, selectBackTint: Color) void;
|
|
||||||
pub extern fn DrawTextCodepoint(font: Font, codepoint: c_int, position: Vector2, scale: f32, tint: Color) void;
|
|
||||||
pub extern fn MeasureText(text: [*c]const u8, fontSize: c_int) c_int;
|
|
||||||
pub extern fn MeasureTextEx(font: Font, text: [*c]const u8, fontSize: f32, spacing: f32) Vector2;
|
|
||||||
pub extern fn GetGlyphIndex(font: Font, codepoint: c_int) c_int;
|
|
||||||
pub extern fn TextCopy(dst: [*c]u8, src: [*c]const u8) c_int;
|
|
||||||
pub extern fn TextIsEqual(text1: [*c]const u8, text2: [*c]const u8) bool;
|
|
||||||
pub extern fn TextLength(text: [*c]const u8) c_uint;
|
|
||||||
pub extern fn TextFormat(text: [*c]const u8, ...) [*c]const u8;
|
|
||||||
pub extern fn TextSubtext(text: [*c]const u8, position: c_int, length: c_int) [*c]const u8;
|
|
||||||
pub extern fn TextReplace(text: [*c]u8, replace: [*c]const u8, by: [*c]const u8) [*c]u8;
|
|
||||||
pub extern fn TextInsert(text: [*c]const u8, insert: [*c]const u8, position: c_int) [*c]u8;
|
|
||||||
pub extern fn TextJoin(textList: [*c][*c]const u8, count: c_int, delimiter: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn TextSplit(text: [*c]const u8, delimiter: u8, count: [*c]c_int) [*c][*c]const u8;
|
|
||||||
pub extern fn TextAppend(text: [*c]u8, append: [*c]const u8, position: [*c]c_int) void;
|
|
||||||
pub extern fn TextFindIndex(text: [*c]const u8, find: [*c]const u8) c_int;
|
|
||||||
pub extern fn TextToUpper(text: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn TextToLower(text: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn TextToPascal(text: [*c]const u8) [*c]const u8;
|
|
||||||
pub extern fn TextToInteger(text: [*c]const u8) c_int;
|
|
||||||
pub extern fn TextToUtf8(codepoints: [*c]c_int, length: c_int) [*c]u8;
|
|
||||||
pub extern fn GetCodepoints(text: [*c]const u8, count: [*c]c_int) [*c]c_int;
|
|
||||||
pub extern fn GetCodepointsCount(text: [*c]const u8) c_int;
|
|
||||||
pub extern fn GetNextCodepoint(text: [*c]const u8, bytesProcessed: [*c]c_int) c_int;
|
|
||||||
pub extern fn CodepointToUtf8(codepoint: c_int, byteLength: [*c]c_int) [*c]const u8;
|
|
||||||
pub extern fn DrawLine3D(startPos: Vector3, endPos: Vector3, color: Color) void;
|
|
||||||
pub extern fn DrawPoint3D(position: Vector3, color: Color) void;
|
|
||||||
pub extern fn DrawCircle3D(center: Vector3, radius: f32, rotationAxis: Vector3, rotationAngle: f32, color: Color) void;
|
|
||||||
pub extern fn DrawCube(position: Vector3, width: f32, height: f32, length: f32, color: Color) void;
|
|
||||||
pub extern fn DrawCubeV(position: Vector3, size: Vector3, color: Color) void;
|
|
||||||
pub extern fn DrawCubeWires(position: Vector3, width: f32, height: f32, length: f32, color: Color) void;
|
|
||||||
pub extern fn DrawCubeWiresV(position: Vector3, size: Vector3, color: Color) void;
|
|
||||||
pub extern fn DrawCubeTexture(texture: Texture2D, position: Vector3, width: f32, height: f32, length: f32, color: Color) void;
|
|
||||||
//pub extern fn DrawSphere(centerPos: Vector3, radius: f32, color: Color) void;
|
|
||||||
pub extern fn DrawSphereEx(centerPos: Vector3, radius: f32, rings: c_int, slices: c_int, color: Color) void;
|
|
||||||
pub extern fn DrawSphereWires(centerPos: Vector3, radius: f32, rings: c_int, slices: c_int, color: Color) void;
|
|
||||||
pub extern fn DrawCylinder(position: Vector3, radiusTop: f32, radiusBottom: f32, height: f32, slices: c_int, color: Color) void;
|
|
||||||
pub extern fn DrawCylinderWires(position: Vector3, radiusTop: f32, radiusBottom: f32, height: f32, slices: c_int, color: Color) void;
|
|
||||||
pub extern fn DrawPlane(centerPos: Vector3, size: Vector2, color: Color) void;
|
|
||||||
//pub extern fn DrawRay(ray: Ray, color: Color) void;
|
|
||||||
pub extern fn DrawGrid(slices: c_int, spacing: f32) void;
|
|
||||||
pub extern fn DrawGizmo(position: Vector3) void;
|
|
||||||
pub extern fn LoadModel(fileName: [*c]const u8) Model;
|
|
||||||
pub extern fn LoadModelFromMesh(mesh: Mesh) Model;
|
|
||||||
pub extern fn UnloadModel(model: Model) void;
|
|
||||||
pub extern fn LoadMeshes(fileName: [*c]const u8, meshCount: [*c]c_int) [*c]Mesh;
|
|
||||||
pub extern fn ExportMesh(mesh: Mesh, fileName: [*c]const u8) void;
|
|
||||||
pub extern fn UnloadMesh(mesh: Mesh) void;
|
|
||||||
pub extern fn LoadMaterials(fileName: [*c]const u8, materialCount: [*c]c_int) [*c]Material;
|
|
||||||
pub extern fn LoadMaterialDefault() Material;
|
|
||||||
pub extern fn UnloadMaterial(material: Material) void;
|
|
||||||
pub extern fn SetMaterialTexture(material: [*c]Material, mapType: c_int, texture: Texture2D) void;
|
|
||||||
pub extern fn SetModelMeshMaterial(model: [*c]Model, meshId: c_int, materialId: c_int) void;
|
|
||||||
pub extern fn LoadModelAnimations(fileName: [*c]const u8, animsCount: [*c]c_int) [*c]ModelAnimation;
|
|
||||||
pub extern fn UpdateModelAnimation(model: Model, anim: ModelAnimation, frame: c_int) void;
|
|
||||||
pub extern fn UnloadModelAnimation(anim: ModelAnimation) void;
|
|
||||||
pub extern fn IsModelAnimationValid(model: Model, anim: ModelAnimation) bool;
|
|
||||||
pub extern fn GenMeshPoly(sides: c_int, radius: f32) Mesh;
|
|
||||||
pub extern fn GenMeshPlane(width: f32, length: f32, resX: c_int, resZ: c_int) Mesh;
|
|
||||||
pub extern fn GenMeshCube(width: f32, height: f32, length: f32) Mesh;
|
|
||||||
pub extern fn GenMeshSphere(radius: f32, rings: c_int, slices: c_int) Mesh;
|
|
||||||
pub extern fn GenMeshHemiSphere(radius: f32, rings: c_int, slices: c_int) Mesh;
|
|
||||||
pub extern fn GenMeshCylinder(radius: f32, height: f32, slices: c_int) Mesh;
|
|
||||||
pub extern fn GenMeshTorus(radius: f32, size: f32, radSeg: c_int, sides: c_int) Mesh;
|
|
||||||
pub extern fn GenMeshKnot(radius: f32, size: f32, radSeg: c_int, sides: c_int) Mesh;
|
|
||||||
pub extern fn GenMeshHeightmap(heightmap: Image, size: Vector3) Mesh;
|
|
||||||
pub extern fn GenMeshCubicmap(cubicmap: Image, cubeSize: Vector3) Mesh;
|
|
||||||
pub extern fn MeshBoundingBox(mesh: Mesh) BoundingBox;
|
|
||||||
pub extern fn MeshTangents(mesh: [*c]Mesh) void;
|
|
||||||
pub extern fn MeshBinormals(mesh: [*c]Mesh) void;
|
|
||||||
pub extern fn DrawModel(model: Model, position: Vector3, scale: f32, tint: Color) void;
|
|
||||||
pub extern fn DrawModelEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color) void;
|
|
||||||
pub extern fn DrawModelWires(model: Model, position: Vector3, scale: f32, tint: Color) void;
|
|
||||||
pub extern fn DrawModelWiresEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color) void;
|
|
||||||
pub extern fn DrawBoundingBox(box: BoundingBox, color: Color) void;
|
|
||||||
pub extern fn DrawBillboard(camera: Camera, texture: Texture2D, center: Vector3, size: f32, tint: Color) void;
|
|
||||||
pub extern fn DrawBillboardRec(camera: Camera, texture: Texture2D, sourceRec: Rectangle, center: Vector3, size: f32, tint: Color) void;
|
|
||||||
pub extern fn CheckCollisionSpheres(centerA: Vector3, radiusA: f32, centerB: Vector3, radiusB: f32) bool;
|
|
||||||
pub extern fn CheckCollisionBoxes(box1: BoundingBox, box2: BoundingBox) bool;
|
|
||||||
pub extern fn CheckCollisionBoxSphere(box: BoundingBox, center: Vector3, radius: f32) bool;
|
|
||||||
pub extern fn CheckCollisionRaySphere(ray: Ray, center: Vector3, radius: f32) bool;
|
|
||||||
pub extern fn CheckCollisionRaySphereEx(ray: Ray, center: Vector3, radius: f32, collisionPoint: [*c]Vector3) bool;
|
|
||||||
pub extern fn CheckCollisionRayBox(ray: Ray, box: BoundingBox) bool;
|
|
||||||
pub extern fn GetCollisionRayModel(ray: Ray, model: Model) RayHitInfo;
|
|
||||||
pub extern fn GetCollisionRayTriangle(ray: Ray, p1: Vector3, p2: Vector3, p3: Vector3) RayHitInfo;
|
|
||||||
pub extern fn GetCollisionRayGround(ray: Ray, groundHeight: f32) RayHitInfo;
|
|
||||||
pub extern fn LoadShader(vsFileName: [*c]const u8, fsFileName: [*c]const u8) Shader;
|
|
||||||
pub extern fn LoadShaderCode(vsCode: [*c]const u8, fsCode: [*c]const u8) Shader;
|
|
||||||
pub extern fn UnloadShader(shader: Shader) void;
|
|
||||||
pub extern fn GetShaderDefault() Shader;
|
|
||||||
pub extern fn GetTextureDefault() Texture2D;
|
|
||||||
pub extern fn GetShapesTexture() Texture2D;
|
|
||||||
pub extern fn GetShapesTextureRec() Rectangle;
|
|
||||||
pub extern fn SetShapesTexture(texture: Texture2D, source: Rectangle) void;
|
|
||||||
pub extern fn GetShaderLocation(shader: Shader, uniformName: [*c]const u8) c_int;
|
|
||||||
pub extern fn SetShaderValue(shader: Shader, uniformLoc: c_int, value: ?*c_void, uniformType: c_int) void;
|
|
||||||
pub extern fn SetShaderValueV(shader: Shader, uniformLoc: c_int, value: ?*c_void, uniformType: c_int, count: c_int) void;
|
|
||||||
pub extern fn SetShaderValueMatrix(shader: Shader, uniformLoc: c_int, mat: Matrix) void;
|
|
||||||
pub extern fn SetShaderValueTexture(shader: Shader, uniformLoc: c_int, texture: Texture2D) void;
|
|
||||||
pub extern fn SetMatrixProjection(proj: Matrix) void;
|
|
||||||
pub extern fn SetMatrixModelview(view: Matrix) void;
|
|
||||||
pub extern fn GetMatrixModelview() Matrix;
|
|
||||||
pub extern fn GetMatrixProjection() Matrix;
|
|
||||||
pub extern fn GenTextureCubemap(shader: Shader, map: Texture2D, size: c_int) Texture2D;
|
|
||||||
pub extern fn GenTextureIrradiance(shader: Shader, cubemap: Texture2D, size: c_int) Texture2D;
|
|
||||||
pub extern fn GenTexturePrefilter(shader: Shader, cubemap: Texture2D, size: c_int) Texture2D;
|
|
||||||
pub extern fn GenTextureBRDF(shader: Shader, size: c_int) Texture2D;
|
|
||||||
pub extern fn BeginShaderMode(shader: Shader) void;
|
|
||||||
pub extern fn EndShaderMode() void;
|
|
||||||
pub extern fn BeginBlendMode(mode: c_int) void;
|
|
||||||
pub extern fn EndBlendMode() void;
|
|
||||||
pub extern fn InitVrSimulator() void;
|
|
||||||
pub extern fn CloseVrSimulator() void;
|
|
||||||
pub extern fn UpdateVrTracking(camera: [*c]Camera) void;
|
|
||||||
pub extern fn SetVrConfiguration(info: VrDeviceInfo, distortion: Shader) void;
|
|
||||||
pub extern fn IsVrSimulatorReady() bool;
|
|
||||||
pub extern fn ToggleVrMode() void;
|
|
||||||
pub extern fn BeginVrDrawing() void;
|
|
||||||
pub extern fn EndVrDrawing() void;
|
|
||||||
pub extern fn InitAudioDevice() void;
|
|
||||||
pub extern fn CloseAudioDevice() void;
|
|
||||||
pub extern fn IsAudioDeviceReady() bool;
|
|
||||||
pub extern fn SetMasterVolume(volume: f32) void;
|
|
||||||
pub extern fn LoadWave(fileName: [*c]const u8) Wave;
|
|
||||||
pub extern fn LoadSound(fileName: [*c]const u8) Sound;
|
|
||||||
pub extern fn LoadSoundFromWave(wave: Wave) Sound;
|
|
||||||
pub extern fn UpdateSound(sound: Sound, data: ?*c_void, samplesCount: c_int) void;
|
|
||||||
pub extern fn UnloadWave(wave: Wave) void;
|
|
||||||
pub extern fn UnloadSound(sound: Sound) void;
|
|
||||||
pub extern fn ExportWave(wave: Wave, fileName: [*c]const u8) void;
|
|
||||||
pub extern fn ExportWaveAsCode(wave: Wave, fileName: [*c]const u8) void;
|
|
||||||
pub extern fn PlaySound(sound: Sound) void;
|
|
||||||
pub extern fn StopSound(sound: Sound) void;
|
|
||||||
pub extern fn PauseSound(sound: Sound) void;
|
|
||||||
pub extern fn ResumeSound(sound: Sound) void;
|
|
||||||
pub extern fn PlaySoundMulti(sound: Sound) void;
|
|
||||||
pub extern fn StopSoundMulti() void;
|
|
||||||
pub extern fn GetSoundsPlaying() c_int;
|
|
||||||
pub extern fn IsSoundPlaying(sound: Sound) bool;
|
|
||||||
pub extern fn SetSoundVolume(sound: Sound, volume: f32) void;
|
|
||||||
pub extern fn SetSoundPitch(sound: Sound, pitch: f32) void;
|
|
||||||
pub extern fn WaveFormat(wave: [*c]Wave, sampleRate: c_int, sampleSize: c_int, channels: c_int) void;
|
|
||||||
pub extern fn WaveCopy(wave: Wave) Wave;
|
|
||||||
pub extern fn WaveCrop(wave: [*c]Wave, initSample: c_int, finalSample: c_int) void;
|
|
||||||
pub extern fn GetWaveData(wave: Wave) [*c]f32;
|
|
||||||
pub extern fn LoadMusicStream(fileName: [*c]const u8) Music;
|
|
||||||
pub extern fn UnloadMusicStream(music: Music) void;
|
|
||||||
pub extern fn PlayMusicStream(music: Music) void;
|
|
||||||
pub extern fn UpdateMusicStream(music: Music) void;
|
|
||||||
pub extern fn StopMusicStream(music: Music) void;
|
|
||||||
pub extern fn PauseMusicStream(music: Music) void;
|
|
||||||
pub extern fn ResumeMusicStream(music: Music) void;
|
|
||||||
pub extern fn IsMusicPlaying(music: Music) bool;
|
|
||||||
pub extern fn SetMusicVolume(music: Music, volume: f32) void;
|
|
||||||
pub extern fn SetMusicPitch(music: Music, pitch: f32) void;
|
|
||||||
pub extern fn SetMusicLoopCount(music: Music, count: c_int) void;
|
|
||||||
pub extern fn GetMusicTimeLength(music: Music) f32;
|
|
||||||
pub extern fn GetMusicTimePlayed(music: Music) f32;
|
|
||||||
pub extern fn InitAudioStream(sampleRate: c_uint, sampleSize: c_uint, channels: c_uint) AudioStream;
|
|
||||||
pub extern fn UpdateAudioStream(stream: AudioStream, data: ?*c_void, samplesCount: c_int) void;
|
|
||||||
pub extern fn CloseAudioStream(stream: AudioStream) void;
|
|
||||||
pub extern fn IsAudioStreamProcessed(stream: AudioStream) bool;
|
|
||||||
pub extern fn PlayAudioStream(stream: AudioStream) void;
|
|
||||||
pub extern fn PauseAudioStream(stream: AudioStream) void;
|
|
||||||
pub extern fn ResumeAudioStream(stream: AudioStream) void;
|
|
||||||
pub extern fn IsAudioStreamPlaying(stream: AudioStream) bool;
|
|
||||||
pub extern fn StopAudioStream(stream: AudioStream) void;
|
|
||||||
pub extern fn SetAudioStreamVolume(stream: AudioStream, volume: f32) void;
|
|
||||||
pub extern fn SetAudioStreamPitch(stream: AudioStream, pitch: f32) void;
|
|
||||||
|
|
||||||
pub const MAP_DIFFUSE = MaterialMapType.MAP_ALBEDO;
|
pub const MAP_DIFFUSE = MaterialMapType.MAP_ALBEDO;
|
||||||
pub const MAP_SPECULAR = MaterialMapType.MAP_METALNESS;
|
pub const MAP_SPECULAR = MaterialMapType.MAP_METALNESS;
|
||||||
pub const LOC_MAP_SPECULAR = LOC_MAP_METALNESS;
|
pub const LOC_MAP_SPECULAR = LOC_MAP_METALNESS;
|
||||||
@ -1187,262 +745,4 @@ pub const SubText = TextSubtext;
|
|||||||
pub const ShowWindow = UnhideWindow;
|
pub const ShowWindow = UnhideWindow;
|
||||||
pub const FormatText = TextFormat;
|
pub const FormatText = TextFormat;
|
||||||
|
|
||||||
// ---------- WORKAROUND ----------
|
pub usingnamespace @import("raylib-wa.zig");
|
||||||
pub extern fn WGetMouseRay(mousePosition: [*c]const Vector2, camera: Camera) Ray;
|
|
||||||
pub extern fn WDrawPixel(posX: c_int, posY: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawPixelV(position: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLine(startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLineV(startPos: [*c]const Vector2, endPos: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLineEx(startPos: [*c]const Vector2, endPos: [*c]const Vector2, thick: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLineBezier(startPos: [*c]const Vector2, endPos: [*c]const Vector2, thick: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLineStrip(points: [*c]const Vector2, numPoints: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircle(centerX: c_int, centerY: c_int, radius: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleSector(center: [*c]const Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleSectorLines(center: [*c]const Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleGradient(centerX: c_int, centerY: c_int, radius: f32, color1: [*c]const Color, color2: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleV(center: [*c]const Vector2, radius: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleLines(centerX: c_int, centerY: c_int, radius: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawEllipse(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawEllipseLines(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRing(center: [*c]const Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRingLines(center: [*c]const Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangle(posX: c_int, posY: c_int, width: c_int, height: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleV(position: [*c]const Vector2, size: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleRec(rec: [*c]const Rectangle, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectanglePro(rec: [*c]const Rectangle, origin: [*c]const Vector2, rotation: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleGradientV(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: [*c]const Color, color2: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleGradientH(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: [*c]const Color, color2: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleGradientEx(rec: [*c]const Rectangle, col1: [*c]const Color, col2: [*c]const Color, col3: [*c]const Color, col4: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleLines(posX: c_int, posY: c_int, width: c_int, height: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleLinesEx(rec: [*c]const Rectangle, lineThick: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleRounded(rec: [*c]const Rectangle, roundness: f32, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleRoundedLines(rec: [*c]const Rectangle, roundness: f32, segments: c_int, lineThick: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawTriangle(v1: [*c]const Vector2, v2: [*c]const Vector2, v3: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawTriangleLines(v1: [*c]const Vector2, v2: [*c]const Vector2, v3: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawTriangleFan(points: [*c]const Vector2, numPoints: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawTriangleStrip(points: [*c]const Vector2, pointsCount: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawPoly(center: [*c]const Vector2, sides: c_int, radius: f32, rotation: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawPolyLines(center: [*c]const Vector2, sides: c_int, radius: f32, rotation: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WCheckCollisionRecs(rec1: [*c]const Rectangle, rec2: [*c]const Rectangle) bool;
|
|
||||||
pub extern fn WCheckCollisionCircles(center1: [*c]const Vector2, radius1: f32, center2: [*c]const Vector2, radius2: f32) bool;
|
|
||||||
pub extern fn WCheckCollisionCircleRec(center: [*c]const Vector2, radius: f32, rec: [*c]const Rectangle) bool;
|
|
||||||
pub extern fn WCheckCollisionPointRec(point: [*c]const Vector2, rec: [*c]const Rectangle) bool;
|
|
||||||
pub extern fn WCheckCollisionPointCircle(point: [*c]const Vector2, center: [*c]const Vector2, radius: f32) bool;
|
|
||||||
pub extern fn WCheckCollisionPointTriangle(point: [*c]const Vector2, p1: [*c]const Vector2, p2: [*c]const Vector2, p3: [*c]const Vector2) bool;
|
|
||||||
pub extern fn WDrawSphere(centerPos: [*c]const Vector3, radius: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRay(ray: Ray, color: [*c]const Color) void;
|
|
||||||
|
|
||||||
pub fn GetMouseRay(mousePosition: Vector2, camera: Camera) Ray
|
|
||||||
{
|
|
||||||
return WGetMouseRay(&mousePosition, camera);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawPixel(posX: c_int, posY: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawPixel(posX, posY, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawPixelV(position: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawPixelV(&position, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLine(startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLine(startPosX, startPosY, endPosX, endPosY, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLineV(startPos: Vector2, endPos: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLineV(&startPos, &endPos, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLineEx(startPos: Vector2, endPos: Vector2, thick: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLineEx(&startPos, &endPos, thick, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLineBezier(&startPos, &endPos, thick, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLineStrip(points: []const Vector2, numPoints: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLineStrip(&points[0], numPoints, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircle(centerX: c_int, centerY: c_int, radius: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircle(centerX, centerY, radius, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleSector(center: Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleSector(¢er, radius, startAngle, endAngle, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleSectorLines(center: Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleSectorLines(¢er, radius, startAngle, endAngle, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleGradient(centerX: c_int, centerY: c_int, radius: f32, color1: Color, color2: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleGradient(centerX, centerY, radius, &color1, &color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleV(center: Vector2, radius: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleV(¢er, radius, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleLines(centerX: c_int, centerY: c_int, radius: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleLines(centerX, centerY, radius, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawEllipse(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawEllipse(centerX, centerY, radiusH, radiusV, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawEllipseLines(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawEllipseLines(centerX, centerY, radiusH, radiusV, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRing(center: Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRing(¢er, innerRadius, outerRadius, startAngle, endAngle, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRingLines(center: Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRingLines(¢er, innerRadius, outerRadius, startAngle, endAngle, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangle(posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangle(posX, posY, width, height, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleV(position: Vector2, size: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleV(&position, &size, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleRec(rec: Rectangle, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleRec(&rec, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectanglePro(&rec, &origin, rotation, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleGradientV(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: Color, color2: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleGradientV(posX, posY, width, height, &color1, &color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleGradientH(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: Color, color2: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleGradientH(posX, posY, width, height, &color1, &color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleGradientEx(rec: Rectangle, col1: Color, col2: Color, col3: Color, col4: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleGradientEx(&rec, &col1, &col2, &col3, &col4);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleLines(posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleLines(posX, posY, width, height, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleLinesEx(rec: Rectangle, lineThick: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleLinesEx(&rec, lineThick, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleRounded(rec: Rectangle, roundness: f32, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleRounded(&rec, roundness, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleRoundedLines(rec: Rectangle, roundness: f32, segments: c_int, lineThick: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleRoundedLines(&rec, roundness, segments, lineThick, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawTriangle(&v1, &v2, &v3, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawTriangleLines(&v1, &v2, &v3, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawTriangleFan(points: []const Vector2, numPoints: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawTriangleFan(&points[0], numPoints, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawTriangleStrip(points: []const Vector2, pointsCount: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawTriangleStrip(&points[0], pointsCount, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawPoly(center: Vector2, sides: c_int, radius: f32, rotation: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawPoly(¢er, sides, radius, rotation, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawPolyLines(center: Vector2, sides: c_int, radius: f32, rotation: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawPolyLines(¢er, sides, radius, rotation, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionRecs(&rec1, &rec2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionCircles(center1: Vector2, radius1: f32, center2: Vector2, radius2: f32) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionCircles(¢er1, radius1, ¢er2, radius2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionCircleRec(center: Vector2, radius: f32, rec: Rectangle) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionCircleRec(¢er, radius, &rec);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionPointRec(point: Vector2, rec: Rectangle) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionPointRec(&point, &rec);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: f32) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionPointCircle(&point, ¢er, radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionPointTriangle(point: Vector2, p1: Vector2, p2: Vector2, p3: Vector2) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionPointTriangle(&point, &p1, &p2, &p3);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawSphere(centerPos: Vector3, radius: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawSphere(¢erPos, radius, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRay(ray: Ray, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRay(ray, &color);
|
|
||||||
}
|
|
||||||
|
|||||||
720
lib/workaround.c
Normal file
720
lib/workaround.c
Normal file
@ -0,0 +1,720 @@
|
|||||||
|
// raylib-zig (c) Nikolas Wipper 2020
|
||||||
|
|
||||||
|
#include <raylib.h>
|
||||||
|
#include <raymath.h>
|
||||||
|
|
||||||
|
void WClearBackground(Color *color)
|
||||||
|
{
|
||||||
|
ClearBackground(*color);
|
||||||
|
}
|
||||||
|
|
||||||
|
Ray WGetMouseRay(Vector2 *mousePosition, Camera camera)
|
||||||
|
{
|
||||||
|
return GetMouseRay(*mousePosition, camera);
|
||||||
|
}
|
||||||
|
|
||||||
|
int WColorToInt(Color *color)
|
||||||
|
{
|
||||||
|
return ColorToInt(*color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawPixel(int posX, int posY, Color *color)
|
||||||
|
{
|
||||||
|
DrawPixel(posX, posY, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawPixelV(Vector2 *position, Color *color)
|
||||||
|
{
|
||||||
|
DrawPixelV(*position, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color *color)
|
||||||
|
{
|
||||||
|
DrawLine(startPosX, startPosY, endPosX, endPosY, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawLineV(Vector2 *startPos, Vector2 *endPos, Color *color)
|
||||||
|
{
|
||||||
|
DrawLineV(*startPos, *endPos, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawLineEx(Vector2 *startPos, Vector2 *endPos, float thick, Color *color)
|
||||||
|
{
|
||||||
|
DrawLineEx(*startPos, *endPos, thick, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawLineBezier(Vector2 *startPos, Vector2 *endPos, float thick, Color *color)
|
||||||
|
{
|
||||||
|
DrawLineBezier(*startPos, *endPos, thick, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawLineStrip(Vector2 *points, int numPoints, Color *color)
|
||||||
|
{
|
||||||
|
DrawLineStrip(points, numPoints, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCircle(int centerX, int centerY, float radius, Color *color)
|
||||||
|
{
|
||||||
|
DrawCircle(centerX, centerY, radius, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCircleSector(Vector2 *center, float radius, int startAngle, int endAngle, int segments, Color *color)
|
||||||
|
{
|
||||||
|
DrawCircleSector(*center, radius, startAngle, endAngle, segments, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCircleSectorLines(Vector2 *center, float radius, int startAngle, int endAngle, int segments, Color *color)
|
||||||
|
{
|
||||||
|
DrawCircleSectorLines(*center, radius, startAngle, endAngle, segments, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCircleGradient(int centerX, int centerY, float radius, Color *color1, Color *color2)
|
||||||
|
{
|
||||||
|
DrawCircleGradient(centerX, centerY, radius, *color1, *color2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCircleV(Vector2 *center, float radius, Color *color)
|
||||||
|
{
|
||||||
|
DrawCircleV(*center, radius, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCircleLines(int centerX, int centerY, float radius, Color *color)
|
||||||
|
{
|
||||||
|
DrawCircleLines(centerX, centerY, radius, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color *color)
|
||||||
|
{
|
||||||
|
DrawEllipse(centerX, centerY, radiusH, radiusV, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color *color)
|
||||||
|
{
|
||||||
|
DrawEllipseLines(centerX, centerY, radiusH, radiusV, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRing(Vector2 *center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color *color)
|
||||||
|
{
|
||||||
|
DrawRing(*center, innerRadius, outerRadius, startAngle, endAngle, segments, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRingLines(Vector2 *center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color *color)
|
||||||
|
{
|
||||||
|
DrawRingLines(*center, innerRadius, outerRadius, startAngle, endAngle, segments, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangle(int posX, int posY, int width, int height, Color *color)
|
||||||
|
{
|
||||||
|
DrawRectangle(posX, posY, width, height, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleV(Vector2 *position, Vector2 *size, Color *color)
|
||||||
|
{
|
||||||
|
DrawRectangleV(*position, *size, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleRec(Rectangle *rec, Color *color)
|
||||||
|
{
|
||||||
|
DrawRectangleRec(*rec, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectanglePro(Rectangle *rec, Vector2 *origin, float rotation, Color *color)
|
||||||
|
{
|
||||||
|
DrawRectanglePro(*rec, *origin, rotation, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleGradientV(int posX, int posY, int width, int height, Color *color1, Color *color2)
|
||||||
|
{
|
||||||
|
DrawRectangleGradientV(posX, posY, width, height, *color1, *color2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleGradientH(int posX, int posY, int width, int height, Color *color1, Color *color2)
|
||||||
|
{
|
||||||
|
DrawRectangleGradientH(posX, posY, width, height, *color1, *color2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleGradientEx(Rectangle *rec, Color *col1, Color *col2, Color *col3, Color *col4)
|
||||||
|
{
|
||||||
|
DrawRectangleGradientEx(*rec, *col1, *col2, *col3, *col4);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleLines(int posX, int posY, int width, int height, Color *color)
|
||||||
|
{
|
||||||
|
DrawRectangleLines(posX, posY, width, height, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleLinesEx(Rectangle *rec, int lineThick, Color *color)
|
||||||
|
{
|
||||||
|
DrawRectangleLinesEx(*rec, lineThick, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleRounded(Rectangle *rec, float roundness, int segments, Color *color)
|
||||||
|
{
|
||||||
|
DrawRectangleRounded(*rec, roundness, segments, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRectangleRoundedLines(Rectangle *rec, float roundness, int segments, int lineThick, Color *color)
|
||||||
|
{
|
||||||
|
DrawRectangleRoundedLines(*rec, roundness, segments, lineThick, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTriangle(Vector2 *v1, Vector2 *v2, Vector2 *v3, Color *color)
|
||||||
|
{
|
||||||
|
DrawTriangle(*v1, *v2, *v3, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTriangleLines(Vector2 *v1, Vector2 *v2, Vector2 *v3, Color *color)
|
||||||
|
{
|
||||||
|
DrawTriangleLines(*v1, *v2, *v3, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTriangleFan(Vector2 *points, int numPoints, Color *color)
|
||||||
|
{
|
||||||
|
DrawTriangleFan(points, numPoints, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTriangleStrip(Vector2 *points, int pointsCount, Color *color)
|
||||||
|
{
|
||||||
|
DrawTriangleStrip(points, pointsCount, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawPoly(Vector2 *center, int sides, float radius, float rotation, Color *color)
|
||||||
|
{
|
||||||
|
DrawPoly(*center, sides, radius, rotation, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawPolyLines(Vector2 *center, int sides, float radius, float rotation, Color *color)
|
||||||
|
{
|
||||||
|
DrawPolyLines(*center, sides, radius, rotation, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionRecs(Rectangle *rec1, Rectangle *rec2)
|
||||||
|
{
|
||||||
|
return CheckCollisionRecs(*rec1, *rec2);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionCircles(Vector2 *center1, float radius1, Vector2 *center2, float radius2)
|
||||||
|
{
|
||||||
|
return CheckCollisionCircles(*center1, radius1, *center2, radius2);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionCircleRec(Vector2 *center, float radius, Rectangle *rec)
|
||||||
|
{
|
||||||
|
return CheckCollisionCircleRec(*center, radius, *rec);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionPointRec(Vector2 *point, Rectangle *rec)
|
||||||
|
{
|
||||||
|
return CheckCollisionPointRec(*point, *rec);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionPointCircle(Vector2 *point, Vector2 *center, float radius)
|
||||||
|
{
|
||||||
|
return CheckCollisionPointCircle(*point, *center, radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionPointTriangle(Vector2 *point, Vector2 *p1, Vector2 *p2, Vector2 *p3)
|
||||||
|
{
|
||||||
|
return CheckCollisionPointTriangle(*point, *p1, *p2, *p3);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WLoadImageEx(Color *pixels, int width, int height)
|
||||||
|
{
|
||||||
|
return LoadImageEx(pixels, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WGenImageColor(int width, int height, Color *color)
|
||||||
|
{
|
||||||
|
return GenImageColor(width, height, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WGenImageGradientV(int width, int height, Color *top, Color *bottom)
|
||||||
|
{
|
||||||
|
return GenImageGradientV(width, height, *top, *bottom);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WGenImageGradientH(int width, int height, Color *left, Color *right)
|
||||||
|
{
|
||||||
|
return GenImageGradientH(width, height, *left, *right);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WGenImageGradientRadial(int width, int height, float density, Color *inner, Color *outer)
|
||||||
|
{
|
||||||
|
return GenImageGradientRadial(width, height, density, *inner, *outer);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WGenImageChecked(int width, int height, int checksX, int checksY, Color *col1, Color *col2)
|
||||||
|
{
|
||||||
|
return GenImageChecked(width, height, checksX, checksY, *col1, *col2);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WImageFromImage(Image image, Rectangle *rec)
|
||||||
|
{
|
||||||
|
return ImageFromImage(image, *rec);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WImageText(char *text, int fontSize, Color *color)
|
||||||
|
{
|
||||||
|
return ImageText(text, fontSize, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WImageTextEx(Font font, char *text, float fontSize, float spacing, Color *tint)
|
||||||
|
{
|
||||||
|
return ImageTextEx(font, text, fontSize, spacing, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageToPOT(Image *image, Color *fillColor)
|
||||||
|
{
|
||||||
|
ImageToPOT(image, *fillColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageAlphaClear(Image *image, Color *color, float threshold)
|
||||||
|
{
|
||||||
|
ImageAlphaClear(image, *color, threshold);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageCrop(Image *image, Rectangle *crop)
|
||||||
|
{
|
||||||
|
ImageCrop(image, *crop);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color *color)
|
||||||
|
{
|
||||||
|
ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageColorTint(Image *image, Color *color)
|
||||||
|
{
|
||||||
|
ImageColorTint(image, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageColorReplace(Image *image, Color *color, Color *replace)
|
||||||
|
{
|
||||||
|
ImageColorReplace(image, *color, *replace);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageClearBackground(Image *dst, Color *color)
|
||||||
|
{
|
||||||
|
ImageClearBackground(dst, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawPixel(Image *dst, int posX, int posY, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawPixel(dst, posX, posY, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawPixelV(Image *dst, Vector2 *position, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawPixelV(dst, *position, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawLineV(Image *dst, Vector2 *start, Vector2 *end, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawLineV(dst, *start, *end, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawCircle(dst, centerX, centerY, radius, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawCircleV(Image *dst, Vector2 *center, int radius, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawCircleV(dst, *center, radius, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawRectangle(dst, posX, posY, width, height, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawRectangleV(Image *dst, Vector2 *position, Vector2 *size, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawRectangleV(dst, *position, *size, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawRectangleRec(Image *dst, Rectangle *rec, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawRectangleRec(dst, *rec, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawRectangleLines(Image *dst, Rectangle *rec, int thick, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawRectangleLines(dst, *rec, thick, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDraw(Image *dst, Image src, Rectangle *srcRec, Rectangle *dstRec, Color *tint)
|
||||||
|
{
|
||||||
|
ImageDraw(dst, src, *srcRec, *dstRec, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawText(Image *dst, Vector2 *position, char *text, int fontSize, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawText(dst, *position, text, fontSize, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WImageDrawTextEx(Image *dst, Vector2 *position, Font font, char *text, float fontSize, float spacing, Color *color)
|
||||||
|
{
|
||||||
|
ImageDrawTextEx(dst, *position, font, text, fontSize, spacing, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTexture(Texture2D texture, int posX, int posY, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTexture(texture, posX, posY, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextureV(Texture2D texture, Vector2 *position, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTextureV(texture, *position, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextureEx(Texture2D texture, Vector2 *position, float rotation, float scale, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTextureEx(texture, *position, rotation, scale, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextureRec(Texture2D texture, Rectangle *sourceRec, Vector2 *position, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTextureRec(texture, *sourceRec, *position, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextureQuad(Texture2D texture, Vector2 *tiling, Vector2 *offset, Rectangle *quad, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTextureQuad(texture, *tiling, *offset, *quad, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTexturePro(Texture2D texture, Rectangle *sourceRec, Rectangle *destRec, Vector2 *origin, float rotation, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTexturePro(texture, *sourceRec, *destRec, *origin, rotation, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle *destRec, Vector2 *origin, float rotation, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTextureNPatch(texture, nPatchInfo, *destRec, *origin, rotation, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
Font WLoadFontFromImage(Image image, Color *key, int firstChar)
|
||||||
|
{
|
||||||
|
return LoadFontFromImage(image, *key, firstChar);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image WGenImageFontAtlas(CharInfo *chars, Rectangle **recs, int charsCount, int fontSize, int padding, int packMethod)
|
||||||
|
{
|
||||||
|
return GenImageFontAtlas(chars, recs, charsCount, fontSize, padding, packMethod);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawText(char *text, int posX, int posY, int fontSize, Color *color)
|
||||||
|
{
|
||||||
|
DrawText(text, posX, posY, fontSize, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextEx(Font font, char *text, Vector2 *position, float fontSize, float spacing, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTextEx(font, text, *position, fontSize, spacing, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextRec(Font font, char *text, Rectangle *rec, float fontSize, float spacing, bool wordWrap, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTextRec(font, text, *rec, fontSize, spacing, wordWrap, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextRecEx(Font font, char *text, Rectangle *rec, float fontSize, float spacing, bool wordWrap, Color *tint, int selectStart, int selectLength, Color *selectTint, Color *selectBackTint)
|
||||||
|
{
|
||||||
|
DrawTextRecEx(font, text, *rec, fontSize, spacing, wordWrap, *tint, selectStart, selectLength, *selectTint, *selectBackTint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawTextCodepoint(Font font, int codepoint, Vector2 *position, float scale, Color *tint)
|
||||||
|
{
|
||||||
|
DrawTextCodepoint(font, codepoint, *position, scale, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawLine3D(Vector3 *startPos, Vector3 *endPos, Color *color)
|
||||||
|
{
|
||||||
|
DrawLine3D(*startPos, *endPos, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawPoint3D(Vector3 *position, Color *color)
|
||||||
|
{
|
||||||
|
DrawPoint3D(*position, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCircle3D(Vector3 *center, float radius, Vector3 *rotationAxis, float rotationAngle, Color *color)
|
||||||
|
{
|
||||||
|
DrawCircle3D(*center, radius, *rotationAxis, rotationAngle, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCube(Vector3 *position, float width, float height, float length, Color *color)
|
||||||
|
{
|
||||||
|
DrawCube(*position, width, height, length, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCubeV(Vector3 *position, Vector3 *size, Color *color)
|
||||||
|
{
|
||||||
|
DrawCubeV(*position, *size, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCubeWires(Vector3 *position, float width, float height, float length, Color *color)
|
||||||
|
{
|
||||||
|
DrawCubeWires(*position, width, height, length, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCubeWiresV(Vector3 *position, Vector3 *size, Color *color)
|
||||||
|
{
|
||||||
|
DrawCubeWiresV(*position, *size, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCubeTexture(Texture2D texture, Vector3 *position, float width, float height, float length, Color *color)
|
||||||
|
{
|
||||||
|
DrawCubeTexture(texture, *position, width, height, length, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawSphere(Vector3 *centerPos, float radius, Color *color)
|
||||||
|
{
|
||||||
|
DrawSphere(*centerPos, radius, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawSphereEx(Vector3 *centerPos, float radius, int rings, int slices, Color *color)
|
||||||
|
{
|
||||||
|
DrawSphereEx(*centerPos, radius, rings, slices, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawSphereWires(Vector3 *centerPos, float radius, int rings, int slices, Color *color)
|
||||||
|
{
|
||||||
|
DrawSphereWires(*centerPos, radius, rings, slices, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCylinder(Vector3 *position, float radiusTop, float radiusBottom, float height, int slices, Color *color)
|
||||||
|
{
|
||||||
|
DrawCylinder(*position, radiusTop, radiusBottom, height, slices, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawCylinderWires(Vector3 *position, float radiusTop, float radiusBottom, float height, int slices, Color *color)
|
||||||
|
{
|
||||||
|
DrawCylinderWires(*position, radiusTop, radiusBottom, height, slices, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawPlane(Vector3 *centerPos, Vector2 *size, Color *color)
|
||||||
|
{
|
||||||
|
DrawPlane(*centerPos, *size, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawRay(Ray ray, Color *color)
|
||||||
|
{
|
||||||
|
DrawRay(ray, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawGizmo(Vector3 *position)
|
||||||
|
{
|
||||||
|
DrawGizmo(*position);
|
||||||
|
}
|
||||||
|
|
||||||
|
Mesh WGenMeshHeightmap(Image heightmap, Vector3 *size)
|
||||||
|
{
|
||||||
|
return GenMeshHeightmap(heightmap, *size);
|
||||||
|
}
|
||||||
|
|
||||||
|
Mesh WGenMeshCubicmap(Image cubicmap, Vector3 *cubeSize)
|
||||||
|
{
|
||||||
|
return GenMeshCubicmap(cubicmap, *cubeSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawModel(Model model, Vector3 *position, float scale, Color *tint)
|
||||||
|
{
|
||||||
|
DrawModel(model, *position, scale, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawModelEx(Model model, Vector3 *position, Vector3 *rotationAxis, float rotationAngle, Vector3 *scale, Color *tint)
|
||||||
|
{
|
||||||
|
DrawModelEx(model, *position, *rotationAxis, rotationAngle, *scale, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawModelWires(Model model, Vector3 *position, float scale, Color *tint)
|
||||||
|
{
|
||||||
|
DrawModelWires(model, *position, scale, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawModelWiresEx(Model model, Vector3 *position, Vector3 *rotationAxis, float rotationAngle, Vector3 *scale, Color *tint)
|
||||||
|
{
|
||||||
|
DrawModelWiresEx(model, *position, *rotationAxis, rotationAngle, *scale, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawBoundingBox(BoundingBox box, Color *color)
|
||||||
|
{
|
||||||
|
DrawBoundingBox(box, *color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawBillboard(Camera camera, Texture2D texture, Vector3 *center, float size, Color *tint)
|
||||||
|
{
|
||||||
|
DrawBillboard(camera, texture, *center, size, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WDrawBillboardRec(Camera camera, Texture2D texture, Rectangle *sourceRec, Vector3 *center, float size, Color *tint)
|
||||||
|
{
|
||||||
|
DrawBillboardRec(camera, texture, *sourceRec, *center, size, *tint);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionSpheres(Vector3 *centerA, float radiusA, Vector3 *centerB, float radiusB)
|
||||||
|
{
|
||||||
|
return CheckCollisionSpheres(*centerA, radiusA, *centerB, radiusB);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionBoxSphere(BoundingBox box, Vector3 *center, float radius)
|
||||||
|
{
|
||||||
|
return CheckCollisionBoxSphere(box, *center, radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionRaySphere(Ray ray, Vector3 *center, float radius)
|
||||||
|
{
|
||||||
|
return CheckCollisionRaySphere(ray, *center, radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WCheckCollisionRaySphereEx(Ray ray, Vector3 *center, float radius, Vector3 *collisionPoint)
|
||||||
|
{
|
||||||
|
return CheckCollisionRaySphereEx(ray, *center, radius, collisionPoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
RayHitInfo WGetCollisionRayTriangle(Ray ray, Vector3 *p1, Vector3 *p2, Vector3 *p3)
|
||||||
|
{
|
||||||
|
return GetCollisionRayTriangle(ray, *p1, *p2, *p3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WUnloadShader(Shader *shader)
|
||||||
|
{
|
||||||
|
UnloadShader(*shader);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WSetShapesTexture(Texture2D texture, Rectangle *source)
|
||||||
|
{
|
||||||
|
SetShapesTexture(texture, *source);
|
||||||
|
}
|
||||||
|
|
||||||
|
int WGetShaderLocation(Shader *shader, char *uniformName)
|
||||||
|
{
|
||||||
|
return GetShaderLocation(*shader, uniformName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WSetShaderValue(Shader *shader, int uniformLoc, void *value, int uniformType)
|
||||||
|
{
|
||||||
|
SetShaderValue(*shader, uniformLoc, value, uniformType);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WSetShaderValueV(Shader *shader, int uniformLoc, void *value, int uniformType, int count)
|
||||||
|
{
|
||||||
|
SetShaderValueV(*shader, uniformLoc, value, uniformType, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WSetShaderValueMatrix(Shader *shader, int uniformLoc, Matrix mat)
|
||||||
|
{
|
||||||
|
SetShaderValueMatrix(*shader, uniformLoc, mat);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WSetShaderValueTexture(Shader *shader, int uniformLoc, Texture2D texture)
|
||||||
|
{
|
||||||
|
SetShaderValueTexture(*shader, uniformLoc, texture);
|
||||||
|
}
|
||||||
|
|
||||||
|
Texture2D WGenTextureCubemap(Shader *shader, Texture2D map, int size)
|
||||||
|
{
|
||||||
|
return GenTextureCubemap(*shader, map, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
Texture2D WGenTextureIrradiance(Shader *shader, Texture2D cubemap, int size)
|
||||||
|
{
|
||||||
|
return GenTextureIrradiance(*shader, cubemap, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
Texture2D WGenTexturePrefilter(Shader *shader, Texture2D cubemap, int size)
|
||||||
|
{
|
||||||
|
return GenTexturePrefilter(*shader, cubemap, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
Texture2D WGenTextureBRDF(Shader *shader, int size)
|
||||||
|
{
|
||||||
|
return GenTextureBRDF(*shader, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WBeginShaderMode(Shader *shader)
|
||||||
|
{
|
||||||
|
BeginShaderMode(*shader);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WSetVrConfiguration(VrDeviceInfo info, Shader *distortion)
|
||||||
|
{
|
||||||
|
SetVrConfiguration(info, *distortion);
|
||||||
|
}
|
||||||
|
|
||||||
|
float WVector2Length(Vector2 *v)
|
||||||
|
{
|
||||||
|
return Vector2Length(*v);
|
||||||
|
}
|
||||||
|
|
||||||
|
float WVector2DotProduct(Vector2 *v1, Vector2 *v2)
|
||||||
|
{
|
||||||
|
return Vector2DotProduct(*v1, *v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
float WVector2Distance(Vector2 *v1, Vector2 *v2)
|
||||||
|
{
|
||||||
|
return Vector2Distance(*v1, *v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
float WVector2Angle(Vector2 *v1, Vector2 *v2)
|
||||||
|
{
|
||||||
|
return Vector2Angle(*v1, *v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
float WVector3Length(Vector3 *v)
|
||||||
|
{
|
||||||
|
return Vector3Length(*v);
|
||||||
|
}
|
||||||
|
|
||||||
|
float WVector3DotProduct(Vector3 *v1, Vector3 *v2)
|
||||||
|
{
|
||||||
|
return Vector3DotProduct(*v1, *v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
float WVector3Distance(Vector3 *v1, Vector3 *v2)
|
||||||
|
{
|
||||||
|
return Vector3Distance(*v1, *v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WVector3OrthoNormalize(Vector3 *v1, Vector3 *v2)
|
||||||
|
{
|
||||||
|
Vector3OrthoNormalize(v1, v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
Matrix WMatrixRotate(Vector3 *axis, float angle)
|
||||||
|
{
|
||||||
|
return MatrixRotate(*axis, angle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Matrix WMatrixRotateXYZ(Vector3 *ang)
|
||||||
|
{
|
||||||
|
return MatrixRotateXYZ(*ang);
|
||||||
|
}
|
||||||
|
|
||||||
|
Matrix WMatrixLookAt(Vector3 *eye, Vector3 *target, Vector3 *up)
|
||||||
|
{
|
||||||
|
return MatrixLookAt(*eye, *target, *up);
|
||||||
|
}
|
||||||
|
|
||||||
|
float WQuaternionLength(Quaternion *q)
|
||||||
|
{
|
||||||
|
return QuaternionLength(*q);
|
||||||
|
}
|
||||||
|
|
||||||
|
Matrix WQuaternionToMatrix(Quaternion *q)
|
||||||
|
{
|
||||||
|
return QuaternionToMatrix(*q);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WQuaternionToAxisAngle(Quaternion *q, Vector3 *outAxis, float *outAngle)
|
||||||
|
{
|
||||||
|
QuaternionToAxisAngle(*q, outAxis, outAngle);
|
||||||
|
}
|
||||||
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
Ray GetMouseRay(Vector2 mousePosition, Camera camera);
|
|
||||||
void DrawPixel(int posX, int posY, Color color);
|
|
||||||
void DrawPixelV(Vector2 position, Color color);
|
|
||||||
void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color);
|
|
||||||
void DrawLineV(Vector2 startPos, Vector2 endPos, Color color);
|
|
||||||
void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color);
|
|
||||||
void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color);
|
|
||||||
void DrawLineStrip(Vector2 *points, int numPoints, Color color);
|
|
||||||
void DrawCircle(int centerX, int centerY, float radius, Color color);
|
|
||||||
void DrawCircleSector(Vector2 center, float radius, int startAngle, int endAngle, int segments, Color color);
|
|
||||||
void DrawCircleSectorLines(Vector2 center, float radius, int startAngle, int endAngle, int segments, Color color);
|
|
||||||
void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2);
|
|
||||||
void DrawCircleV(Vector2 center, float radius, Color color);
|
|
||||||
void DrawCircleLines(int centerX, int centerY, float radius, Color color);
|
|
||||||
void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color);
|
|
||||||
void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color);
|
|
||||||
void DrawRing(Vector2 center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color color);
|
|
||||||
void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color color);
|
|
||||||
void DrawRectangle(int posX, int posY, int width, int height, Color color);
|
|
||||||
void DrawRectangleV(Vector2 position, Vector2 size, Color color);
|
|
||||||
void DrawRectangleRec(Rectangle rec, Color color);
|
|
||||||
void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color);
|
|
||||||
void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2);
|
|
||||||
void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2);
|
|
||||||
void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4);
|
|
||||||
void DrawRectangleLines(int posX, int posY, int width, int height, Color color);
|
|
||||||
void DrawRectangleLinesEx(Rectangle rec, int lineThick, Color color);
|
|
||||||
void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color color);
|
|
||||||
void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, int lineThick, Color color);
|
|
||||||
void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color);
|
|
||||||
void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color);
|
|
||||||
void DrawTriangleFan(Vector2 *points, int numPoints, Color color);
|
|
||||||
void DrawTriangleStrip(Vector2 *points, int pointsCount, Color color);
|
|
||||||
void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color);
|
|
||||||
void DrawPolyLines(Vector2 center, int sides, float radius, float rotation, Color color);
|
|
||||||
bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2);
|
|
||||||
bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2);
|
|
||||||
bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec);
|
|
||||||
Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2);
|
|
||||||
bool CheckCollisionPointRec(Vector2 point, Rectangle rec);
|
|
||||||
bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius);
|
|
||||||
bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3);
|
|
||||||
void DrawSphere(Vector3 centerPos, float radius, Color color);
|
|
||||||
void DrawRay(Ray ray, Color color);
|
|
||||||
@ -1,138 +0,0 @@
|
|||||||
import re
|
|
||||||
|
|
||||||
"""
|
|
||||||
Automatic utility for generating workaround functions for both C and Zig
|
|
||||||
to fix zig's issue with C ABI struct parameter. Put all functions that have
|
|
||||||
a parameter with one of the types listed in small_structs into cfunctions.
|
|
||||||
If one of those functions has a returns type listed in small_structs it
|
|
||||||
will be automatically ignored. Make sure raylib-zig.zig doesn't already
|
|
||||||
contain a function with the given names before copying the workaround in
|
|
||||||
"""
|
|
||||||
|
|
||||||
raymath = open("cfunctions")
|
|
||||||
|
|
||||||
|
|
||||||
# Some c types have a different size on different systems
|
|
||||||
# and zig knows that so we tell it to get the system specific size for us
|
|
||||||
def c_to_zig_type(t: str) -> str:
|
|
||||||
if t == "float":
|
|
||||||
t = "f32"
|
|
||||||
if t == "int":
|
|
||||||
t = "c_int"
|
|
||||||
if t == "unsigned int":
|
|
||||||
t = "c_uint"
|
|
||||||
if t == "long":
|
|
||||||
t = "c_long"
|
|
||||||
if t == "void":
|
|
||||||
t = "c_void"
|
|
||||||
return t
|
|
||||||
|
|
||||||
|
|
||||||
def fix_pointer(name: str, type: str):
|
|
||||||
if name.startswith("*"):
|
|
||||||
name = name[1:]
|
|
||||||
type = "[*c]const " + type
|
|
||||||
return name, type
|
|
||||||
|
|
||||||
|
|
||||||
small_structs = ["Vector2", "Vector3", "Vector4", "Quaternion", "Color", "Rectangle", "Shader"]
|
|
||||||
zig_functions = []
|
|
||||||
c_functions = []
|
|
||||||
zig_heads = []
|
|
||||||
|
|
||||||
for line in raymath.readlines():
|
|
||||||
# each (.*) is some variable value
|
|
||||||
result = re.search("(.*) (.*)start_arg(.*)end_arg", line.replace("(", "start_arg").replace(")", "end_arg"))
|
|
||||||
|
|
||||||
# get whats in the (.*)'s
|
|
||||||
return_type = result.group(1)
|
|
||||||
func_name = result.group(2)
|
|
||||||
arguments = result.group(3)
|
|
||||||
|
|
||||||
if return_type in small_structs:
|
|
||||||
continue
|
|
||||||
|
|
||||||
zig_arguments_w = [] # arguments for the workaround function head on the zig side
|
|
||||||
zig_arguments = [] # arguments that are passed to the copied raylib function
|
|
||||||
zig_pass = [] # arguments that are passed to the workaround function on the zig side
|
|
||||||
c_arguments = [] # arguments for the workaround function head on the c side
|
|
||||||
c_pass = [] # arguments that are passed to the actual raylib function
|
|
||||||
|
|
||||||
for arg in arguments.split(", "):
|
|
||||||
if arg == "void": break
|
|
||||||
arg_type = " ".join(arg.split(" ")[0:-1]).replace("const ", "") # everything but the last element (for stuff like "const Vector3"), but discarding const
|
|
||||||
arg_name = arg.split(" ")[-1] # last element should be the name
|
|
||||||
depoint = False # set to true if we need to dereference a pointer to a small struct in the c workaround
|
|
||||||
if arg_type in small_structs:
|
|
||||||
if not arg_name.startswith("*"):
|
|
||||||
depoint = True
|
|
||||||
|
|
||||||
if depoint:
|
|
||||||
arg_name = "*" + arg_name # dereference the arguments
|
|
||||||
|
|
||||||
c_arguments.append(arg_type + " " + arg_name)
|
|
||||||
if arg_name.startswith("*") and not depoint: # That's in case of an actual array
|
|
||||||
c_pass.append(arg_name[1:]) # We don't want to dereference the array
|
|
||||||
else:
|
|
||||||
c_pass.append(arg_name)
|
|
||||||
|
|
||||||
# zig conversions
|
|
||||||
zig_type = c_to_zig_type(arg_type)
|
|
||||||
if depoint and arg_name.startswith("*"): # These are the arguments without pointers
|
|
||||||
zig_name = arg_name[1:]
|
|
||||||
zig_pass_name = "&" + zig_name
|
|
||||||
elif arg_name.startswith("*") and not depoint: # That's in case of an actual array
|
|
||||||
zig_name = arg_name[1:]
|
|
||||||
zig_type = "[]const " + arg_type
|
|
||||||
zig_pass_name = "&" + arg_name[1:] + "[0]"
|
|
||||||
else: # Normal argument i.e. float, int, etc.
|
|
||||||
zig_name = arg_name
|
|
||||||
zig_pass_name = zig_name
|
|
||||||
zig_arguments.append(zig_name + ": " + zig_type) # put everything together
|
|
||||||
zig_pass.append(zig_pass_name)
|
|
||||||
|
|
||||||
# These are the arguments for the extern workaround functions with pointers
|
|
||||||
arg_type = c_to_zig_type(arg_type)
|
|
||||||
arg_name, arg_type = fix_pointer(arg_name, arg_type)
|
|
||||||
zig_arguments_w.append(arg_name + ": " + arg_type) # put everything together
|
|
||||||
|
|
||||||
# Workaround function head in zig
|
|
||||||
zig_arguments_w = ", ".join(zig_arguments_w)
|
|
||||||
zig_ret_type = c_to_zig_type(return_type)
|
|
||||||
zig_func_name, zig_ret_type = fix_pointer(func_name, zig_ret_type)
|
|
||||||
zig_heads.append("pub extern fn W" + func_name + "(" + zig_arguments_w + ") " + return_type + ";")
|
|
||||||
|
|
||||||
# Create the function to call the workaround
|
|
||||||
zig_arguments = ", ".join(zig_arguments)
|
|
||||||
zig_pass = ", ".join(zig_pass)
|
|
||||||
function = "pub fn " + func_name + "(" + zig_arguments + ") " + return_type + "\n"
|
|
||||||
function += "{\n"
|
|
||||||
if return_type != "void":
|
|
||||||
function += " return W" + func_name + "(" + zig_pass + ");\n"
|
|
||||||
else:
|
|
||||||
function += " W" + func_name + "(" + zig_pass + ");\n"
|
|
||||||
function += "}\n"
|
|
||||||
zig_functions.append(function)
|
|
||||||
|
|
||||||
# Create workaround function
|
|
||||||
c_arguments = ", ".join(c_arguments)
|
|
||||||
c_pass = ", ".join(c_pass)
|
|
||||||
function = return_type + " W" + func_name + "(" + c_arguments + ")\n"
|
|
||||||
function += "{\n"
|
|
||||||
if return_type != "void":
|
|
||||||
function += " return " + func_name + "(" + c_pass + ");\n"
|
|
||||||
else:
|
|
||||||
function += " " + func_name + "(" + c_pass + ");\n"
|
|
||||||
function += "}\n"
|
|
||||||
c_functions.append(function)
|
|
||||||
|
|
||||||
workaround = open("workaround.c", mode="w")
|
|
||||||
print("// raylib-zig (c) Nikolas Wipper 2020\n", file=workaround)
|
|
||||||
print("#include <raylib.h>\n", file=workaround)
|
|
||||||
|
|
||||||
zigworkaround = open("workaround.zig", mode="w")
|
|
||||||
|
|
||||||
print("\n".join(c_functions), file=workaround)
|
|
||||||
print("\n".join(zig_heads), file=zigworkaround)
|
|
||||||
print("", file=zigworkaround)
|
|
||||||
print("\n".join(zig_functions), file=zigworkaround)
|
|
||||||
@ -1,219 +0,0 @@
|
|||||||
// raylib-zig (c) Nikolas Wipper 2020
|
|
||||||
|
|
||||||
#include <raylib.h>
|
|
||||||
|
|
||||||
Ray WGetMouseRay(Vector2 *mousePosition, Camera camera)
|
|
||||||
{
|
|
||||||
return GetMouseRay(*mousePosition, camera);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawPixel(int posX, int posY, Color *color)
|
|
||||||
{
|
|
||||||
DrawPixel(posX, posY, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawPixelV(Vector2 *position, Color *color)
|
|
||||||
{
|
|
||||||
DrawPixelV(*position, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color *color)
|
|
||||||
{
|
|
||||||
DrawLine(startPosX, startPosY, endPosX, endPosY, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawLineV(Vector2 *startPos, Vector2 *endPos, Color *color)
|
|
||||||
{
|
|
||||||
DrawLineV(*startPos, *endPos, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawLineEx(Vector2 *startPos, Vector2 *endPos, float thick, Color *color)
|
|
||||||
{
|
|
||||||
DrawLineEx(*startPos, *endPos, thick, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawLineBezier(Vector2 *startPos, Vector2 *endPos, float thick, Color *color)
|
|
||||||
{
|
|
||||||
DrawLineBezier(*startPos, *endPos, thick, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawLineStrip(Vector2 *points, int numPoints, Color *color)
|
|
||||||
{
|
|
||||||
DrawLineStrip(points, numPoints, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawCircle(int centerX, int centerY, float radius, Color *color)
|
|
||||||
{
|
|
||||||
DrawCircle(centerX, centerY, radius, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawCircleSector(Vector2 *center, float radius, int startAngle, int endAngle, int segments, Color *color)
|
|
||||||
{
|
|
||||||
DrawCircleSector(*center, radius, startAngle, endAngle, segments, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawCircleSectorLines(Vector2 *center, float radius, int startAngle, int endAngle, int segments, Color *color)
|
|
||||||
{
|
|
||||||
DrawCircleSectorLines(*center, radius, startAngle, endAngle, segments, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawCircleGradient(int centerX, int centerY, float radius, Color *color1, Color *color2)
|
|
||||||
{
|
|
||||||
DrawCircleGradient(centerX, centerY, radius, *color1, *color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawCircleV(Vector2 *center, float radius, Color *color)
|
|
||||||
{
|
|
||||||
DrawCircleV(*center, radius, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawCircleLines(int centerX, int centerY, float radius, Color *color)
|
|
||||||
{
|
|
||||||
DrawCircleLines(centerX, centerY, radius, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color *color)
|
|
||||||
{
|
|
||||||
DrawEllipse(centerX, centerY, radiusH, radiusV, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color *color)
|
|
||||||
{
|
|
||||||
DrawEllipseLines(centerX, centerY, radiusH, radiusV, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRing(Vector2 *center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color *color)
|
|
||||||
{
|
|
||||||
DrawRing(*center, innerRadius, outerRadius, startAngle, endAngle, segments, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRingLines(Vector2 *center, float innerRadius, float outerRadius, int startAngle, int endAngle, int segments, Color *color)
|
|
||||||
{
|
|
||||||
DrawRingLines(*center, innerRadius, outerRadius, startAngle, endAngle, segments, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangle(int posX, int posY, int width, int height, Color *color)
|
|
||||||
{
|
|
||||||
DrawRectangle(posX, posY, width, height, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleV(Vector2 *position, Vector2 *size, Color *color)
|
|
||||||
{
|
|
||||||
DrawRectangleV(*position, *size, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleRec(Rectangle *rec, Color *color)
|
|
||||||
{
|
|
||||||
DrawRectangleRec(*rec, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectanglePro(Rectangle *rec, Vector2 *origin, float rotation, Color *color)
|
|
||||||
{
|
|
||||||
DrawRectanglePro(*rec, *origin, rotation, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleGradientV(int posX, int posY, int width, int height, Color *color1, Color *color2)
|
|
||||||
{
|
|
||||||
DrawRectangleGradientV(posX, posY, width, height, *color1, *color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleGradientH(int posX, int posY, int width, int height, Color *color1, Color *color2)
|
|
||||||
{
|
|
||||||
DrawRectangleGradientH(posX, posY, width, height, *color1, *color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleGradientEx(Rectangle *rec, Color *col1, Color *col2, Color *col3, Color *col4)
|
|
||||||
{
|
|
||||||
DrawRectangleGradientEx(*rec, *col1, *col2, *col3, *col4);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleLines(int posX, int posY, int width, int height, Color *color)
|
|
||||||
{
|
|
||||||
DrawRectangleLines(posX, posY, width, height, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleLinesEx(Rectangle *rec, int lineThick, Color *color)
|
|
||||||
{
|
|
||||||
DrawRectangleLinesEx(*rec, lineThick, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleRounded(Rectangle *rec, float roundness, int segments, Color *color)
|
|
||||||
{
|
|
||||||
DrawRectangleRounded(*rec, roundness, segments, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRectangleRoundedLines(Rectangle *rec, float roundness, int segments, int lineThick, Color *color)
|
|
||||||
{
|
|
||||||
DrawRectangleRoundedLines(*rec, roundness, segments, lineThick, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawTriangle(Vector2 *v1, Vector2 *v2, Vector2 *v3, Color *color)
|
|
||||||
{
|
|
||||||
DrawTriangle(*v1, *v2, *v3, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawTriangleLines(Vector2 *v1, Vector2 *v2, Vector2 *v3, Color *color)
|
|
||||||
{
|
|
||||||
DrawTriangleLines(*v1, *v2, *v3, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawTriangleFan(Vector2 *points, int numPoints, Color *color)
|
|
||||||
{
|
|
||||||
DrawTriangleFan(points, numPoints, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawTriangleStrip(Vector2 *points, int pointsCount, Color *color)
|
|
||||||
{
|
|
||||||
DrawTriangleStrip(points, pointsCount, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawPoly(Vector2 *center, int sides, float radius, float rotation, Color *color)
|
|
||||||
{
|
|
||||||
DrawPoly(*center, sides, radius, rotation, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawPolyLines(Vector2 *center, int sides, float radius, float rotation, Color *color)
|
|
||||||
{
|
|
||||||
DrawPolyLines(*center, sides, radius, rotation, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WCheckCollisionRecs(Rectangle *rec1, Rectangle *rec2)
|
|
||||||
{
|
|
||||||
return CheckCollisionRecs(*rec1, *rec2);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WCheckCollisionCircles(Vector2 *center1, float radius1, Vector2 *center2, float radius2)
|
|
||||||
{
|
|
||||||
return CheckCollisionCircles(*center1, radius1, *center2, radius2);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WCheckCollisionCircleRec(Vector2 *center, float radius, Rectangle *rec)
|
|
||||||
{
|
|
||||||
return CheckCollisionCircleRec(*center, radius, *rec);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WCheckCollisionPointRec(Vector2 *point, Rectangle *rec)
|
|
||||||
{
|
|
||||||
return CheckCollisionPointRec(*point, *rec);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WCheckCollisionPointCircle(Vector2 *point, Vector2 *center, float radius)
|
|
||||||
{
|
|
||||||
return CheckCollisionPointCircle(*point, *center, radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WCheckCollisionPointTriangle(Vector2 *point, Vector2 *p1, Vector2 *p2, Vector2 *p3)
|
|
||||||
{
|
|
||||||
return CheckCollisionPointTriangle(*point, *p1, *p2, *p3);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawSphere(Vector3 *centerPos, float radius, Color *color)
|
|
||||||
{
|
|
||||||
DrawSphere(*centerPos, radius, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WDrawRay(Ray ray, Color *color)
|
|
||||||
{
|
|
||||||
DrawRay(ray, *color);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,259 +0,0 @@
|
|||||||
pub extern fn WGetMouseRay(mousePosition: [*c]const Vector2, camera: Camera) Ray;
|
|
||||||
pub extern fn WDrawPixel(posX: c_int, posY: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawPixelV(position: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLine(startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLineV(startPos: [*c]const Vector2, endPos: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLineEx(startPos: [*c]const Vector2, endPos: [*c]const Vector2, thick: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLineBezier(startPos: [*c]const Vector2, endPos: [*c]const Vector2, thick: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawLineStrip(points: [*c]const Vector2, numPoints: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircle(centerX: c_int, centerY: c_int, radius: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleSector(center: [*c]const Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleSectorLines(center: [*c]const Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleGradient(centerX: c_int, centerY: c_int, radius: f32, color1: [*c]const Color, color2: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleV(center: [*c]const Vector2, radius: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawCircleLines(centerX: c_int, centerY: c_int, radius: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawEllipse(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawEllipseLines(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRing(center: [*c]const Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRingLines(center: [*c]const Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangle(posX: c_int, posY: c_int, width: c_int, height: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleV(position: [*c]const Vector2, size: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleRec(rec: [*c]const Rectangle, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectanglePro(rec: [*c]const Rectangle, origin: [*c]const Vector2, rotation: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleGradientV(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: [*c]const Color, color2: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleGradientH(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: [*c]const Color, color2: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleGradientEx(rec: [*c]const Rectangle, col1: [*c]const Color, col2: [*c]const Color, col3: [*c]const Color, col4: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleLines(posX: c_int, posY: c_int, width: c_int, height: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleLinesEx(rec: [*c]const Rectangle, lineThick: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleRounded(rec: [*c]const Rectangle, roundness: f32, segments: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRectangleRoundedLines(rec: [*c]const Rectangle, roundness: f32, segments: c_int, lineThick: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawTriangle(v1: [*c]const Vector2, v2: [*c]const Vector2, v3: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawTriangleLines(v1: [*c]const Vector2, v2: [*c]const Vector2, v3: [*c]const Vector2, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawTriangleFan(points: [*c]const Vector2, numPoints: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawTriangleStrip(points: [*c]const Vector2, pointsCount: c_int, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawPoly(center: [*c]const Vector2, sides: c_int, radius: f32, rotation: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawPolyLines(center: [*c]const Vector2, sides: c_int, radius: f32, rotation: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WCheckCollisionRecs(rec1: [*c]const Rectangle, rec2: [*c]const Rectangle) bool;
|
|
||||||
pub extern fn WCheckCollisionCircles(center1: [*c]const Vector2, radius1: f32, center2: [*c]const Vector2, radius2: f32) bool;
|
|
||||||
pub extern fn WCheckCollisionCircleRec(center: [*c]const Vector2, radius: f32, rec: [*c]const Rectangle) bool;
|
|
||||||
pub extern fn WCheckCollisionPointRec(point: [*c]const Vector2, rec: [*c]const Rectangle) bool;
|
|
||||||
pub extern fn WCheckCollisionPointCircle(point: [*c]const Vector2, center: [*c]const Vector2, radius: f32) bool;
|
|
||||||
pub extern fn WCheckCollisionPointTriangle(point: [*c]const Vector2, p1: [*c]const Vector2, p2: [*c]const Vector2, p3: [*c]const Vector2) bool;
|
|
||||||
pub extern fn WDrawSphere(centerPos: [*c]const Vector3, radius: f32, color: [*c]const Color) void;
|
|
||||||
pub extern fn WDrawRay(ray: Ray, color: [*c]const Color) void;
|
|
||||||
|
|
||||||
pub fn GetMouseRay(mousePosition: Vector2, camera: Camera) Ray
|
|
||||||
{
|
|
||||||
return WGetMouseRay(&mousePosition, camera);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawPixel(posX: c_int, posY: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawPixel(posX, posY, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawPixelV(position: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawPixelV(&position, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLine(startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLine(startPosX, startPosY, endPosX, endPosY, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLineV(startPos: Vector2, endPos: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLineV(&startPos, &endPos, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLineEx(startPos: Vector2, endPos: Vector2, thick: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLineEx(&startPos, &endPos, thick, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLineBezier(&startPos, &endPos, thick, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawLineStrip(points: []const Vector2, numPoints: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawLineStrip(&points[0], numPoints, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircle(centerX: c_int, centerY: c_int, radius: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircle(centerX, centerY, radius, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleSector(center: Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleSector(¢er, radius, startAngle, endAngle, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleSectorLines(center: Vector2, radius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleSectorLines(¢er, radius, startAngle, endAngle, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleGradient(centerX: c_int, centerY: c_int, radius: f32, color1: Color, color2: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleGradient(centerX, centerY, radius, &color1, &color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleV(center: Vector2, radius: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleV(¢er, radius, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawCircleLines(centerX: c_int, centerY: c_int, radius: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawCircleLines(centerX, centerY, radius, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawEllipse(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawEllipse(centerX, centerY, radiusH, radiusV, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawEllipseLines(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawEllipseLines(centerX, centerY, radiusH, radiusV, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRing(center: Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRing(¢er, innerRadius, outerRadius, startAngle, endAngle, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRingLines(center: Vector2, innerRadius: f32, outerRadius: f32, startAngle: c_int, endAngle: c_int, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRingLines(¢er, innerRadius, outerRadius, startAngle, endAngle, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangle(posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangle(posX, posY, width, height, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleV(position: Vector2, size: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleV(&position, &size, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleRec(rec: Rectangle, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleRec(&rec, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectanglePro(&rec, &origin, rotation, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleGradientV(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: Color, color2: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleGradientV(posX, posY, width, height, &color1, &color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleGradientH(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: Color, color2: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleGradientH(posX, posY, width, height, &color1, &color2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleGradientEx(rec: Rectangle, col1: Color, col2: Color, col3: Color, col4: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleGradientEx(&rec, &col1, &col2, &col3, &col4);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleLines(posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleLines(posX, posY, width, height, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleLinesEx(rec: Rectangle, lineThick: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleLinesEx(&rec, lineThick, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleRounded(rec: Rectangle, roundness: f32, segments: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleRounded(&rec, roundness, segments, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRectangleRoundedLines(rec: Rectangle, roundness: f32, segments: c_int, lineThick: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRectangleRoundedLines(&rec, roundness, segments, lineThick, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawTriangle(&v1, &v2, &v3, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawTriangleLines(&v1, &v2, &v3, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawTriangleFan(points: []const Vector2, numPoints: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawTriangleFan(&points[0], numPoints, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawTriangleStrip(points: []const Vector2, pointsCount: c_int, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawTriangleStrip(&points[0], pointsCount, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawPoly(center: Vector2, sides: c_int, radius: f32, rotation: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawPoly(¢er, sides, radius, rotation, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawPolyLines(center: Vector2, sides: c_int, radius: f32, rotation: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawPolyLines(¢er, sides, radius, rotation, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionRecs(&rec1, &rec2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionCircles(center1: Vector2, radius1: f32, center2: Vector2, radius2: f32) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionCircles(¢er1, radius1, ¢er2, radius2);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionCircleRec(center: Vector2, radius: f32, rec: Rectangle) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionCircleRec(¢er, radius, &rec);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionPointRec(point: Vector2, rec: Rectangle) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionPointRec(&point, &rec);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: f32) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionPointCircle(&point, ¢er, radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn CheckCollisionPointTriangle(point: Vector2, p1: Vector2, p2: Vector2, p3: Vector2) bool
|
|
||||||
{
|
|
||||||
return WCheckCollisionPointTriangle(&point, &p1, &p2, &p3);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawSphere(centerPos: Vector3, radius: f32, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawSphere(¢erPos, radius, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn DrawRay(ray: Ray, color: Color) void
|
|
||||||
{
|
|
||||||
WDrawRay(ray, &color);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -14,19 +14,18 @@ pub fn build(b: *Builder) void {
|
|||||||
const exe = b.addExecutable("'"$PROJECT_NAME"'", "src/main.zig");
|
const exe = b.addExecutable("'"$PROJECT_NAME"'", "src/main.zig");
|
||||||
exe.setBuildMode(mode);
|
exe.setBuildMode(mode);
|
||||||
exe.linkSystemLibrary("raylib");
|
exe.linkSystemLibrary("raylib");
|
||||||
|
exe.addCSourceFile("raylib-zig/workaround.c", &[_][]const u8{});
|
||||||
exe.addPackagePath("raylib", "raylib-zig/raylib-zig.zig");
|
exe.addPackagePath("raylib", "raylib-zig/raylib-zig.zig");
|
||||||
exe.install();
|
exe.addPackagePath("raylib-math", "lib/raylib-zig-math.zig");
|
||||||
|
|
||||||
const run_cmd = exe.run();
|
const runExe = exe.run();
|
||||||
run_cmd.step.dependOn(b.getInstallStep());
|
const exeStep = b.step("run", "Runs the app");
|
||||||
|
exeStep.dependOn(&runExe.step);
|
||||||
const run_step = b.step("run", "Run the app");
|
|
||||||
run_step.dependOn(&run_cmd.step);
|
|
||||||
}
|
}
|
||||||
' >> build.zig
|
' >> build.zig
|
||||||
|
|
||||||
mkdir src
|
mkdir src
|
||||||
mkdir raylib-zig
|
mkdir raylib-zig
|
||||||
cp ../lib/* raylib-zig
|
cp ../lib/** raylib-zig
|
||||||
cp ../examples/core/basic_window.zig src
|
cp ../examples/core/basic_window.zig src
|
||||||
mv src/basic_window.zig src/main.zig
|
mv src/basic_window.zig src/main.zig
|
||||||
@ -1,61 +0,0 @@
|
|||||||
import re
|
|
||||||
|
|
||||||
"""
|
|
||||||
Automatic utility for extracting function definitions from raymath.h
|
|
||||||
and translating them to zig. This can technically be used for raylib.h
|
|
||||||
as well when setting prefix = "RLAPI " and possibly also for all other
|
|
||||||
raylib headers
|
|
||||||
"""
|
|
||||||
|
|
||||||
raymath = open("raymath.h")
|
|
||||||
|
|
||||||
prefix = "RMDEF "
|
|
||||||
|
|
||||||
|
|
||||||
# Some c types have a different size on different systems
|
|
||||||
# and zig knows that so we tell it to get the system specific size for us
|
|
||||||
def c_to_zig_type(t: str) -> str:
|
|
||||||
if t == "float":
|
|
||||||
t = "f32"
|
|
||||||
if t == "int":
|
|
||||||
t = "c_int"
|
|
||||||
if t == "unsigned int":
|
|
||||||
t = "c_uint"
|
|
||||||
if t == "long":
|
|
||||||
t = "c_long"
|
|
||||||
if t == "void":
|
|
||||||
t = "c_void"
|
|
||||||
return t
|
|
||||||
|
|
||||||
|
|
||||||
def fix_pointer(name: str, type: str):
|
|
||||||
if name.startswith("*"):
|
|
||||||
name = name[1:]
|
|
||||||
type = "[*c]" + type
|
|
||||||
return name, type
|
|
||||||
|
|
||||||
|
|
||||||
for line in raymath.readlines():
|
|
||||||
if line.startswith(prefix):
|
|
||||||
# each (.*) is some variable value
|
|
||||||
result = re.search(prefix + "(.*) (.*)start_arg(.*)end_arg", line.replace("(", "start_arg").replace(")", "end_arg"))
|
|
||||||
|
|
||||||
# get whats in the (.*)'s
|
|
||||||
return_type = result.group(1)
|
|
||||||
func_name = result.group(2)
|
|
||||||
arguments = result.group(3)
|
|
||||||
|
|
||||||
func_name, return_type = fix_pointer(func_name, return_type)
|
|
||||||
|
|
||||||
return_type = c_to_zig_type(return_type)
|
|
||||||
zig_arguments = []
|
|
||||||
for arg in arguments.split(", "):
|
|
||||||
if arg == "void": break
|
|
||||||
arg_type = " ".join(arg.split(" ")[0:-1]) # everything but the last element (for stuff like "const Vector3")
|
|
||||||
arg_type = arg_type.replace("const ", "") # zig doesn't like const in function arguments that aren't pointer and really we don't need const
|
|
||||||
arg_type = c_to_zig_type(arg_type)
|
|
||||||
arg_name = arg.split(" ")[-1] # last element should be the name
|
|
||||||
arg_name, arg_type = fix_pointer(arg_name, arg_type)
|
|
||||||
zig_arguments.append(arg_name + ": " + arg_type) # put everything together
|
|
||||||
zig_arguments = ", ".join(zig_arguments)
|
|
||||||
print("pub extern fn " + func_name + "(" + zig_arguments + ") " + return_type + ";")
|
|
||||||
@ -14,7 +14,7 @@ pub fn main() anyerror!void
|
|||||||
const screenWidth = 800;
|
const screenWidth = 800;
|
||||||
const screenHeight = 450;
|
const screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib-zig [core] example - basic window");
|
InitWindow(screenWidth, screenHeight, "raylib-zig [core] example - draw sphere");
|
||||||
|
|
||||||
var camera = Camera {
|
var camera = Camera {
|
||||||
.position = Vector3 { .x = 0.0, .y = 0.0, .z = 0.0 }, // Camera position
|
.position = Vector3 { .x = 0.0, .y = 0.0, .z = 0.0 }, // Camera position
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user