TCOD
view release on metacpan or search on metacpan
lib/TCOD.pm view on Meta::CPAN
$ffi->attach( set_char_foreground => [qw( TCOD_console int int TCOD_color )] => 'void' );
$ffi->attach( get_char_foreground => [qw( TCOD_console int int )] => 'TCOD_color' );
$ffi->attach( set_default_background => [qw( TCOD_console TCOD_color )] => 'void' );
$ffi->attach( get_default_background => [qw( TCOD_console )] => 'TCOD_color' );
$ffi->attach( set_default_foreground => [qw( TCOD_console TCOD_color )] => 'void' );
$ffi->attach( get_default_foreground => [qw( TCOD_console )] => 'TCOD_color' );
# Root console functions
$ffi->attach( init_root => [qw( int int string int bool )] => 'void' );
$ffi->attach( set_custom_font => [qw( string int int int )] => 'void' );
$ffi->attach( map_ascii_code_to_font => [qw( int int int )] => 'void' );
$ffi->attach( map_ascii_codes_to_font => [qw( int int int int )] => 'void' );
$ffi->attach( map_string_to_font => [qw( string int int )] => 'void' );
$ffi->attach( is_fullscreen => [ ] => 'bool' );
$ffi->attach( set_fullscreen => [qw( bool )] => 'void' );
$ffi->attach( set_window_title => [qw( string )] => 'void' );
$ffi->attach( is_window_closed => [ ] => 'bool' );
$ffi->attach( has_mouse_focus => [ ] => 'bool' );
$ffi->attach( is_active => [ ] => 'bool' );
$ffi->attach( credits => [ ] => 'void' );
$ffi->attach( credits_render => [qw( int int bool )] => 'bool' );
$ffi->attach( credits_reset => [ ] => 'void' );
$ffi->attach( flush => [ ] => 'void' );
$ffi->attach( set_fade => [qw( uint8 TCOD_color )] => 'void' );
$ffi->attach( get_fade => [ ] => 'uint8' );
$ffi->attach( get_fading_color => [ ] => 'TCOD_color' );
$ffi->attach( set_color_control => [qw( int TCOD_color TCOD_color )] => 'void' );
$ffi->attach( wait_for_keypress => ['bool'] => 'TCOD_key' );
$ffi->attach( check_for_keypress => ['int' ] => 'TCOD_key' );
$ffi->attach( is_key_pressed => ['int' ] => 'bool' );
}
package TCOD::Sys {
$ffi->mangler( sub { 'TCOD_sys_' . shift } );
$ffi->attach( wait_for_event => [qw( int TCOD_key* TCOD_mouse* bool )] => 'TCOD_event' );
$ffi->attach( check_for_event => [qw( int TCOD_key* TCOD_mouse* )] => 'TCOD_event' );
$ffi->attach( save_screenshot => [qw( string )] => 'void' );
$ffi->attach( set_fps => [qw( int )] => 'void' );
$ffi->attach( get_fps => [ ] => 'int' );
$ffi->attach( sleep_milli => [qw( uint32 )] => 'void' );
$ffi->attach( elapsed_milli => [ ] => 'uint32' );
$ffi->attach( elapsed_seconds => [ ] => 'float' );
$ffi->attach( get_last_frame_length => [ ] => 'float' );
$ffi->attach( update_char => [qw( int int int TCOD_image int int )] => 'void' );
$ffi->attach( set_renderer => [qw( TCOD_renderer )] => 'void' );
$ffi->attach( get_renderer => [ ] => 'TCOD_renderer' );
# Deprecated
# $ffi->attach( create_directory => [qw( string )] => 'bool' );
# $ffi->attach( delete_directory => [qw( string )] => 'bool' );
# $ffi->attach( delete_file => [qw( string )] => 'bool' );
# $ffi->attach( is_directory => [qw( string )] => 'bool' );
# $ffi->attach( file_exists => [qw( string )] => 'bool' );
# $ffi->attach( clipboard_set => [qw( string )] => 'bool' );
# $ffi->attach( clipboard_get => [ ] => 'string' );
$ffi->attach( get_char_size => [qw( int* int* )] => 'void' => sub { $_[0]->( \my $w, \my $h ); ( $w, $h ) });
$ffi->attach( get_current_resolution => [qw( int* int* )] => 'void' => sub { $_[0]->( \my $w, \my $h ); ( $w, $h ) });
# $ffi->attach( get_fullscreen_offset => [qw( int* int* )] => 'void' => sub { $_[0]->( \my $x, \my $y ); ( $x, $y ) });
$ffi->attach( register_SDL_renderer => [qw( (opaque)->void )] => 'void' );
# $ffi->attach( set_dirty => [qw( int int int int )] => 'void' );
$ffi->attach( force_fullscreen_resolution => [qw( int int )] => 'void' );
}
package TCOD::Path {
$ffi->mangler( sub { 'TCOD_path_' . shift } );
my $new = sub {
my $sub = shift;
my $class = ref $_[0] || $_[0];
shift if $class eq __PACKAGE__;
$sub->(@_);
};
# Constructors
$ffi->attach( new_using_map => [qw( TCOD_map float )] => 'TCOD_path' => $new );
$ffi->attach( new_using_function => [qw( int int TCOD_path_func opaque float )] => 'TCOD_path' => $new );
$ffi->attach( compute => [qw( TCOD_path int int int int )] => 'bool' );
$ffi->attach( reverse => [qw( TCOD_path )] => 'void' );
$ffi->attach( is_empty => [qw( TCOD_path )] => 'bool' );
$ffi->attach( size => [qw( TCOD_path )] => 'int' );
$ffi->attach( get_origin => [qw( TCOD_path int* int* )] => 'void' => sub {
$_[0]->( $_[1], \my $x, \my $y );
return ( $x, $y );
});
$ffi->attach( get_destination => [qw( TCOD_path int* int* )] => 'void' => sub {
$_[0]->( $_[1], \my $x, \my $y );
return ( $x, $y );
});
$ffi->attach( get => [qw( TCOD_path int int* int* )] => 'void' => sub {
$_[0]->( @_[ 1, 2 ], \my $x, \my $y );
return ( $x, $y );
});
$ffi->attach( walk => [qw( TCOD_path int* int* bool )] => 'bool' => sub {
$_[0]->( $_[1], \my $x, \my $y, $_[2] ) or return;
return ( $x, $y );
});
$ffi->mangler( sub { shift } );
$ffi->attach( [ TCOD_path_delete => 'DESTROY' ] => ['TCOD_path'] => 'void' );
}
package TCOD::Dijkstra {
$ffi->mangler( sub { 'TCOD_dijkstra_' . shift } );
my $new = sub {
my $sub = shift;
my $class = ref $_[0] || $_[0];
( run in 0.735 second using v1.01-cache-2.11-cpan-2398b32b56e )