lateralis/sokol/gl/gl.odin

225 lines
10 KiB
Odin
Raw Normal View History

2025-02-03 18:15:56 +13:00
// machine generated, do not edit
package sokol_gl
import sg "../gfx"
import "core:c"
SOKOL_DEBUG :: #config(SOKOL_DEBUG, ODIN_DEBUG)
DEBUG :: #config(SOKOL_GL_DEBUG, SOKOL_DEBUG)
USE_GL :: #config(SOKOL_USE_GL, false)
USE_DLL :: #config(SOKOL_DLL, false)
when ODIN_OS == .Windows {
when USE_DLL {
when USE_GL {
when DEBUG { foreign import sokol_gl_clib { "../sokol_dll_windows_x64_gl_debug.lib" } }
else { foreign import sokol_gl_clib { "../sokol_dll_windows_x64_gl_release.lib" } }
} else {
when DEBUG { foreign import sokol_gl_clib { "../sokol_dll_windows_x64_d3d11_debug.lib" } }
else { foreign import sokol_gl_clib { "../sokol_dll_windows_x64_d3d11_release.lib" } }
}
} else {
when USE_GL {
when DEBUG { foreign import sokol_gl_clib { "sokol_gl_windows_x64_gl_debug.lib" } }
else { foreign import sokol_gl_clib { "sokol_gl_windows_x64_gl_release.lib" } }
} else {
when DEBUG { foreign import sokol_gl_clib { "sokol_gl_windows_x64_d3d11_debug.lib" } }
else { foreign import sokol_gl_clib { "sokol_gl_windows_x64_d3d11_release.lib" } }
}
}
} else when ODIN_OS == .Darwin {
when USE_DLL {
when USE_GL && ODIN_ARCH == .arm64 && DEBUG { foreign import sokol_gl_clib { "../dylib/sokol_dylib_macos_arm64_gl_debug.dylib" } }
else when USE_GL && ODIN_ARCH == .arm64 && !DEBUG { foreign import sokol_gl_clib { "../dylib/sokol_dylib_macos_arm64_gl_release.dylib" } }
else when USE_GL && ODIN_ARCH == .amd64 && DEBUG { foreign import sokol_gl_clib { "../dylib/sokol_dylib_macos_x64_gl_debug.dylib" } }
else when USE_GL && ODIN_ARCH == .amd64 && !DEBUG { foreign import sokol_gl_clib { "../dylib/sokol_dylib_macos_x64_gl_release.dylib" } }
else when !USE_GL && ODIN_ARCH == .arm64 && DEBUG { foreign import sokol_gl_clib { "../dylib/sokol_dylib_macos_arm64_metal_debug.dylib" } }
else when !USE_GL && ODIN_ARCH == .arm64 && !DEBUG { foreign import sokol_gl_clib { "../dylib/sokol_dylib_macos_arm64_metal_release.dylib" } }
else when !USE_GL && ODIN_ARCH == .amd64 && DEBUG { foreign import sokol_gl_clib { "../dylib/sokol_dylib_macos_x64_metal_debug.dylib" } }
else when !USE_GL && ODIN_ARCH == .amd64 && !DEBUG { foreign import sokol_gl_clib { "../dylib/sokol_dylib_macos_x64_metal_release.dylib" } }
} else {
when USE_GL {
when ODIN_ARCH == .arm64 {
when DEBUG { foreign import sokol_gl_clib { "sokol_gl_macos_arm64_gl_debug.a" } }
else { foreign import sokol_gl_clib { "sokol_gl_macos_arm64_gl_release.a" } }
} else {
when DEBUG { foreign import sokol_gl_clib { "sokol_gl_macos_x64_gl_debug.a" } }
else { foreign import sokol_gl_clib { "sokol_gl_macos_x64_gl_release.a" } }
}
} else {
when ODIN_ARCH == .arm64 {
when DEBUG { foreign import sokol_gl_clib { "sokol_gl_macos_arm64_metal_debug.a" } }
else { foreign import sokol_gl_clib { "sokol_gl_macos_arm64_metal_release.a" } }
} else {
when DEBUG { foreign import sokol_gl_clib { "sokol_gl_macos_x64_metal_debug.a" } }
else { foreign import sokol_gl_clib { "sokol_gl_macos_x64_metal_release.a" } }
}
}
}
} else when ODIN_OS == .Linux {
when USE_DLL {
when DEBUG { foreign import sokol_gl_clib { "sokol_gl_linux_x64_gl_debug.so" } }
else { foreign import sokol_gl_clib { "sokol_gl_linux_x64_gl_release.so" } }
} else {
when DEBUG { foreign import sokol_gl_clib { "sokol_gl_linux_x64_gl_debug.a" } }
else { foreign import sokol_gl_clib { "sokol_gl_linux_x64_gl_release.a" } }
}
} else {
#panic("This OS is currently not supported")
}
@(default_calling_convention="c", link_prefix="sgl_")
foreign sokol_gl_clib {
setup :: proc(#by_ptr desc: Desc) ---
shutdown :: proc() ---
rad :: proc(deg: f32) -> f32 ---
deg :: proc(rad: f32) -> f32 ---
error :: proc() -> Error ---
context_error :: proc(ctx: Context) -> Error ---
make_context :: proc(#by_ptr desc: Context_Desc) -> Context ---
destroy_context :: proc(ctx: Context) ---
set_context :: proc(ctx: Context) ---
get_context :: proc() -> Context ---
default_context :: proc() -> Context ---
num_vertices :: proc() -> c.int ---
num_commands :: proc() -> c.int ---
draw :: proc() ---
context_draw :: proc(ctx: Context) ---
draw_layer :: proc(#any_int layer_id: c.int) ---
context_draw_layer :: proc(ctx: Context, #any_int layer_id: c.int) ---
make_pipeline :: proc(#by_ptr desc: sg.Pipeline_Desc) -> Pipeline ---
context_make_pipeline :: proc(ctx: Context, #by_ptr desc: sg.Pipeline_Desc) -> Pipeline ---
destroy_pipeline :: proc(pip: Pipeline) ---
defaults :: proc() ---
viewport :: proc(#any_int x: c.int, #any_int y: c.int, #any_int w: c.int, #any_int h: c.int, origin_top_left: bool) ---
viewportf :: proc(x: f32, y: f32, w: f32, h: f32, origin_top_left: bool) ---
scissor_rect :: proc(#any_int x: c.int, #any_int y: c.int, #any_int w: c.int, #any_int h: c.int, origin_top_left: bool) ---
scissor_rectf :: proc(x: f32, y: f32, w: f32, h: f32, origin_top_left: bool) ---
enable_texture :: proc() ---
disable_texture :: proc() ---
texture :: proc(img: sg.Image, smp: sg.Sampler) ---
layer :: proc(#any_int layer_id: c.int) ---
load_default_pipeline :: proc() ---
load_pipeline :: proc(pip: Pipeline) ---
push_pipeline :: proc() ---
pop_pipeline :: proc() ---
matrix_mode_modelview :: proc() ---
matrix_mode_projection :: proc() ---
matrix_mode_texture :: proc() ---
load_identity :: proc() ---
load_matrix :: proc(m: ^f32) ---
load_transpose_matrix :: proc(m: ^f32) ---
mult_matrix :: proc(m: ^f32) ---
mult_transpose_matrix :: proc(m: ^f32) ---
rotate :: proc(angle_rad: f32, x: f32, y: f32, z: f32) ---
scale :: proc(x: f32, y: f32, z: f32) ---
translate :: proc(x: f32, y: f32, z: f32) ---
frustum :: proc(l: f32, r: f32, b: f32, t: f32, n: f32, f: f32) ---
ortho :: proc(l: f32, r: f32, b: f32, t: f32, n: f32, f: f32) ---
perspective :: proc(fov_y: f32, aspect: f32, z_near: f32, z_far: f32) ---
lookat :: proc(eye_x: f32, eye_y: f32, eye_z: f32, center_x: f32, center_y: f32, center_z: f32, up_x: f32, up_y: f32, up_z: f32) ---
push_matrix :: proc() ---
pop_matrix :: proc() ---
t2f :: proc(u: f32, v: f32) ---
c3f :: proc(r: f32, g: f32, b: f32) ---
c4f :: proc(r: f32, g: f32, b: f32, a: f32) ---
c3b :: proc(r: u8, g: u8, b: u8) ---
c4b :: proc(r: u8, g: u8, b: u8, a: u8) ---
c1i :: proc(rgba: u32) ---
point_size :: proc(s: f32) ---
begin_points :: proc() ---
begin_lines :: proc() ---
begin_line_strip :: proc() ---
begin_triangles :: proc() ---
begin_triangle_strip :: proc() ---
begin_quads :: proc() ---
v2f :: proc(x: f32, y: f32) ---
v3f :: proc(x: f32, y: f32, z: f32) ---
v2f_t2f :: proc(x: f32, y: f32, u: f32, v: f32) ---
v3f_t2f :: proc(x: f32, y: f32, z: f32, u: f32, v: f32) ---
v2f_c3f :: proc(x: f32, y: f32, r: f32, g: f32, b: f32) ---
v2f_c3b :: proc(x: f32, y: f32, r: u8, g: u8, b: u8) ---
v2f_c4f :: proc(x: f32, y: f32, r: f32, g: f32, b: f32, a: f32) ---
v2f_c4b :: proc(x: f32, y: f32, r: u8, g: u8, b: u8, a: u8) ---
v2f_c1i :: proc(x: f32, y: f32, rgba: u32) ---
v3f_c3f :: proc(x: f32, y: f32, z: f32, r: f32, g: f32, b: f32) ---
v3f_c3b :: proc(x: f32, y: f32, z: f32, r: u8, g: u8, b: u8) ---
v3f_c4f :: proc(x: f32, y: f32, z: f32, r: f32, g: f32, b: f32, a: f32) ---
v3f_c4b :: proc(x: f32, y: f32, z: f32, r: u8, g: u8, b: u8, a: u8) ---
v3f_c1i :: proc(x: f32, y: f32, z: f32, rgba: u32) ---
v2f_t2f_c3f :: proc(x: f32, y: f32, u: f32, v: f32, r: f32, g: f32, b: f32) ---
v2f_t2f_c3b :: proc(x: f32, y: f32, u: f32, v: f32, r: u8, g: u8, b: u8) ---
v2f_t2f_c4f :: proc(x: f32, y: f32, u: f32, v: f32, r: f32, g: f32, b: f32, a: f32) ---
v2f_t2f_c4b :: proc(x: f32, y: f32, u: f32, v: f32, r: u8, g: u8, b: u8, a: u8) ---
v2f_t2f_c1i :: proc(x: f32, y: f32, u: f32, v: f32, rgba: u32) ---
v3f_t2f_c3f :: proc(x: f32, y: f32, z: f32, u: f32, v: f32, r: f32, g: f32, b: f32) ---
v3f_t2f_c3b :: proc(x: f32, y: f32, z: f32, u: f32, v: f32, r: u8, g: u8, b: u8) ---
v3f_t2f_c4f :: proc(x: f32, y: f32, z: f32, u: f32, v: f32, r: f32, g: f32, b: f32, a: f32) ---
v3f_t2f_c4b :: proc(x: f32, y: f32, z: f32, u: f32, v: f32, r: u8, g: u8, b: u8, a: u8) ---
v3f_t2f_c1i :: proc(x: f32, y: f32, z: f32, u: f32, v: f32, rgba: u32) ---
end :: proc() ---
}
Log_Item :: enum i32 {
OK,
MALLOC_FAILED,
MAKE_PIPELINE_FAILED,
PIPELINE_POOL_EXHAUSTED,
ADD_COMMIT_LISTENER_FAILED,
CONTEXT_POOL_EXHAUSTED,
CANNOT_DESTROY_DEFAULT_CONTEXT,
}
Logger :: struct {
func : proc "c" (a0: cstring, a1: u32, a2: u32, a3: cstring, a4: u32, a5: cstring, a6: rawptr),
user_data : rawptr,
}
Pipeline :: struct {
id : u32,
}
Context :: struct {
id : u32,
}
Error :: struct {
any : bool,
vertices_full : bool,
uniforms_full : bool,
commands_full : bool,
stack_overflow : bool,
stack_underflow : bool,
no_context : bool,
}
Context_Desc :: struct {
max_vertices : c.int,
max_commands : c.int,
color_format : sg.Pixel_Format,
depth_format : sg.Pixel_Format,
sample_count : c.int,
}
Allocator :: struct {
alloc_fn : proc "c" (a0: c.size_t, a1: rawptr) -> rawptr,
free_fn : proc "c" (a0: rawptr, a1: rawptr),
user_data : rawptr,
}
Desc :: struct {
max_vertices : c.int,
max_commands : c.int,
context_pool_size : c.int,
pipeline_pool_size : c.int,
color_format : sg.Pixel_Format,
depth_format : sg.Pixel_Format,
sample_count : c.int,
face_winding : sg.Face_Winding,
allocator : Allocator,
logger : Logger,
}