mirror of
https://github.com/Not-Nik/raylib-zig.git
synced 2025-09-09 12:07:27 +00:00
Allow passing null pointers to certain rlgl functions (#112)
This commit is contained in:
parent
140dff9a1a
commit
361d3962cf
@ -45,7 +45,7 @@ def c_to_zig_type(c: str) -> str:
|
||||
return const + c
|
||||
|
||||
|
||||
def ziggify_type(name: str, t: str) -> str:
|
||||
def ziggify_type(name: str, t: str, func_name) -> str:
|
||||
NO_STRINGS = ["data", "fileData", "compData"]
|
||||
|
||||
single = [
|
||||
@ -288,7 +288,16 @@ def parse_header(header_name: str, output_file: str, ext_file: str, prefix: str,
|
||||
|
||||
arg_type = c_to_zig_type(arg_type)
|
||||
arg_name, arg_type = fix_pointer(arg_name, arg_type)
|
||||
zig_type = ziggify_type(arg_name, arg_type)
|
||||
|
||||
single_opt = [
|
||||
("rlDrawVertexArrayElements", "buffer"),
|
||||
("rlDrawVertexArrayElementsInstanced", "buffer")
|
||||
]
|
||||
|
||||
if arg_type.startswith("*") and (func_name, arg_name) in single_opt:
|
||||
arg_type = "?" + arg_type
|
||||
|
||||
zig_type = ziggify_type(arg_name, arg_type, func_name)
|
||||
|
||||
zig_types.add(arg_type)
|
||||
zig_c_arguments.append(arg_name + ": " + add_namespace_to_type(arg_type)) # Put everything together.
|
||||
@ -346,7 +355,7 @@ def parse_header(header_name: str, output_file: str, ext_file: str, prefix: str,
|
||||
if func_name in manual or "FromMemory" in func_name:
|
||||
continue
|
||||
|
||||
zig_return = ziggify_type(func_name, return_type)
|
||||
zig_return = ziggify_type(func_name, return_type, func_name)
|
||||
return_cast = make_return_cast(return_type, zig_return, f"cdef.{func_name}({zig_call_args})")
|
||||
|
||||
if return_cast:
|
||||
|
@ -110,9 +110,9 @@ pub extern "c" fn rlSetVertexAttribute(index: c_uint, compSize: c_int, ty: c_int
|
||||
pub extern "c" fn rlSetVertexAttributeDivisor(index: c_uint, divisor: c_int) void;
|
||||
pub extern "c" fn rlSetVertexAttributeDefault(locIndex: c_int, value: *const anyopaque, attribType: c_int, count: c_int) void;
|
||||
pub extern "c" fn rlDrawVertexArray(offset: c_int, count: c_int) void;
|
||||
pub extern "c" fn rlDrawVertexArrayElements(offset: c_int, count: c_int, buffer: *const anyopaque) void;
|
||||
pub extern "c" fn rlDrawVertexArrayElements(offset: c_int, count: c_int, buffer: ?*const anyopaque) void;
|
||||
pub extern "c" fn rlDrawVertexArrayInstanced(offset: c_int, count: c_int, instances: c_int) void;
|
||||
pub extern "c" fn rlDrawVertexArrayElementsInstanced(offset: c_int, count: c_int, buffer: *const anyopaque, instances: c_int) void;
|
||||
pub extern "c" fn rlDrawVertexArrayElementsInstanced(offset: c_int, count: c_int, buffer: ?*const anyopaque, instances: c_int) void;
|
||||
pub extern "c" fn rlLoadTexture(data: *const anyopaque, width: c_int, height: c_int, format: c_int, mipmapCount: c_int) c_uint;
|
||||
pub extern "c" fn rlLoadTextureDepth(width: c_int, height: c_int, useRenderBuffer: bool) c_uint;
|
||||
pub extern "c" fn rlLoadTextureCubemap(data: *const anyopaque, size: c_int, format: c_int) c_uint;
|
||||
|
@ -612,7 +612,7 @@ pub fn rlDrawVertexArray(offset: i32, count: i32) void {
|
||||
cdef.rlDrawVertexArray(@as(c_int, offset), @as(c_int, count));
|
||||
}
|
||||
|
||||
pub fn rlDrawVertexArrayElements(offset: i32, count: i32, buffer: *const anyopaque) void {
|
||||
pub fn rlDrawVertexArrayElements(offset: i32, count: i32, buffer: ?*const anyopaque) void {
|
||||
cdef.rlDrawVertexArrayElements(@as(c_int, offset), @as(c_int, count), buffer);
|
||||
}
|
||||
|
||||
@ -620,7 +620,7 @@ pub fn rlDrawVertexArrayInstanced(offset: i32, count: i32, instances: i32) void
|
||||
cdef.rlDrawVertexArrayInstanced(@as(c_int, offset), @as(c_int, count), @as(c_int, instances));
|
||||
}
|
||||
|
||||
pub fn rlDrawVertexArrayElementsInstanced(offset: i32, count: i32, buffer: *const anyopaque, instances: i32) void {
|
||||
pub fn rlDrawVertexArrayElementsInstanced(offset: i32, count: i32, buffer: ?*const anyopaque, instances: i32) void {
|
||||
cdef.rlDrawVertexArrayElementsInstanced(@as(c_int, offset), @as(c_int, count), buffer, @as(c_int, instances));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user