diff --git a/vlib/glfw/glfw.v b/vlib/glfw/glfw.v deleted file mode 100644 index 0598fdb293..0000000000 --- a/vlib/glfw/glfw.v +++ /dev/null @@ -1,313 +0,0 @@ -// Copyright (c) 2019 Alexander Medvednikov. All rights reserved. -// Use of this source code is governed by an MIT license -// that can be found in the LICENSE file. - -module glfw - -import gl - -#flag -I @VROOT/thirdparty/glfw -#flag -L @VROOT/thirdparty/glfw - -// Debugging a custom build -//-#flag darwin -L/var/tmp/glfw/src/ - -// MacPorts -#flag darwin -L/opt/local/lib - -#flag darwin -lglfw -#flag linux -lglfw -#flag windows -lglfw3 -#include -// #flag darwin -framework Carbon -// #flag darwin -framework Cocoa -// #flag darwin -framework CoreVideo -// #flag darwin -framework IOKit -const ( - RESIZABLE = 1 - DECORATED = 2 -) - -import const ( - GLFW_RESIZABLE - GLFW_DECORATED - GLFW_FLOATING -) - -import const ( - GLFW_KEY_ENTER - GLFW_KEY_A - GLFW_KEY_B - GLFW_KEY_P - GLFW_KEY_F - GLFW_KEY_M - GLFW_KEY_L - GLFW_KEY_V - GLFW_KEY_R - GLFW_KEY_D - GLFW_KEY_7 - GLFW_KEY_Z - GLFW_KEY_UP - GLFW_KEY_DOWN - GLFW_KEY_UP - GLFW_KEY_LEFT - GLFW_KEY_RIGHT - GLFW_KEY_BACKSPACE - GLFW_KEY_ENTER - GLFW_KEY_ESCAPE - GLFW_KEY_N - GLFW_KEY_PERIOD - GLFW_KEY_SLASH - GLFW_KEY_F5 - GLFW_KEY_F6 - GLFW_KEY_MINUS - GLFW_KEY_EQUAL - GLFW_KEY_C - GLFW_KEY_G - GLFW_KEY_I - GLFW_KEY_J - GLFW_KEY_E - GLFW_KEY_K - GLFW_KEY_O - GLFW_KEY_T - GLFW_KEY_H - GLFW_KEY_L - GLFW_KEY_N - GLFW_KEY_U - GLFW_KEY_X - GLFW_KEY_W - GLFW_KEY_Y - GLFW_KEY_Q - GLFW_KEY_RIGHT_BRACKET - GLFW_KEY_LEFT_BRACKET - GLFW_KEY_8 - GLFW_KEY_TAB - GLFW_KEY_COMMA - GLFW_KEY_QUESTION -) - -const ( - KEY_ESCAPE = 256 - KEY_LEFT_SUPER = 343 -) - -const ( - KeyUp = 265 - KeyLeft = 263 - KeyRight = 262 - KeyDown = 264 -) - -// TODO COPY PASTA -struct WinCfg { - width int - height int - title string - ptr voidptr - borderless bool - is_modal int - is_browser bool - url string - always_on_top bool -} - -// data *C.GLFWwindow -// TODO change data to cobj -struct Window { - data voidptr - title string - mx int - my int -} - -struct Size { -pub: - width int - height int -} - -struct Pos { - x int - y int -} - -// type clickpub fn pub fn (window * GLFWwindow, button, action, mods int) -type clickpubfn fn (window voidptr, button, action, mods int) - -pub fn init() { - C.glfwInit() - # glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); - # glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); - # glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); - # glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); -} - -pub fn (w &Window) destroy() { - C.glfwDestroyWindow(w.data) -} - -pub fn terminate() { - C.glfwTerminate() -} - -// pub fn mouse_move(w * GLFWwindow, x, y double) { -pub fn mouse_move(w voidptr, x, y f64) { - // #printf("%f : %f => %d \n", x,y); -} - -pub fn window_hint(key, val int) { - C.glfwWindowHint(key, val) -} - -pub fn create_window(c WinCfg) *Window { - if c.borderless { - window_hint(GLFW_RESIZABLE, 0) - window_hint(GLFW_DECORATED, 0) - } - if c.always_on_top { - window_hint(GLFW_FLOATING, 1) - } - cwindow := C.glfwCreateWindow(c.width, c.height, c.title.str, 0, 0) - if isnil(cwindow) { - println('failed to create glfw window') - C.glfwTerminate() - } - // # glfwSetCursorPosCallback(cwindow, glfw__mouse_move) ; - // C.glfwSetCursorPosCallback(cwindow, mouse_move) - C.printf('create window wnd=%p ptr==%p\n', cwindow, c.ptr) - C.glfwSetWindowUserPointer(cwindow, c.ptr) - // # void *a =glfwGetWindowUserPointer(cwindow); - // # printf("aaaaaa=%p d=%d\n", a,a); - window := &Window { - data: cwindow, - title: c.title, - } - return window -} - -pub fn (w &Window) set_title(title string) { - C.glfwSetWindowTitle(w.data, title.str) -} - -pub fn (w &Window) make_context_current() { - // ChatsRepo - kkk := 0 - // println('making context current' ) - C.glfwMakeContextCurrent(w.data) -} - -pub fn swap_interval(interval int) { - C.glfwSwapInterval(interval) -} - -pub fn wait_events() { - C.glfwWaitEvents() -} - -pub fn poll_events() { - C.glfwPollEvents() -} - -pub fn set_should_close(w voidptr, close bool) { - C.glfwSetWindowShouldClose(w, close) -} - -pub fn (w &Window) should_close() bool { - // ChatsRepo - return C.glfwWindowShouldClose(w.data) -} - -pub fn (w &Window) swap_buffers() { - C.glfwSwapBuffers(w.data) -} - -pub fn (w mut Window) onmousemove(cb voidptr) { - C.glfwSetCursorPosCallback(w.data, cb) -} - -pub fn (w mut Window) set_mouse_button_callback(cb voidptr) { - C.glfwSetMouseButtonCallback(w.data, cb) -} - -pub fn (w mut Window) on_click(cb voidptr) { - C.glfwSetMouseButtonCallback(w.data, cb) -} - -pub fn (w &Window) set_scroll_callback(cb voidptr) { - C.glfwSetScrollCallback(w.data, cb) -} - -pub fn (w &Window) on_scroll(cb voidptr) { - C.glfwSetScrollCallback(w.data, cb) -} - -pub fn post_empty_event() { - C.glfwPostEmptyEvent() -} - -pub fn (w mut Window) onkeydown(cb voidptr) { - C.glfwSetKeyCallback(w.data, cb) -} - -pub fn (w mut Window) onchar(cb voidptr) { - C.glfwSetCharModsCallback(w.data, cb) -} - -pub fn get_time() f64 { - return C.glfwGetTime() -} - -pub fn key_pressed(wnd voidptr, key int) bool { - # return glfwGetKey(wnd, key) == GLFW_PRESS; - return false -} - -// TODO not mut -pub fn (w mut Window) get_clipboard_text() string { - return string(byteptr(C.glfwGetClipboardString(w.data))) -} - -pub fn (w &Window) set_clipboard_text(s string) { - C.glfwSetClipboardString(w.data, s.str) -} - -pub fn (w &Window) get_cursor_pos() Pos { - x := f64(0) - y := f64(0) - C.glfwGetCursorPos(w.data, &x, &y) - return Pos { - x: int(x) - y: int(y) - } -} - -pub fn (w &Window) user_ptr() voidptr { - return C.glfwGetWindowUserPointer(w.data) -} - -pub fn (w &Window) set_user_ptr(ptr voidptr) { - C.glfwSetWindowUserPointer(w.data, ptr) -} - -pub fn C.glfwGetVideoMode() C.GLFWvideoMode - -pub fn get_monitor_size() Size { - # GLFWvidmode* mode = glfwGetVideoMode(glfwGetPrimaryMonitor()); - // window_width = mode->width; - // window_height = mode->height; - // monitor := C.glfwGetPrimaryMonitor() - res := Size{} - # res.width=mode->width; - # res.height=mode->height; - // C.glfwGetMonitorPhysicalSize(monitor, &res.width, &res.height) - return res -} - -pub fn (size Size) str() string { - return '{$size.width, $size.height}' -} - -pub fn get_window_user_pointer(gwnd voidptr) voidptr { - return C.glfwGetWindowUserPointer(gwnd) -} -