Thomas Harte
66c2eb0414
Further tightens const
and constexpr
usage.
2020-05-12 22:22:21 -04:00
Thomas Harte
31c6faf3c8
Adds a bunch of const
s.
2020-05-09 21:23:52 -04:00
Thomas Harte
394ee61c78
Starts a switch to reflectable-style runtime options.
...
The Amstrad CPC and ZX80/81 have made the jump so far, subject to caveats. The macOS build is unlikely currently to work properly.
2020-03-16 23:25:05 -04:00
Thomas Harte
8aabf1b374
Allows receivers of nullptr from begin_data to output any quantity of data.
2020-02-01 21:43:48 -05:00
Thomas Harte
019474300d
Centralises responsibility for picking irrelevant numbers for a computer-style monitor.
2020-01-30 23:26:02 -05:00
Thomas Harte
9136917f00
Enables the Oric for 50/60Hz mode switching, inventing PAL60 for the purpose.
2020-01-23 22:14:02 -05:00
Thomas Harte
428d141bc9
Factors out the logic behind the Atari 2600's frequency switching.
2020-01-23 20:12:44 -05:00
Thomas Harte
a71c5946f0
Ensures proper manipulation of scan_statuses, leading to the correct result out of a CRTMachine.
...
Possibly with the exception of the TMS, as I appear to have uncovered an unrelated issue there.
2020-01-21 22:28:25 -05:00
Thomas Harte
e7fff6e123
Minor step towards correct answers: divide by time_multiplier_.
2020-01-20 22:33:51 -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
9c7aa5f3fc
Attempts also to spot data writes without allocations.
2019-10-19 18:26:56 -04:00
Thomas Harte
418cd07e17
Adds a check against overrunning data.
2019-10-19 18:17:44 -04:00
Thomas Harte
f6f9024631
Corrects Macintosh aspect ratio (and framing).
2019-06-13 18:41:38 -04:00
Thomas Harte
9f6956bd87
Awards default values to Scan
, to appease GCC 7.3.
2019-02-19 21:40:42 -05:00
Thomas Harte
5ceb711bd3
Allows amplitude to be specified even for a default colour burst.
2019-01-17 20:47:42 -05:00
Thomas Harte
6c49953115
Returns gamma correction, and corrects Amstrad CPC brightness.
2019-01-14 22:56:08 -05:00
Thomas Harte
e9d9ff0da0
Enhances ScanTarget to provide additional timing information.
2019-01-05 23:09:17 -05:00
Thomas Harte
a25470ee41
Permits tweaking of PhaseLinkedLuminance8
sampling offset.
2018-11-29 16:29:28 -08:00
Thomas Harte
64465f97b6
Starts towards reintroducing the proper mechanisms for selecting a display type at runtime.
2018-11-28 17:53:33 -08:00
Thomas Harte
8f6664f0d7
Starts towards picking an input shader based on data type and pipeline.
2018-11-15 21:02:46 -05:00
Thomas Harte
8a699b6072
Kills setup_output
definitively, saving some indirection. set_scan_target
takes its place.
2018-11-14 21:52:57 -05:00
Thomas Harte
6d277fecd5
Makes ScanTarget
a little more communicative and orthogonal.
2018-11-10 19:52:57 -05:00
Thomas Harte
55da1e9c0f
Simplifies semantics a little and starts accepting a single buffer of pixel data.
2018-11-06 22:23:38 -05:00
Thomas Harte
9799aa0975
Completes documentation and rounds out implementation.
2018-11-04 22:17:33 -05:00
Thomas Harte
1effb97b74
Reintroduces colour phase acquisition from the colour burst.
2018-11-04 21:57:46 -05:00
Thomas Harte
eb28095041
Ensures proper accumulation and reporting of colour phase across lines.
2018-11-04 21:44:22 -05:00
Thomas Harte
014da41471
Ensures scan positions are communicated with a specified range, and switches manner of pixel clock communication.
2018-11-04 21:06:25 -05:00
Thomas Harte
f6562de325
Possibly adds enough for the Electron and ZX80 to start outputting dummy lines.
...
Let's see!
2018-11-03 23:40:39 -04:00
Thomas Harte
b40211d2c0
Starts to bend 'CRTMachine' to a world farther from owning the GPU relationship.
2018-11-03 21:54:25 -04:00
Thomas Harte
da4d883321
Adds first, incomplete attempts to talk to a ScanTarget from the CRT.
...
Does away with the hassle of `unsigned` while I'm here; that was a schoolboy error.
2018-11-03 19:58:44 -04:00
Thomas Harte
373820f080
Attempts to establish interface to decouple scan output from generation.
...
Restores some functionality that had dropped out in the interim: diagonal scans, decoupling of scan scaling from timing of the composite subcarrier.
2018-10-30 21:50:35 -04:00
Thomas Harte
4701aa149a
Adds first draft of an interface to separate CRT logic from the GPU-side stuff.
2018-10-29 22:08:17 -04:00
Thomas Harte
e582b4c8ca
Eliminates some dangling references to iCoordinate
.
2018-09-13 19:35:15 -04:00
Thomas Harte
a7508bc2ae
Switching explicitly to one pixel per sample eliminates the need for a bookender.
2018-09-12 20:11:17 -04:00
Thomas Harte
a38639d099
Eliminates the concept of an iCoordinate.
...
Real-life precision appears not to support the idea of sub-sample pixel storage.
2018-09-12 20:05:39 -04:00
Thomas Harte
35e84ff1a8
Corrects NTSC quadrature phase.
2018-05-31 21:40:46 -04:00
Thomas Harte
5d6b5d9f10
Eliminates all emdashes in cross-platform code.
2018-05-13 15:34:31 -04:00
Thomas Harte
0b771ce61a
Removes all instances of the copyright symbol.
2018-05-13 15:19:52 -04:00
Thomas Harte
6547560e52
Gives the CRT the ability to move iCoordinate multiplication outside of the fragment loop.
...
That resolves precision issues, as were plaguing the Apple II.
2018-04-18 19:29:03 -04:00
Thomas Harte
1c605d58e3
Removes the CRT requirement for an integral relationship between cycles and samples.
2018-04-16 20:00:56 -04:00
Thomas Harte
33281b9d89
Introduces S-Video as a video signal type at the interface level.
2018-03-30 10:25:41 -04:00
Thomas Harte
705d53cc21
Picks a phase for the TMS empirically.
2018-03-03 13:53:00 -05:00
Thomas Harte
4e720d57b2
With debugging hooks still on display, makes first attempt at dynamic analysis.
2018-02-01 07:53:52 -05:00
Thomas Harte
70039d22f1
Allows a CRT machine owner to set the target frame buffer for OpenGL output, breaking the assumption that it'll be zero.
2017-11-12 19:29:22 -05:00
Thomas Harte
2e15fab651
Doubles down on <cX> over <X.h> for C includes, and usage of the namespace for those types and functions.
2017-11-11 15:28:40 -05:00
Thomas Harte
6e1d69581c
Eliminates a variety of end-of-line spaces.
2017-11-07 22:54:22 -05:00
Thomas Harte
218b976dbc
Adds through route for setting a texture bookender, and exploits it from the Electron.
2017-10-23 18:35:37 -04:00
Thomas Harte
ba5f668338
Ensured full CRT instance initialisation.
2017-10-17 22:34:10 -04:00
Thomas Harte
ce78d9d12c
Introduces buffer alignment when writing to textures.
...
To avoid cross-boundary writes and hopefully to eke out a little better performance.
2017-10-17 22:09:48 -04:00
Thomas Harte
ad8c8166bc
Built in gamma conversion for all machines, assuming an output of 2.8 for PAL, 2.2 for NTSC.
2017-08-10 15:17:08 -04:00