Thomas Harte
0f6934a131
This uses Cycles and HalfCycles, so should include ClockReceiver.
2021-11-11 09:24:32 -05:00
Thomas Harte
6a15bb15ca
Adds a simpler way of deferring single values.
2021-08-07 17:29:21 -04:00
Thomas Harte
6216d53b1a
Adds a faster flushing HalfCycles -> Cycles conversion.
2021-07-23 20:07:57 -04:00
Thomas Harte
5729e6e13a
Corrects potential JustInTimeActor overflow.
2021-06-27 21:36:41 -04:00
Thomas Harte
b698056f78
Correct divisor.
2021-06-27 17:39:13 -04:00
Thomas Harte
95c906f03d
Takes a serious shot at back_map
.
2021-06-27 17:36:25 -04:00
Thomas Harte
be19fa9dde
This mapping needs to know where it will occur.
2021-06-27 17:30:09 -04:00
Thomas Harte
81e9ba5608
This is correct from the Enterprise's side of things, I think.
...
I just need to complete the missing part of JustInTimeActor. After I do some empirical testing of this.
2021-06-27 17:24:21 -04:00
Thomas Harte
d1b89392a2
Improve exposiiton.
2021-06-24 22:18:31 -04:00
Thomas Harte
266310d9c2
Fixes automatic flushing for non-1/1-clocked actors.
2021-06-18 18:43:08 -04:00
Thomas Harte
1266bbb224
Makes the TMS a sequence-point-generating JustInTimeActor.
2021-04-05 21:02:37 -04:00
Thomas Harte
837b9499d5
Translates Oric video and Disk II into JustInTimeActors.
2021-04-04 20:43:16 -04:00
Thomas Harte
d77ddaf4fa
Switches the Electron to JustInTimeActor video.
...
Also reorders template parameters; I think that specifying a different time base is likely to be more common than using a divider.
2021-04-04 17:33:49 -04:00
Thomas Harte
448d9dc3e1
Correct article.
2021-04-04 16:14:47 -04:00
Thomas Harte
158122fbf4
Determine TargetTimeScale
automatically.
2021-04-04 15:37:07 -04:00
Thomas Harte
417ece2386
Adds a couple of TODOs and some further documentation.
2021-04-04 00:25:22 -04:00
Thomas Harte
77b241af4f
Eliminates unused RealTimeActor, provides more feedback from +=, gets specific as to nodiscard
s.
2021-04-03 21:26:43 -04:00
Thomas Harte
7937cc2d0f
Imputes ClockingHint::Observer
logic into JustInTimeActor.
2021-03-26 23:44:15 -04:00
Thomas Harte
3162873a9c
Improves the meaning and result of time_since_flush().
2020-12-01 18:35:07 -05:00
Thomas Harte
8093f67173
Ensures video interrupts can't be missed by a suitably-timed access.
2020-11-26 16:11:03 -05:00
Thomas Harte
bb80e53021
Reduces frequency of video flushes.
2020-11-16 21:55:41 -05:00
Thomas Harte
9a55eb56ea
Attempts to provide saner sequence point behaviour.
2020-11-16 19:00:11 -05:00
Thomas Harte
9206ab5dc3
Adds notes to self; implements get_next_sequence_point for video, allowing per-line interrupts.
2020-11-16 14:42:50 -05:00
Thomas Harte
7e39550fc0
Attempts to make JustInTimeActor sequence-point aware.
...
With the objective of chopping out a lot of future boilerplate.
2020-11-15 21:58:18 -05:00
Thomas Harte
287bfeb924
Hacks in 40-column text.
...
Hot gossip: my IIgs is reporting a system error. A clue!
2020-11-08 17:01:23 -05:00
Thomas Harte
699fb0aa4b
Switches to just-in-time video, for easy access to a clock divider.
2020-11-07 19:40:26 -05:00
Thomas Harte
3db4a8c312
Attempts to improve vsync deadline estimation.
...
Also increases probability of bad estimation being discarded.
2020-07-27 21:08:00 -04:00
Thomas Harte
a096a09c72
Trusts Qt to supply a refresh rate, and handles retina <-> non-retina window transitions.
2020-06-30 23:03:39 -04:00
Thomas Harte
3ddc1a1722
Eliminates hard-coded concept of timer jitter.
2020-06-25 23:59:44 -04:00
Thomas Harte
9d4b49bbb5
Attempts to be more rigorous in vsync prediction.
2020-06-23 22:59:12 -04:00
Thomas Harte
b96f7711e3
Corrects attempt at back-to-UI final window SDI behaviour.
...
Maybe it'll turn out to be not what I want, but at least now it works.
2020-06-22 22:36:36 -04:00
Thomas Harte
240d3c482b
Removes redundant constructors.
2020-06-19 23:26:22 -04:00
Thomas Harte
79833deeaf
With some attempt at vsync prediction, seeks to smooth audio/video output.
...
There's plenty more work to do here, but hopefully it takes the issue immediately off the table.
2020-06-14 19:26:56 -04:00
Thomas Harte
512a52e88d
Increases const correctness, marks some additional constructors as constexpr, switches std::atomic construction style.
2020-05-20 23:34:26 -04:00
Thomas Harte
31c6faf3c8
Adds a bunch of const
s.
2020-05-09 21:23:52 -04:00
Thomas Harte
886d923e30
Attempts to permit fixed speed multiplication.
2020-02-10 23:30:32 -05:00
Thomas Harte
0b0a7e241b
Factors out the stuff of time warping.
2020-02-09 22:11:06 -05:00
Thomas Harte
705d14259c
Experimentally switches to a 'high-resolution' clock for SDL.
2020-02-09 21:44:55 -05:00
Thomas Harte
ee16095863
Withdraws advance_to_next
; once it has to cope with simultaneous events it stops being faster than advance
.
...
I could possibly try to deal with those at insertion time, but it'd get messy.
2020-01-29 22:45:10 -05:00
Thomas Harte
f0a6e0f3d5
Splits out the queue management stuff from queue+action.
...
Temporarily breaks ST video in the endeavour.
2020-01-29 22:18:41 -05:00
Thomas Harte
8c4fb0f688
Extends the DeferredQueue to allow out-of-order enqueing.
2020-01-29 21:49:52 -05:00
Thomas Harte
baa51853c4
Introduces RealTimeActor
, providing the same interface as JustInTimeActor
.
2020-01-29 21:26:15 -05:00
Thomas Harte
56448373ae
Splits one line into two, for the benefit of step debugging.
2020-01-22 19:32:23 -05:00
Thomas Harte
d97a073d1b
Adds the necessary routine for all machines to be able to respond to get_scan_status.
...
They all just as the CRT, as all are currently based on the CRT. Which doesn't currently know the total clock rate it would need to in order properly to scale the answer to the question. Further thought coming.
2020-01-20 21:45:10 -05:00
Thomas Harte
09513ec14c
Gets explicit about constexpr expectations here.
2019-12-30 22:58:19 -05:00
Thomas Harte
b98703bd5b
Corrects lack of const
.
2019-11-18 22:11:52 -05:00
Thomas Harte
5309ac7c30
Annotates JustInTimeActor as force inline.
2019-10-30 23:18:42 -04:00
Thomas Harte
1c154131f9
Expands size of storage in Cycles/HalfCycles; adjusts widely to compensate.
2019-10-29 22:36:29 -04:00
Thomas Harte
1d790ec2a9
Adds the option for a clock conversion to JustInTimeActor and slows the MFP's clock rate.
2019-10-28 21:35:10 -04:00
Thomas Harte
55710ea00e
Switches the presumption to requiring NDEBUG to avoid forced inlines.
2019-10-26 22:43:25 -04:00