ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
digital_rain.h
Go to the documentation of this file.
1#pragma once
2
43#include <stddef.h>
44#include <stdint.h>
45#include <stdbool.h>
46#include "../../common.h"
47#include "../../platform/terminal.h"
48
49/* ============================================================================
50 * Types and Constants
51 * ============================================================================ */
52
64
71typedef struct {
75
76 // Effect parameters
77 float time;
78 float fall_speed;
82
83 // Color parameters
89
90 // Frame tracking
94
95/* ============================================================================
96 * Configuration Constants
97 * ============================================================================ */
98
105#define DIGITAL_RAIN_DEFAULT_FALL_SPEED 3.0f
106
113#define DIGITAL_RAIN_DEFAULT_RAINDROP_LENGTH 12.0f
114
121#define DIGITAL_RAIN_DEFAULT_BRIGHTNESS_DECAY 0.1f
122
128#define DIGITAL_RAIN_DEFAULT_ANIMATION_SPEED 1.0f
129
135#define DIGITAL_RAIN_DEFAULT_COLOR_R 0
136#define DIGITAL_RAIN_DEFAULT_COLOR_G 255
137#define DIGITAL_RAIN_DEFAULT_COLOR_B 80
138
144#define DIGITAL_RAIN_DEFAULT_CURSOR_BRIGHTNESS 2.0f
145
146/* ============================================================================
147 * Initialization and Cleanup
148 * ============================================================================ */
149
162digital_rain_t *digital_rain_init(int num_columns, int num_rows);
163
172
173/* ============================================================================
174 * Effect Application
175 * ============================================================================ */
176
204char *digital_rain_apply(digital_rain_t *rain, const char *frame, float delta_time);
205
215
216/* ============================================================================
217 * Parameter Adjustment
218 * ============================================================================ */
219
225void digital_rain_set_fall_speed(digital_rain_t *rain, float speed);
226
232void digital_rain_set_raindrop_length(digital_rain_t *rain, float length);
233
242
252
unsigned char uint8_t
Definition common.h:56
void digital_rain_set_raindrop_length(digital_rain_t *rain, float length)
Set digital rain raindrop length.
void digital_rain_reset(digital_rain_t *rain)
Reset digital rain effect state.
void digital_rain_set_color_from_filter(digital_rain_t *rain, color_filter_t filter)
Set digital rain color from color filter.
void digital_rain_set_fall_speed(digital_rain_t *rain, float speed)
Set digital rain fall speed.
void digital_rain_set_color(digital_rain_t *rain, uint8_t r, uint8_t g, uint8_t b)
Set digital rain color.
void digital_rain_destroy(digital_rain_t *rain)
Destroy digital rain effect context.
char * digital_rain_apply(digital_rain_t *rain, const char *frame, float delta_time)
Apply digital rain effect to ASCII frame.
digital_rain_t * digital_rain_init(int num_columns, int num_rows)
Initialize digital rain effect context.
int frame
Definition splash.c:99
ClangTool/LibTooling compatibility shim for stdbool.h.
Digital rain column state.
float phase_offset
Phase offset for wobble variation.
float time_offset
Random time offset for this column (prevents synchronization)
float speed_multiplier
Speed variation multiplier (0.5 to 1.0)
Digital rain effect context.
float time
Current simulation time (accumulated)
float animation_speed
Overall animation speed multiplier.
uint8_t color_b
Matrix green B component.
float brightness_decay
Brightness smoothing factor (0-1)
int num_columns
Number of columns in grid.
bool first_frame
True if this is the first frame.
digital_rain_column_t * columns
Per-column state array.
int num_rows
Number of rows in grid.
float cursor_brightness
Cursor brightness multiplier.
float fall_speed
Base fall speed multiplier.
float * previous_brightness
Previous frame brightness (for smoothing)
float raindrop_length
Length of each raindrop (in cells)
bool rainbow_mode
True if rainbow color cycling is enabled.
uint8_t color_g
Matrix green G component.
uint8_t color_r
Matrix green R component.
color_filter_t
Monochromatic color filter enumeration.
Definition terminal.h:599