core :: union_find
union–find algorithm using an efficient disjoint-set data structuregamnit :: camera_control_linux
Mouse wheel and middle mouse button to control cameraegl
, sdl
and x11
glesv2 :: opengles2_hello_triangle
Basic example of OpenGL ES 2.0 usage using SDL 2
# Window manager related SDL 2 services
module syswm is pkgconfig "sdl2"
import sdl2_base
in "C Header" `{
#include <SDL2/SDL_syswm.h>
`}
redef extern class SDLWindow
# Get the `SDLSysVMInfo` for the system running this window
#
# The returned value must be freed.
fun wm_info: SDLSysWMInfo `{
SDL_SysWMinfo *val = malloc(sizeof(SDL_SysWMinfo));
SDL_VERSION(&val->version);
if(SDL_GetWindowWMInfo(self, val) <= 0) {
free(val);
return NULL;
}
return val;
`}
end
# Information on the window manager
#
# Created using `SDLWindow::vm_info`
extern class SDLSysWMInfo `{ SDL_SysWMinfo * `}
# Is this an unknown window manager?
fun is_unknown: Bool `{ return self->subsystem == SDL_SYSWM_UNKNOWN; `}
# Is this a Windows system?
fun is_windows: Bool `{ return self->subsystem == SDL_SYSWM_WINDOWS; `}
# Is this the X11 window manager?
fun is_x11: Bool `{ return self->subsystem == SDL_SYSWM_X11; `}
# Is this a direct DirectFB?
fun is_direcfb: Bool `{ return self->subsystem == SDL_SYSWM_DIRECTFB; `}
# Is this system an OS X?
fun is_cocoa: Bool `{ return self->subsystem == SDL_SYSWM_COCOA; `}
# Is this system an iOS?
fun is_uikit: Bool `{ return self->subsystem == SDL_SYSWM_UIKIT; `}
# It this window manager Wayland?
fun is_wayland: Bool `{
#if SDL_VERSION_ATLEAST(2, 0, 2)
return self->subsystem == SDL_SYSWM_WAYLAND;
#else
return 0;
#endif
`}
# It this window manager Mir?
fun is_mir: Bool `{
#if SDL_VERSION_ATLEAST(2, 0, 3)
return self->subsystem == SDL_SYSWM_MIR;
#else
return 0;
#endif
`}
# Is this system a Windows RT?
fun is_winrt: Bool `{
#if SDL_VERSION_ATLEAST(2, 0, 3)
return self->subsystem == SDL_SYSWM_WINRT;
#else
return 0;
#endif
`}
# Is this system an Android?
fun is_android: Bool `{
#if SDL_VERSION_ATLEAST(2, 0, 4)
return self->subsystem == SDL_SYSWM_ANDROID;
#else
return 0;
#endif
`}
# Handle to the window
fun window_handle: Pointer `{
#ifdef _WIN32
return (void*)self->info.win.window;
#else
return (void*)self->info.x11.window;
#endif
`}
# Handle to the display or device context
fun display_handle: Pointer `{
#ifdef _WIN32
return (void*)self->info.win.hdc;
#else
return (void*)self->info.x11.display;
#endif
`}
end
lib/sdl2/syswm.nit:17,1--119,3