mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
sokol and fontstash modules
This commit is contained in:
158
vlib/sokol/sapp/enums.v
Normal file
158
vlib/sokol/sapp/enums.v
Normal file
@@ -0,0 +1,158 @@
|
||||
module sapp
|
||||
|
||||
pub enum EventType {
|
||||
invalid
|
||||
key_down
|
||||
key_up
|
||||
char
|
||||
mouse_down
|
||||
mouse_up
|
||||
mouse_scroll
|
||||
mouse_move
|
||||
mouse_enter
|
||||
mouse_leave
|
||||
touches_began
|
||||
touches_moved
|
||||
touches_ended
|
||||
touches_cancelled
|
||||
resized
|
||||
iconified
|
||||
restored
|
||||
suspended
|
||||
resumed
|
||||
update_cursor
|
||||
quit_requested
|
||||
clipboard_pasted
|
||||
num
|
||||
}
|
||||
|
||||
pub enum MouseButton {
|
||||
invalid = -1
|
||||
left = 0
|
||||
right = 1
|
||||
middle = 2
|
||||
}
|
||||
|
||||
pub enum KeyCode {
|
||||
invalid = 0
|
||||
space = 32
|
||||
apostrophe = 39 /* ' */
|
||||
comma = 44 /* , */
|
||||
minus = 45 /* - */
|
||||
period = 46 /* . */
|
||||
slash = 47 /* / */
|
||||
_0 = 48
|
||||
_1 = 49
|
||||
_2 = 50
|
||||
_3 = 51
|
||||
_4 = 52
|
||||
_5 = 53
|
||||
_6 = 54
|
||||
_7 = 55
|
||||
_8 = 56
|
||||
_9 = 57
|
||||
semicolon = 59 /* ; */
|
||||
equal = 61 /* = */
|
||||
a = 65
|
||||
b = 66
|
||||
c = 67
|
||||
d = 68
|
||||
e = 69
|
||||
f = 70
|
||||
g = 71
|
||||
h = 72
|
||||
i = 73
|
||||
j = 74
|
||||
k = 75
|
||||
l = 76
|
||||
m = 77
|
||||
n = 78
|
||||
o = 79
|
||||
p = 80
|
||||
q = 81
|
||||
r = 82
|
||||
s = 83
|
||||
t = 84
|
||||
u = 85
|
||||
v = 86
|
||||
w = 87
|
||||
x = 88
|
||||
y = 89
|
||||
z = 90
|
||||
left_bracket = 91 /* [ */
|
||||
backslash = 92 /* \ */
|
||||
right_bracket = 93 /* ] */
|
||||
grave_accent = 96 /* ` */
|
||||
world_1 = 161 /* non-us #1 */
|
||||
world_2 = 162 /* non-us #2 */
|
||||
escape = 256
|
||||
enter = 257
|
||||
tab = 258
|
||||
backspace = 259
|
||||
insert = 260
|
||||
delete = 261
|
||||
right = 262
|
||||
left = 263
|
||||
down = 264
|
||||
up = 265
|
||||
page_up = 266
|
||||
page_down = 267
|
||||
home = 268
|
||||
end = 269
|
||||
caps_lock = 280
|
||||
scroll_lock = 281
|
||||
num_lock = 282
|
||||
print_screen = 283
|
||||
pause = 284
|
||||
f1 = 290
|
||||
f2 = 291
|
||||
f3 = 292
|
||||
f4 = 293
|
||||
f5 = 294
|
||||
f6 = 295
|
||||
f7 = 296
|
||||
f8 = 297
|
||||
f9 = 298
|
||||
f10 = 299
|
||||
f11 = 300
|
||||
f12 = 301
|
||||
f13 = 302
|
||||
f14 = 303
|
||||
f15 = 304
|
||||
f16 = 305
|
||||
f17 = 306
|
||||
f18 = 307
|
||||
f19 = 308
|
||||
f20 = 309
|
||||
f21 = 310
|
||||
f22 = 311
|
||||
f23 = 312
|
||||
f24 = 313
|
||||
f25 = 314
|
||||
kp_0 = 320
|
||||
kp_1 = 321
|
||||
kp_2 = 322
|
||||
kp_3 = 323
|
||||
kp_4 = 324
|
||||
kp_5 = 325
|
||||
kp_6 = 326
|
||||
kp_7 = 327
|
||||
kp_8 = 328
|
||||
kp_9 = 329
|
||||
kp_decimal = 330
|
||||
kp_divide = 331
|
||||
kp_multiply = 332
|
||||
kp_subtract = 333
|
||||
kp_add = 334
|
||||
kp_enter = 335
|
||||
kp_equal = 336
|
||||
left_shift = 340
|
||||
left_control = 341
|
||||
left_alt = 342
|
||||
left_super = 343
|
||||
right_shift = 344
|
||||
right_control = 345
|
||||
right_alt = 346
|
||||
right_super = 347
|
||||
menu = 348
|
||||
}
|
188
vlib/sokol/sapp/sapp.v
Normal file
188
vlib/sokol/sapp/sapp.v
Normal file
@@ -0,0 +1,188 @@
|
||||
module sapp
|
||||
|
||||
/* returns true after sokol-app has been initialized */
|
||||
[inline]
|
||||
pub fn isvalid() bool {
|
||||
return C.sapp_isvalid()
|
||||
}
|
||||
|
||||
/* returns the current framebuffer width in pixels */
|
||||
[inline]
|
||||
pub fn width() int {
|
||||
return C.sapp_width()
|
||||
}
|
||||
|
||||
/* returns the current framebuffer height in pixels */
|
||||
[inline]
|
||||
pub fn height() int {
|
||||
return C.sapp_height()
|
||||
}
|
||||
|
||||
/* returns true when high_dpi was requested and actually running in a high-dpi scenario */
|
||||
[inline]
|
||||
pub fn high_dpi() bool {
|
||||
return C.sapp_high_dpi()
|
||||
}
|
||||
|
||||
/* returns the dpi scaling factor (window pixels to framebuffer pixels) */
|
||||
[inline]
|
||||
pub fn dpi_scale() f32 {
|
||||
return C.sapp_dpi_scale()
|
||||
}
|
||||
|
||||
/* show or hide the mobile device onscreen keyboard */
|
||||
[inline]
|
||||
pub fn show_keyboard(visible bool) {
|
||||
C.sapp_show_keyboard(visible)
|
||||
}
|
||||
|
||||
/* return true if the mobile device onscreen keyboard is currently shown */
|
||||
[inline]
|
||||
pub fn keyboard_shown() bool {
|
||||
return C.sapp_keyboard_shown()
|
||||
}
|
||||
|
||||
/* show or hide the mouse cursor */
|
||||
[inline]
|
||||
pub fn show_mouse(visible bool) {
|
||||
C.sapp_show_mouse(visible)
|
||||
}
|
||||
|
||||
/* show or hide the mouse cursor */
|
||||
[inline]
|
||||
pub fn mouse_shown() bool {
|
||||
return C.sapp_mouse_shown()
|
||||
}
|
||||
|
||||
/* return the userdata pointer optionally provided in sapp_desc */
|
||||
[inline]
|
||||
pub fn userdata() voidptr {
|
||||
return C.sapp_userdata()
|
||||
}
|
||||
|
||||
/* return a copy of the sapp_desc structure */
|
||||
[inline]
|
||||
pub fn query_desc() C.sapp_desc {
|
||||
return C.sapp_query_desc()
|
||||
}
|
||||
|
||||
/* initiate a "soft quit" (sends SAPP_EVENTTYPE_QUIT_REQUESTED) */
|
||||
[inline]
|
||||
pub fn request_quit() {
|
||||
C.sapp_request_quit()
|
||||
}
|
||||
|
||||
/* cancel a pending quit (when SAPP_EVENTTYPE_QUIT_REQUESTED has been received) */
|
||||
[inline]
|
||||
pub fn cancel_quit() {
|
||||
C.sapp_cancel_quit()
|
||||
}
|
||||
|
||||
/* intiate a "hard quit" (quit application without sending SAPP_EVENTTYPE_QUIT_REQUSTED) */
|
||||
[inline]
|
||||
pub fn quit() {
|
||||
C.sapp_quit()
|
||||
}
|
||||
|
||||
/* call from inside event callback to consume the current event (don't forward to platform) */
|
||||
[inline]
|
||||
pub fn consume_event() {
|
||||
C.sapp_consume_event()
|
||||
}
|
||||
|
||||
/* get the current frame counter (for comparison with sapp_event.frame_count) */
|
||||
[inline]
|
||||
pub fn frame_count() u64 {
|
||||
return C.sapp_frame_count()
|
||||
}
|
||||
|
||||
/* write string into clipboard */
|
||||
[inline]
|
||||
pub fn set_clipboard_string(str byteptr) {
|
||||
C.sapp_set_clipboard_string(str)
|
||||
}
|
||||
|
||||
/* read string from clipboard (usually during SAPP_EVENTTYPE_CLIPBOARD_PASTED) */
|
||||
[inline]
|
||||
pub fn get_clipboard_string() byteptr {
|
||||
return C.sapp_get_clipboard_string()
|
||||
}
|
||||
|
||||
/* special run-function for SOKOL_NO_ENTRY (in standard mode this is an empty stub) */
|
||||
[inline]
|
||||
pub fn run(desc &C.sapp_desc) int {
|
||||
return C.sapp_run(desc)
|
||||
}
|
||||
|
||||
/* GL: return true when GLES2 fallback is active (to detect fallback from GLES3) */
|
||||
[inline]
|
||||
pub fn gles2() bool {
|
||||
return C.sapp_gles2()
|
||||
}
|
||||
|
||||
/* HTML5: enable or disable the hardwired "Leave Site?" dialog box */
|
||||
[inline]
|
||||
pub fn html5_ask_leave_site(ask bool) {
|
||||
C.sapp_html5_ask_leave_site(ask)
|
||||
}
|
||||
|
||||
/* Metal: get ARC-bridged pointer to Metal device object */
|
||||
[inline]
|
||||
pub fn metal_get_device() voidptr {
|
||||
return C.sapp_metal_get_device()
|
||||
}
|
||||
|
||||
/* Metal: get ARC-bridged pointer to this frame's renderpass descriptor */
|
||||
[inline]
|
||||
pub fn metal_get_renderpass_descriptor() voidptr {
|
||||
return C.sapp_metal_get_renderpass_descriptor()
|
||||
}
|
||||
|
||||
/* Metal: get ARC-bridged pointer to current drawable */
|
||||
[inline]
|
||||
pub fn metal_get_drawable() voidptr {
|
||||
return C.sapp_metal_get_drawable()
|
||||
}
|
||||
|
||||
/* macOS: get ARC-bridged pointer to macOS NSWindow */
|
||||
[inline]
|
||||
pub fn macos_get_window() voidptr {
|
||||
return C.sapp_macos_get_window()
|
||||
}
|
||||
|
||||
/* iOS: get ARC-bridged pointer to iOS UIWindow */
|
||||
[inline]
|
||||
pub fn ios_get_window() voidptr {
|
||||
return C.sapp_ios_get_window()
|
||||
}
|
||||
|
||||
/* D3D11: get pointer to ID3D11Device object */
|
||||
[inline]
|
||||
pub fn d3d11_get_device() voidptr {
|
||||
return C.sapp_d3d11_get_device()
|
||||
}
|
||||
|
||||
/* D3D11: get pointer to ID3D11DeviceContext object */
|
||||
[inline]
|
||||
pub fn d3d11_get_device_context() voidptr {
|
||||
return C.sapp_d3d11_get_device_context()
|
||||
}
|
||||
|
||||
/* D3D11: get pointer to ID3D11RenderTargetView object */
|
||||
[inline]
|
||||
pub fn d3d11_get_render_target_view() voidptr {
|
||||
return C.sapp_d3d11_get_render_target_view()
|
||||
}
|
||||
|
||||
/* D3D11: get pointer to ID3D11DepthStencilView */
|
||||
[inline]
|
||||
pub fn d3d11_get_depth_stencil_view() voidptr {
|
||||
return C.sapp_d3d11_get_depth_stencil_view()
|
||||
}
|
||||
|
||||
/* Win32: get the HWND window handle */
|
||||
[inline]
|
||||
pub fn win32_get_hwnd() voidptr {
|
||||
return C.sapp_win32_get_hwnd()
|
||||
}
|
||||
|
69
vlib/sokol/sapp/sapp_funcs.v
Normal file
69
vlib/sokol/sapp/sapp_funcs.v
Normal file
@@ -0,0 +1,69 @@
|
||||
module sapp
|
||||
|
||||
/* returns true after sokol-app has been initialized */
|
||||
fn C.sapp_isvalid() bool
|
||||
/* returns the current framebuffer width in pixels */
|
||||
fn C.sapp_width() int
|
||||
/* returns the current framebuffer height in pixels */
|
||||
fn C.sapp_height() int
|
||||
/* returns true when high_dpi was requested and actually running in a high-dpi scenario */
|
||||
fn C.sapp_high_dpi() bool
|
||||
/* returns the dpi scaling factor (window pixels to framebuffer pixels) */
|
||||
fn C.sapp_dpi_scale() f32
|
||||
/* show or hide the mobile device onscreen keyboard */
|
||||
fn C.sapp_show_keyboard(visible bool)
|
||||
/* return true if the mobile device onscreen keyboard is currently shown */
|
||||
fn C.sapp_keyboard_shown() bool
|
||||
/* show or hide the mouse cursor */
|
||||
fn C.sapp_show_mouse(visible bool)
|
||||
/* show or hide the mouse cursor */
|
||||
fn C.sapp_mouse_shown() bool
|
||||
/* return the userdata pointer optionally provided in sapp_desc */
|
||||
fn C.sapp_userdata() voidptr
|
||||
/* return a copy of the sapp_desc structure */
|
||||
fn C.sapp_query_desc() C.sapp_desc
|
||||
/* initiate a "soft quit" (sends SAPP_EVENTTYPE_QUIT_REQUESTED) */
|
||||
fn C.sapp_request_quit()
|
||||
/* cancel a pending quit (when SAPP_EVENTTYPE_QUIT_REQUESTED has been received) */
|
||||
fn C.sapp_cancel_quit()
|
||||
/* intiate a "hard quit" (quit application without sending SAPP_EVENTTYPE_QUIT_REQUSTED) */
|
||||
fn C.sapp_quit()
|
||||
/* call from inside event callback to consume the current event (don't forward to platform) */
|
||||
fn C.sapp_consume_event()
|
||||
/* get the current frame counter (for comparison with sapp_event.frame_count) */
|
||||
fn C.sapp_frame_count() u64
|
||||
/* write string into clipboard */
|
||||
fn C.sapp_set_clipboard_string(str byteptr)
|
||||
/* read string from clipboard (usually during SAPP_EVENTTYPE_CLIPBOARD_PASTED) */
|
||||
fn C.sapp_get_clipboard_string() byteptr
|
||||
|
||||
/* special run-function for SOKOL_NO_ENTRY (in standard mode this is an empty stub) */
|
||||
fn C.sapp_run(desc &C.sapp_desc) int
|
||||
|
||||
/* GL: return true when GLES2 fallback is active (to detect fallback from GLES3) */
|
||||
fn C.sapp_gles2() bool
|
||||
|
||||
/* HTML5: enable or disable the hardwired "Leave Site?" dialog box */
|
||||
fn C.sapp_html5_ask_leave_site(ask bool)
|
||||
|
||||
/* Metal: get ARC-bridged pointer to Metal device object */
|
||||
fn C.sapp_metal_get_device() voidptr
|
||||
/* Metal: get ARC-bridged pointer to this frame's renderpass descriptor */
|
||||
fn C.sapp_metal_get_renderpass_descriptor() voidptr
|
||||
/* Metal: get ARC-bridged pointer to current drawable */
|
||||
fn C.sapp_metal_get_drawable() voidptr
|
||||
/* macOS: get ARC-bridged pointer to macOS NSWindow */
|
||||
fn C.sapp_macos_get_window() voidptr
|
||||
/* iOS: get ARC-bridged pointer to iOS UIWindow */
|
||||
fn C.sapp_ios_get_window() voidptr
|
||||
|
||||
/* D3D11: get pointer to ID3D11Device object */
|
||||
fn C.sapp_d3d11_get_device() voidptr
|
||||
/* D3D11: get pointer to ID3D11DeviceContext object */
|
||||
fn C.sapp_d3d11_get_device_context() voidptr
|
||||
/* D3D11: get pointer to ID3D11RenderTargetView object */
|
||||
fn C.sapp_d3d11_get_render_target_view() voidptr
|
||||
/* D3D11: get pointer to ID3D11DepthStencilView */
|
||||
fn C.sapp_d3d11_get_depth_stencil_view() voidptr
|
||||
/* Win32: get the HWND window handle */
|
||||
fn C.sapp_win32_get_hwnd() voidptr
|
69
vlib/sokol/sapp/sapp_structs.v
Normal file
69
vlib/sokol/sapp/sapp_structs.v
Normal file
@@ -0,0 +1,69 @@
|
||||
module sapp
|
||||
|
||||
pub struct C.sapp_desc {
|
||||
pub:
|
||||
init_cb fn() /* these are the user-provided callbacks without user data */
|
||||
frame_cb fn()
|
||||
cleanup_cb fn()
|
||||
event_cb fn( voidptr) //&sapp_event)
|
||||
fail_cb fn(byteptr)
|
||||
|
||||
user_data voidptr /* these are the user-provided callbacks with user data */
|
||||
init_userdata_cb fn(voidptr)
|
||||
frame_userdata_cb fn(voidptr)
|
||||
cleanup_userdata_cb fn(voidptr)
|
||||
event_userdata_cb fn(&C.sapp_event, voidptr)
|
||||
fail_userdata_cb fn(voidptr)
|
||||
|
||||
width int /* the preferred width of the window / canvas */
|
||||
height int /* the preferred height of the window / canvas */
|
||||
sample_count int /* MSAA sample count */
|
||||
swap_interval int /* the preferred swap interval (ignored on some platforms) */
|
||||
high_dpi bool /* whether the rendering canvas is full-resolution on HighDPI displays */
|
||||
fullscreen bool /* whether the window should be created in fullscreen mode */
|
||||
alpha bool /* whether the framebuffer should have an alpha channel (ignored on some platforms) */
|
||||
window_title byteptr /* the window title as UTF-8 encoded string */
|
||||
user_cursor bool /* if true, user is expected to manage cursor image in SAPP_EVENTTYPE_UPDATE_CURSOR */
|
||||
enable_clipboard bool /* enable clipboard access, default is false */
|
||||
clipboard_size int /* max size of clipboard content in bytes */
|
||||
|
||||
html5_canvas_name byteptr /* the name (id) of the HTML5 canvas element, default is "canvas" */
|
||||
html5_canvas_resize bool /* if true, the HTML5 canvas size is set to sapp_desc.width/height, otherwise canvas size is tracked */
|
||||
html5_preserve_drawing_buffer bool /* HTML5 only: whether to preserve default framebuffer content between frames */
|
||||
html5_premultiplied_alpha bool /* HTML5 only: whether the rendered pixels use premultiplied alpha convention */
|
||||
html5_ask_leave_site bool /* initial state of the internal html5_ask_leave_site flag (see sapp_html5_ask_leave_site()) */
|
||||
ios_keyboard_resizes_canvas bool /* if true, showing the iOS keyboard shrinks the canvas */
|
||||
gl_force_gles2 bool /* if true, setup GLES2/WebGL even if GLES3/WebGL2 is available */
|
||||
}
|
||||
|
||||
pub struct C.sapp_event {
|
||||
pub:
|
||||
frame_count u64
|
||||
@type EventType
|
||||
key_code KeyCode
|
||||
char_code u32
|
||||
key_repeat bool
|
||||
modifiers u32
|
||||
mouse_button MouseButton
|
||||
mouse_x f32
|
||||
mouse_y f32
|
||||
scroll_x f32
|
||||
scroll_y f32
|
||||
num_touches int
|
||||
touches [8]sapp_touchpoint
|
||||
window_width int
|
||||
window_height int
|
||||
framebuffer_width int
|
||||
framebuffer_height int
|
||||
}
|
||||
pub fn (e &C.sapp_event) str() string {
|
||||
return 'evt: frame_count=$e.frame_count, type=${e.@type}'
|
||||
}
|
||||
|
||||
pub struct C.sapp_touchpoint {
|
||||
pub:
|
||||
identifier u64
|
||||
pos_x f32
|
||||
pos_y f32
|
||||
changed bool
|
||||
}
|
Reference in New Issue
Block a user