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 |
|
Thomas Harte
|
ed8c73eb14
|
Ensured lengthy constant sync can't appear to be two sync pulses, regardless of other interruption.
|
2017-07-29 18:25:04 -04:00 |
|
Thomas Harte
|
3528a7f78b
|
Made an attempt at triggering vertical sync the expected number of time after it begins, regardless of total length.
|
2017-07-29 17:33:52 -04:00 |
|
Thomas Harte
|
54bcc40192
|
With an eye towards being more accurate as to vertical sync recognition: acknowledged that the detection period varies between PAL and NTSC.
|
2017-07-29 14:53:53 -04:00 |
|
Thomas Harte
|
be750ee427
|
Eliminated all dangling implicit signedness conversions.
|
2017-07-21 21:52:37 -04:00 |
|
Thomas Harte
|
12f7e1b804
|
Enshrined a default colour burst amplitude. Which now everybody relies on. The 102 figure is derived from the burst apparently being 40 IRE.
|
2017-07-07 23:35:14 -04:00 |
|
Thomas Harte
|
a5075d9eb5
|
Formalised the reasoning behind the colour phase fix-up and made it an opt-in per-caller value. Only the Oric currently needs to opt in.
|
2017-05-16 20:31:39 -04:00 |
|
Thomas Harte
|
e01f3f06c8
|
Completed curly bracket movement.
|
2017-03-26 14:34:47 -04:00 |
|
Thomas Harte
|
e63229a5e5
|
Pulled vertical sync detection entirely outside the loop, and gave it greater perspective.
|
2017-03-06 19:15:33 -05:00 |
|
Thomas Harte
|
ad73379d1c
|
Took vertical sync detection logic entirely out of the loop.
|
2017-03-05 20:17:55 -05:00 |
|
Thomas Harte
|
d19f26887d
|
Performed a very naive shuffling of output builder sets onto the OpenGL queue. Which makes the frequency switcher work properly from it's possibly-contextless thread.
|
2017-02-20 10:39:31 -05:00 |
|
Thomas Harte
|
6cb95b4fc5
|
Switched to passing around std::string s rather than char * s, because they should be easier to capture.
|
2017-02-20 10:35:33 -05:00 |
|
Thomas Harte
|
d979a822ac
|
Introduced a deferred task list for the OpenGL thread.
|
2017-02-19 21:46:07 -05:00 |
|
Thomas Harte
|
d0a93409e6
|
Made an attempt to simplify in-shader phase calculation, now that output position is a direct multiple of phase.
|
2017-01-11 08:18:00 -05:00 |
|
Thomas Harte
|
a549fd1ecc
|
Introduced the ability simply to piggy-back off the CRT's natural phase for the colour burst, thereby eliminating a couple of redundant independent attempts in the Oric and Electron.
|
2016-12-10 13:42:34 -05:00 |
|
Thomas Harte
|
5216dda675
|
Added some brief extra exposition to the texture builder, cut all internal tex_x/y and source_divider stuff from the CRT.
|
2016-12-06 19:08:55 -05:00 |
|
Thomas Harte
|
4ff33254e1
|
Sought to shift locking back up to the CRT. And to be a bit more RAII-ish.
|
2016-12-06 18:48:30 -05:00 |
|
Thomas Harte
|
1f91d29434
|
Progressed to usage of an array builder and a texture builder up to the point of a successful build.
|
2016-11-17 12:26:04 +08:00 |
|
Thomas Harte
|
0f3b02edb7
|
Switched to postfix underscores and gave this class ownership of a texture builder and an array builder, though it presently uses neither.
|
2016-11-17 11:00:11 +08:00 |
|
Thomas Harte
|
9ee11d7765
|
At the expense of API simplicity, at least for now, resolved the most glaring cause of dirty lines.
|
2016-11-16 11:34:05 +08:00 |
|
Thomas Harte
|
1f857c619b
|
Fixed timing issues. Static box of frame achieved!
|
2016-10-12 21:42:36 -04:00 |
|
Thomas Harte
|
257420b0f7
|
Fixed potential output error if buffer top were hit; clarified buffer size constants.
|
2016-05-10 19:04:03 -04:00 |
|