1
0
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:
Alexander Medvednikov
2020-01-16 20:45:47 +01:00
parent cc606623bb
commit 62481e88f3
27 changed files with 31878 additions and 0 deletions

158
vlib/sokol/sapp/enums.v Normal file
View 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
View 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()
}

View 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

View 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
}