225 lines
10 KiB
Odin
225 lines
10 KiB
Odin
|
// 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,
|
||
|
}
|
||
|
|