swayfx-mosaic/include/sway/animation_manager.h
2026-10-10 06:26:32 +02:00

37 lines
851 B
C

#ifndef _SWAY_ANIMATION_MANAGER_H
#define _SWAY_ANIMATION_MANAGER_H
#include <stdbool.h>
#include <wayland-util.h>
struct sway_container;
struct sway_server;
// TODO: make animation just a pointer to progress, make multiplier and callback private
struct animation {
struct wl_list link;
float progress;
void *data;
float multiplier;
bool initialized;
void (*update)(void *);
void (*complete)(void *);
};
void animation_manager_init(struct sway_server *server);
struct animation init_animation(void *data);
void refresh_animation_manager_timing();
void add_animation(struct animation *animation, void (*update_callback)(void *),
void (*complete_callback)(void *));
void finish_animation(struct animation *animation);
void start_animations();
float get_animated_value(float from, float to, const struct animation *animation);
#endif