Skip to content

Commit e57d709

Browse files
committed
trailer
1 parent cf61787 commit e57d709

1 file changed

Lines changed: 47 additions & 63 deletions

File tree

trailer/trailer.c

Lines changed: 47 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -419,8 +419,7 @@ static void draw_anim4(float anim_t, Font roboto, Shader *star_sh,
419419
float fade_out = 1.0f - fminf(anim_t / 0.5f, 1.0f);
420420

421421
if (fade_out > 0.0f) {
422-
// draw_anim2(3.0f, roboto, star_sh);
423-
draw_anim3(3.0f, glow_sh, tex, star_sh, roboto);
422+
draw_anim3(5.5f, glow_sh, tex, star_sh, roboto);
424423
DrawRectangle(0, 0, SCREEN_W, SCREEN_H,
425424
(Color){BG.r, BG.g, BG.b, (unsigned char)((1.0f - fade_out) * 255)});
426425
}
@@ -459,12 +458,12 @@ static void draw_centered2(Font f,
459458
}
460459

461460
// ─── Haiku + title overlay (called every frame from anim5 onward) ─────────────
462-
#define T_NOVA 30.0f
461+
#define T_NOVA 31.5f
463462

464463
static void draw_haiku_overlay(float t, Font roboto) {
465464
float lh = FONT_TITLE + 16; // line height
466-
draw_centered(roboto, "Every thought is a star", HAIKU_Y, C_WHITE, fade_in(t, 25.0f, 0.5f));
467-
draw_centered(roboto, "Few form a constellation", HAIKU_Y + lh, C_WHITE, fade_in(t, 27.0f, 0.5f));
465+
draw_centered(roboto, "Each thought is a star", HAIKU_Y, C_WHITE, fade_in(t, 26.5f, 0.5f));
466+
draw_centered(roboto, "Few form a constellation", HAIKU_Y + lh, C_WHITE, fade_in(t, 28.5f, 0.5f));
468467
draw_centered(roboto, "But they shine brightest", HAIKU_Y + lh*2, C_WHITE, fade_in(t, T_NOVA, 0.5f));
469468
draw_centered2(roboto, "PufferLib ", C_WHITE, "4.0", C_CYAN,
470469
FOOTER_Y, fade_in(t, T_NOVA + 2.0f, 0.5f));
@@ -586,7 +585,6 @@ static void draw_anim5(float anim_t, float dt, Shader *star_sh) {
586585

587586
// ─── Video recording ──────────────────────────────────────────────────────────
588587
#define RECORD_FPS 30
589-
#define RECORD_SECS 38 // capture this many seconds then exit
590588

591589
typedef struct { int pipefd[2]; pid_t pid; } VideoRecorder;
592590

@@ -653,75 +651,61 @@ int main(void) {
653651
init_anim5();
654652

655653
VideoRecorder recorder;
656-
bool recording = OpenVideo(&recorder, "trailer/trailer.mp4", SCREEN_W, SCREEN_H);
654+
int phase = 0;
655+
float phase_time = 0;
656+
bool recording = OpenVideo(&recorder, "trailer/v1.mp4", SCREEN_W, SCREEN_H);
657657
if (!recording) fprintf(stderr, "Warning: video recording disabled\n");
658658

659659
while (!WindowShouldClose()) {
660-
float t = GetTime();
661660
float dt = GetFrameTime();
662-
if (t > RECORD_SECS) break;
661+
phase_time += dt;
662+
663+
if (phase == 0 && phase_time > 10.0f) {
664+
if (recording) CloseVideo(&recorder);
665+
phase = 1;
666+
phase_time = 0;
667+
recording = OpenVideo(&recorder, "trailer/v2.mp4", SCREEN_W, SCREEN_H);
668+
init_bg_stars(); // Reset stars for the second video
669+
}
670+
671+
if (phase == 1 && phase_time > 42.5f) break;
663672

664673
BeginDrawing();
665674
ClearBackground(BG);
666675

667-
/* ============================================================
668-
ANIMATION 1: Speed Comparison (0–3s)
669-
============================================================ */
670-
if (t < 3.0f) {
676+
if (phase == 0) {
671677
update_anim1(dt, roboto, &star_shader);
672-
}
673-
674-
/* ============================================================
675-
ANIMATION 2: Bar chart (0–3s), then held final state (3–6s)
676-
ANIMATION 3: PufferNet glow on right half, overlaps 3–6s
677-
============================================================ */
678-
else if (t < 9.0f) {
679-
// draw_anim2(anim2_t - 3.0f, roboto, &star_shader);
680-
build_bg_verts();
681-
draw_stars(bg_verts, bg_draw_count, &star_shader);
682-
683-
if (t >= 6.0f) {
684-
draw_anim3(t - 6.0f, &glow_shader, puffernet, &star_shader, roboto);
678+
} else {
679+
float t = phase_time;
680+
if (t < 5.0f) {
681+
build_bg_verts();
682+
draw_stars(bg_verts, bg_draw_count, &star_shader);
683+
}
684+
else if (t < 10.5f) {
685+
build_bg_verts();
686+
draw_stars(bg_verts, bg_draw_count, &star_shader);
687+
draw_anim3(t - 5.0f, &glow_shader, puffernet, &star_shader, roboto);
688+
}
689+
else if (t < 12.5f) {
690+
update_bg_spiral(dt);
691+
draw_anim4(t - 10.5f, roboto, &star_shader, &glow_shader, puffernet);
692+
}
693+
else if (t < 22.5f) {
694+
draw_anim4(2.0f, roboto, &star_shader, &glow_shader, puffernet);
695+
}
696+
else if (t < 31.5f) {
697+
update_bg_spiral(dt);
698+
draw_anim5(t - 22.5f, dt, &star_shader);
699+
draw_haiku_overlay(t, roboto);
700+
}
701+
else {
702+
update_bg_nova(dt);
703+
build_bg_verts_spiral(1.0f, 1);
704+
draw_stars(bg_verts, bg_draw_count, &star_shader);
705+
draw_haiku_overlay(t, roboto);
685706
}
686707
}
687708

688-
/* ============================================================
689-
ANIMATION 4: Spiral in (9–11s, 2s)
690-
============================================================ */
691-
else if (t < 11.0f) {
692-
update_bg_spiral(dt);
693-
draw_anim4(t - 9.0f, roboto, &star_shader, &glow_shader, puffernet);
694-
}
695-
696-
/* ============================================================
697-
Pause (11–21s): spiral frozen
698-
============================================================ */
699-
else if (t < 21.0f) {
700-
draw_anim4(2.0f, roboto, &star_shader, &glow_shader, puffernet);
701-
}
702-
703-
/* ============================================================
704-
ANIMATION 5: Spiral resumes (21s+), thumbnails start at 22s
705-
============================================================ */
706-
else if (t < 30.0f) {
707-
update_bg_spiral(dt);
708-
draw_anim5(t - 22.0f, dt, &star_shader);
709-
draw_haiku_overlay(t, roboto);
710-
}
711-
712-
/* ============================================================
713-
ANIMATION 6: Nova — stars explode outward (32s+)
714-
Text "4.0" and "puffer.ai" fade in 2s after nova
715-
============================================================ */
716-
else {
717-
update_bg_nova(dt);
718-
build_bg_verts_spiral(1.0f, 1);
719-
draw_stars(bg_verts, bg_draw_count, &star_shader);
720-
draw_haiku_overlay(t, roboto); // lines 1+2 already faded in; line 3 + title continue here
721-
}
722-
723-
724-
//DrawFPS(SCREEN_W - 80, 8);
725709
static int frame_counter = 0;
726710
if (recording && (frame_counter++ % 2 == 0))
727711
WriteFrame(&recorder, SCREEN_W, SCREEN_H);

0 commit comments

Comments
 (0)