跳到主要内容

glfw

简介

封装 GLFW

GLFW 是一个开源的多平台库,用于在桌面上进行 OpenGL、OpenGL ES 和 Vulkan 开发。 它提供了创建窗口、上下文和表面(surface)并处理输入与事件的简单 API。

该 pkg 封装了 GLFW 库,相当于一个窗口管理器,管理你创建的每一个窗口。 GLFW 采用 poll 编程方式,你需要持续调用 glfw.poll_events() 响应事件, 并设置监听器对象来处理事件。

组件接口

glfw.gs

函数原型函数作用
bool init()初始化 GLFW,并创建共享上下文窗口。
void shutdown()关闭 GLFW,释放所有窗口与回调资源。
bool has_inited()判断 GLFW 是否已初始化。
void use_shared_context()使共享窗口成为调用线程的当前上下文。
void set_listener_object(object ob)设置监听器对象
object create_window(int width, int height, string title)创建一个窗口。
void destroy_window(object wnd_h)销毁窗口并释放底层资源。
int window_should_close(object wnd_h)查询窗口是否需要关闭。
void set_window_should_close(object wnd_h, int value)设置窗口关闭标志。
array get_frame_buffer_size(object wnd_h)获取窗口帧缓冲区大小(像素)。
array get_window_size(object wnd_h)获取窗口大小(屏幕坐标)。
void hide_window(object wnd_h)隐藏窗口。
void show_window(object wnd_h)显示窗口。
void swap_buffers(object wnd_h)交换窗口的前后缓冲。
void make_context_current(mixed wnd_h)使指定窗口上下文成为当前上下文。
mixed get_current_context()获取调用线程的当前上下文窗口。
void poll_events()处理所有 pending 的事件。
array get_frame_buffer_scale()获取共享上下文窗口的帧缓冲缩放比例。
array get_all_monitors_mode()获取所有显示器的当前视频模式列表。
string get_key_name(int key)获取按键的可读名称。
string get_action_name(int action)获取键盘/鼠标动作名称。
string get_button_name(int button)获取鼠标按键名称。
string get_mods_name(int mods)获取修饰键组合的可读名称。