fortplot_animation_core Module



Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: DEFAULT_FRAME_INTERVAL_MS = 50
integer, public, parameter :: DEFAULT_ANIMATION_FPS = 10
integer, public, parameter :: MIN_VALID_VIDEO_SIZE = 100
integer, public, parameter :: MIN_EXPECTED_VIDEO_SIZE = 1000
integer, public, parameter :: MAX_FILENAME_LENGTH = 255
integer, public, parameter :: MAX_RETRY_ATTEMPTS = 3
integer, public, parameter :: BASE_RETRY_DELAY_MS = 100
procedure(save_animation_interface), public, pointer :: save_animation_impl => null()

Interfaces

public interface FuncAnimation

  • private function FuncAnimation_procedure(animate_func, frames, interval, fig) result(anim)

    Arguments

    Type IntentOptional Attributes Name
    procedure(animate_interface) :: animate_func
    integer, intent(in) :: frames
    integer, intent(in), optional :: interval
    type(figure_t), intent(in), optional, target :: fig

    Return Value type(animation_t)

  • private function FuncAnimation_object(animate_func, frames, interval, fig) result(anim)

    The caller owns animate_func and must declare it TARGET and keep it alive until the returned animation is no longer used.

    Arguments

    Type IntentOptional Attributes Name
    class(animation_callback_t), intent(inout), target :: animate_func
    integer, intent(in) :: frames
    integer, intent(in), optional :: interval
    type(figure_t), intent(in), optional, target :: fig

    Return Value type(animation_t)


Abstract Interfaces

abstract interface

  • public subroutine animate_interface(frame)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: frame

abstract interface

  • public subroutine save_animation_interface(anim, filename, fps, status)

    Arguments

    Type IntentOptional Attributes Name
    class(animation_t), intent(inout) :: anim
    character(len=*), intent(in) :: filename
    integer, intent(in), optional :: fps
    integer, intent(out), optional :: status

Derived Types

type, public, abstract ::  animation_callback_t

Type-Bound Procedures

procedure(animation_update_t), public, deferred :: update

type, public ::  animation_t

Components

Type Visibility Attributes Name Initial
procedure(animate_interface), public, pointer, nopass :: animate_func => null()
class(animation_callback_t), public, pointer :: callback => null()
integer, public :: frames = 0
integer, public :: interval_ms = DEFAULT_FRAME_INTERVAL_MS
logical, public :: save_frames = .false.
character(len=:), public, allocatable :: frame_pattern
class(figure_t), public, pointer :: fig => null()

Type-Bound Procedures

procedure, public :: run
procedure, public :: has_callback
procedure, public :: render_frame
procedure, public :: save_png_sequence
procedure, public :: set_save_frames
procedure, public :: save_frame_sequence
procedure, public :: set_figure
procedure, public :: save