1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-26 19:17:52 +00:00

Edge towards animations.

This commit is contained in:
Thomas Harte
2025-10-07 23:00:36 -04:00
parent a68c7aa45f
commit e6ccdc5a97
3 changed files with 12 additions and 3 deletions
+3 -3
View File
@@ -137,7 +137,7 @@ CRT::CRT(
const int vertical_sync_half_lines,
const bool should_alternate,
const Outputs::Display::InputDataType data_type
) {
) : animation_curve_(Numeric::CubicCurve::easeInOut()) {
scan_target_modals_.input_data_type = data_type;
scan_target_modals_.clocks_per_pixel_greatest_common_divisor = clocks_per_pixel_greatest_common_divisor;
set_new_timing(
@@ -156,7 +156,7 @@ CRT::CRT(
const int clocks_per_pixel_greatest_common_divisor,
const Outputs::Display::Type display_type,
const Outputs::Display::InputDataType data_type
) {
) : animation_curve_(Numeric::CubicCurve::easeInOut()) {
scan_target_modals_.input_data_type = data_type;
scan_target_modals_.clocks_per_pixel_greatest_common_divisor = clocks_per_pixel_greatest_common_divisor;
set_new_display_type(cycles_per_line, display_type);
@@ -168,7 +168,7 @@ CRT::CRT(
const int height_of_display,
const int vertical_sync_half_lines,
const Outputs::Display::InputDataType data_type
) {
) : animation_curve_(Numeric::CubicCurve::easeInOut()) {
scan_target_modals_.input_data_type = data_type;
scan_target_modals_.clocks_per_pixel_greatest_common_divisor = clocks_per_pixel_greatest_common_divisor;
set_new_timing(
+5
View File
@@ -17,6 +17,8 @@
#include "Outputs/CRT/Internals/Flywheel.hpp"
#include "Outputs/CRT/Internals/RectAccumulator.hpp"
#include "Numeric/CubicCurve.hpp"
namespace Outputs::CRT {
namespace PAL {
@@ -369,6 +371,9 @@ private:
// Accumulator for interesting detail from this frame.
Outputs::Display::Rect active_rect_, posted_rect_;
Numeric::CubicCurve animation_curve_;
int animation_step_ = 0;
static constexpr int AnimationSteps = 25;
bool frame_is_complete_ = false;
bool levels_are_interesting_ = false;