Notcurses-Native.git | lib/Notcurses/Native/ | Direct.rakumod


use NativeCall; use Notcurses::Native::Types; use Notcurses::Native; use Notcurses::Native::Str; unit module Notcurses::Native::Direct; # 69 bindings — ncdirect_* direct mode API # === Init/stop === sub ncdirect_init(Str $termtype, Pointer $fp, uint64 $flags --> NcdirectHandle) is native(&nc-lib) is export { * } sub ncdirect_core_init(Str $termtype, Pointer $fp, uint64 $flags --> NcdirectHandle) is native(&core-lib) is export { * } sub ncdirect_stop(NcdirectHandle $nc --> int32) is native(&core-lib) is export { * } # === Colors === sub ncdirect_set_fg_rgb(NcdirectHandle $nc, uint32 $rgb --> int32) is native(&core-lib) is export { * } sub ncdirect_set_bg_rgb(NcdirectHandle $nc, uint32 $rgb --> int32) is native(&core-lib) is export { * } sub ncdirect_set_fg_rgb8(NcdirectHandle $nc, uint32 $r, uint32 $g, uint32 $b --> int32) is native(&ffi-lib) is export { * } sub ncdirect_set_bg_rgb8(NcdirectHandle $nc, uint32 $r, uint32 $g, uint32 $b --> int32) is native(&ffi-lib) is export { * } sub ncdirect_set_fg_palindex(NcdirectHandle $nc, int32 $pidx --> int32) is native(&core-lib) is export { * } sub ncdirect_set_bg_palindex(NcdirectHandle $nc, int32 $pidx --> int32) is native(&core-lib) is export { * } sub ncdirect_set_fg_default(NcdirectHandle $nc --> int32) is native(&core-lib) is export { * } sub ncdirect_set_bg_default(NcdirectHandle $nc --> int32) is native(&core-lib) is export { * } sub ncdirect_palette_size(NcdirectHandle $nc --> uint32) is native(&core-lib) is export { * } # === Output === sub ncdirect_putstr(NcdirectHandle $nc, uint64 $channels, Str $utf8 --> int32) is native(&core-lib) is export { * } sub ncdirect_putegc(NcdirectHandle $nc, uint64 $channels, Str $utf8, int32 $sbytes is rw --> int32) is native(&core-lib) is export { * } sub ncdirect_flush(NcdirectHandle $nc --> int32) is native(&core-lib) is export { * } # Returns a malloc'd input line that the caller must free. sub _ncdirect_readline_raw(NcdirectHandle $nc, Str $prompt --> Pointer) is native(&core-lib) is symbol('ncdirect_readline') { * } sub ncdirect_readline(NcdirectHandle $nc, Str $prompt --> Str) is export { strdup-copy-and-free(_ncdirect_readline_raw($nc, $prompt)) } # === Printf (variadic) === sub ncdirect_printf_aligned(NcdirectHandle $n, int32 $y, int32 $align, Str $fmt, **@args --> int32) is native(&core-lib) is export { * } # === Dimensions === sub ncdirect_dim_x(NcdirectHandle $nc --> uint32) is native(&core-lib) is export { * } sub ncdirect_dim_y(NcdirectHandle $nc --> uint32) is native(&core-lib) is export { * } # === Styles === sub ncdirect_supported_styles(NcdirectHandle $nc --> uint16) is native(&core-lib) is export { * } sub ncdirect_set_styles(NcdirectHandle $n, uint32 $stylebits --> int32) is native(&core-lib) is export { * } sub ncdirect_on_styles(NcdirectHandle $n, uint32 $stylebits --> int32) is native(&core-lib) is export { * } sub ncdirect_off_styles(NcdirectHandle $n, uint32 $stylebits --> int32) is native(&core-lib) is export { * } sub ncdirect_styles(NcdirectHandle $n --> uint16) is native(&core-lib) is export { * } # === Cursor === sub ncdirect_cursor_move_yx(NcdirectHandle $n, int32 $y, int32 $x --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_enable(NcdirectHandle $nc --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_disable(NcdirectHandle $nc --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_up(NcdirectHandle $nc, int32 $num --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_left(NcdirectHandle $nc, int32 $num --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_right(NcdirectHandle $nc, int32 $num --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_down(NcdirectHandle $nc, int32 $num --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_yx(NcdirectHandle $n, uint32 $y is rw, uint32 $x is rw --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_push(NcdirectHandle $n --> int32) is native(&core-lib) is export { * } sub ncdirect_cursor_pop(NcdirectHandle $n --> int32) is native(&core-lib) is export { * } # === Screen === sub ncdirect_clear(NcdirectHandle $nc --> int32) is native(&core-lib) is export { * } # === Drawing === # wchars is const wchar_t* — platform-specific, use Pointer sub ncdirect_box(NcdirectHandle $n, uint64 $ul, uint64 $ur, uint64 $ll, uint64 $lr, Pointer $wchars, uint32 $ylen, uint32 $xlen, uint32 $ctlword --> int32) is native(&core-lib) is export { * } sub ncdirect_light_box(NcdirectHandle $n, uint64 $ul, uint64 $ur, uint64 $ll, uint64 $lr, uint32 $ylen, uint32 $xlen, uint32 $ctlword --> int32) is native(&ffi-lib) is export { * } sub ncdirect_heavy_box(NcdirectHandle $n, uint64 $ul, uint64 $ur, uint64 $ll, uint64 $lr, uint32 $ylen, uint32 $xlen, uint32 $ctlword --> int32) is native(&ffi-lib) is export { * } sub ncdirect_ascii_box(NcdirectHandle $n, uint64 $ul, uint64 $ur, uint64 $ll, uint64 $lr, uint32 $ylen, uint32 $xlen, uint32 $ctlword --> int32) is native(&ffi-lib) is export { * } sub ncdirect_rounded_box(NcdirectHandle $n, uint64 $ul, uint64 $ur, uint64 $ll, uint64 $lr, uint32 $ylen, uint32 $xlen, uint32 $ctlword --> int32) is native(&core-lib) is export { * } sub ncdirect_double_box(NcdirectHandle $n, uint64 $ul, uint64 $ur, uint64 $ll, uint64 $lr, uint32 $ylen, uint32 $xlen, uint32 $ctlword --> int32) is native(&core-lib) is export { * } sub ncdirect_hline_interp(NcdirectHandle $n, Str $egc, uint32 $len, uint64 $h1, uint64 $h2 --> int32) is native(&core-lib) is export { * } sub ncdirect_vline_interp(NcdirectHandle $n, Str $egc, uint32 $len, uint64 $h1, uint64 $h2 --> int32) is native(&core-lib) is export { * } # === Input === sub ncdirect_get(NcdirectHandle $n, Timespec $absdl, Ncinput $ni --> uint32) is native(&core-lib) is export { * } sub ncdirect_inputready_fd(NcdirectHandle $n --> int32) is native(&core-lib) is export { * } sub ncdirect_get_nblock(NcdirectHandle $n, Ncinput $ni --> uint32) is native(&ffi-lib) is export { * } sub ncdirect_get_blocking(NcdirectHandle $n, Ncinput $ni --> uint32) is native(&ffi-lib) is export { * } # === Visual/image (ncdirectv* and ncdirectf* are opaque) === sub ncdirect_render_image(NcdirectHandle $n, Str $filename, int32 $align, int32 $blitter, int32 $scale --> int32) is native(&core-lib) is export { * } # Returns ncdirectv* (opaque rendered frame) sub ncdirect_render_frame(NcdirectHandle $n, Str $filename, int32 $blitter, int32 $scale, int32 $maxy, int32 $maxx --> Pointer) is native(&core-lib) is export { * } # ncdv is ncdirectv* (opaque) sub ncdirect_raster_frame(NcdirectHandle $n, Pointer $ncdv, int32 $align --> int32) is native(&core-lib) is export { * } # Returns ncdirectf* (opaque loaded frame) sub ncdirectf_from_file(NcdirectHandle $n, Str $filename --> Pointer) is native(&core-lib) is export { * } # frame is ncdirectf* sub ncdirectf_free(Pointer $frame) is native(&core-lib) is export { * } # frame is ncdirectf*; returns ncdirectv* sub ncdirectf_render(NcdirectHandle $n, Pointer $frame, NcvisualOptions $vopts --> Pointer) is native(&core-lib) is export { * } # frame is ncdirectf* sub ncdirectf_geom(NcdirectHandle $n, Pointer $frame, NcvisualOptions $vopts, Ncvgeom $geom --> int32) is native(&core-lib) is export { * } # streamer is ncstreamcb (callback), curry is void* sub ncdirect_stream(NcdirectHandle $n, Str $filename, Pointer $streamer, NcvisualOptions $vopts, Pointer $curry --> int32) is native(&core-lib) is export { * } # === Capabilities === # Returns a malloc'd terminal name that the caller must free. sub _ncdirect_detected_terminal_raw(NcdirectHandle $n --> Pointer) is native(&core-lib) is symbol('ncdirect_detected_terminal') { * } sub ncdirect_detected_terminal(NcdirectHandle $n --> Str) is export { strdup-copy-and-free(_ncdirect_detected_terminal_raw($n)) } sub ncdirect_capabilities(NcdirectHandle $n --> Nccapabilities) is native(&core-lib) is export { * } sub ncdirect_cantruecolor(NcdirectHandle $n --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canchangecolor(NcdirectHandle $n --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canfade(NcdirectHandle $n --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canopen_images(NcdirectHandle $n --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canopen_videos(NcdirectHandle $n --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canutf8(NcdirectHandle $n --> bool) is native(&core-lib) is export { * } sub ncdirect_check_pixel_support(NcdirectHandle $n --> int32) is native(&core-lib) is export { * } sub ncdirect_canhalfblock(NcdirectHandle $nc --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canquadrant(NcdirectHandle $nc --> bool) is native(&ffi-lib) is export { * } sub ncdirect_cansextant(NcdirectHandle $nc --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canoctant(NcdirectHandle $nc --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canbraille(NcdirectHandle $nc --> bool) is native(&ffi-lib) is export { * } sub ncdirect_canget_cursor(NcdirectHandle $nc --> bool) is native(&core-lib) is export { * }