Thomas Harte
230b9fc9e6
Permits multiple simultaneous scan reading ranges.
...
Also updates the OpenGL scan target as per the latest movements of things.
2020-08-12 22:08:41 -04:00
Thomas Harte
2470055d90
Hides the modals.
2020-07-27 23:33:39 -04:00
Thomas Harte
77c5b86acc
Moves ownership of the scan and line buffers out of the BufferingScanTarget.
2020-07-26 22:46:03 -04:00
Thomas Harte
bc6426313e
Localises three of the four macros.
2020-07-26 17:54:33 -04:00
Thomas Harte
8bef7ff4c5
Makes all three PointerSet
s and is_updating_
private.
2020-07-26 17:27:19 -04:00
Thomas Harte
e260f92988
Privatises write_pointers_mutex_
and write_pointers_
.
...
Also gives subclasses control over write-area texture space allocation.
2020-07-23 22:54:40 -04:00
Thomas Harte
74788ccf8e
Pulls the BufferingScanTarget into a separate file.
2020-07-22 22:16:47 -04:00
Thomas Harte
0da5c07942
Starts splitting ring-buffer stuff from OpenGL stuff.
...
Initially via two very codependent classes.
2020-07-21 22:49:46 -04:00
Thomas Harte
495024d6fe
Cleans up all redundant lock/unique_guard declarations.
2020-06-15 00:24:10 -04:00
Thomas Harte
267006782f
Starts to add Qt target; resolves many build warnings.
2020-05-30 00:37:06 -04:00
Thomas Harte
fa933952f7
Throws in additional asserts, so far without uncovering anything.
2020-02-19 23:14:18 -05:00
Thomas Harte
3715e6b48a
Resolves potential data race on write_area_texture_.
2020-02-18 22:41:46 -05:00
Thomas Harte
95756f9716
Resolves data race on write_pointers_ close to machine setup.
2020-02-18 20:41:51 -05:00
Thomas Harte
b41920990f
Moves submit
step to end of line, rather than end of scan.
2020-02-04 22:15:20 -05:00
Thomas Harte
0dae608da5
Embraces std::make_[unique/shared] in place of .reset(new .
2019-12-23 21:31:46 -05:00
Thomas Harte
9d12ca691f
Makes meaning of 2048 here explicit.
2019-11-09 14:59:16 -05:00
Thomas Harte
68f9084d9e
Fixes timing of wrap.
2019-11-07 23:24:51 -05:00
Thomas Harte
f9a35c6636
Corrects potential wrap error for non-single-byte targets.
2019-11-07 22:23:26 -05:00
Thomas Harte
35f1a7ab10
Resolves a potential out-of-bounds array access.
...
Risk was: allocation exactly joins end of buffer. In which case the next get_data won't wrap the texture y coordinate since it won't spot an x overage.
2019-11-05 21:47:40 -05:00
Thomas Harte
4266264449
Switches to the more idiomatic .empty().
2019-10-27 21:31:31 -04:00
Thomas Harte
3794d94b68
Adds a sanity check on alignment.
2019-10-27 14:09:02 -04:00
Thomas Harte
66540ff86f
Permits end_data only after a begin_data.
2019-06-03 21:56:53 -04:00
Thomas Harte
b860ba2ee3
Disallows smaller buffer use for 'sharp' displays and tightens sampling window.
2019-06-03 15:58:14 -04:00
Thomas Harte
6f7dd10d95
Reduces draw/update contention.
...
This won't yet have any effect on either port owing to the way they handle contexts, but here it is.
2019-03-07 19:28:32 -05:00
Thomas Harte
84422676cb
Switches to more coherent logic about buffer sizing.
2019-03-06 19:19:30 -05:00
Thomas Harte
7441e3f4c5
Corrects aspect ratio when changing accumulation texture size.
2019-03-05 22:10:32 -05:00
Thomas Harte
5660007221
Experimentally introduces adaptive quality intermediate buffers.
2019-03-05 21:41:20 -05:00
Thomas Harte
86a6b04d4a
Begins attempts to keep track of display metrics.
...
i.e. a system that can both make smart decisions about when to use a lower resolution, and hopefully allow some sort of flywheel-esque horizontal retrace synchronisation. And possibly some raster beam chasing?
2019-03-04 21:54:50 -05:00
Thomas Harte
ccdeb3fbc8
Ensures draw is a no-op prior to pipeline setup.
2019-03-03 15:04:14 -05:00
Thomas Harte
bee0d09877
Splits display update and draw functions.
...
On the Mac, draw is now called without an update for resizing events, and
anything else requested by AppKit. In all other cases — including from
the SDL version — both are called as if they were still a single function.
2019-03-02 19:33:28 -05:00
Thomas Harte
6b4f6971de
Disables upper limit on frame buffer size.
...
Filtering is sufficiently imperfect as to make this justifiable only when performance requires it. So I need a test for that. Marked as TODO.
2019-02-26 22:39:07 -05:00
Thomas Harte
79707a3c66
Improves filtering slightly, and ensures coefficients are always set when needed.
2019-02-26 22:35:55 -05:00
Thomas Harte
68c5474e36
Reintroduces basic filtering for RGB mode (and introduces it for monochrome composite).
2019-02-26 22:21:49 -05:00
Thomas Harte
cd055a0298
Introduces an upper bound on output resolution, and resolves full-screen clear colour.
2019-02-25 22:07:48 -05:00
Thomas Harte
4c5dee866b
Ensures a proper black fill for Luminance8Phase8
input data.
2019-02-25 21:32:15 -05:00
Thomas Harte
7bb90c78d9
Resolves out-of-bounds initial condition whenever this loop began with start_line = 2047.
...
This, I believe, was the remaining cause of screen flashes.
2019-02-24 19:50:19 -05:00
Thomas Harte
a6e61ef83b
Reverts the clear colour to black.
...
The change was related to debugging; it was not intentionally committed.
2019-02-24 14:36:08 -05:00
Thomas Harte
c775a6c0f8
Introduces but disables a couple of bits of logging that might be helpful again in the future.
2019-02-24 14:30:39 -05:00
Thomas Harte
de7ebead23
Ensures the line_allocation_has_failed_ condition can be exited.
2019-02-21 22:30:41 -05:00
Thomas Harte
c0c4704419
Ensures that failure to allocate a line blocks all other allocations.
2019-02-21 21:38:48 -05:00
Thomas Harte
080f949f89
Ensures OpenGL version is logged prior to any other GL calls.
2019-02-20 20:21:17 -05:00
Thomas Harte
40bfde41cb
Adds an OpenGL version shout out.
2019-02-18 22:01:56 -05:00
Thomas Harte
8ecf885629
Attempts to put in better OpenGL safety rails.
2019-02-18 10:29:40 -05:00
Thomas Harte
7bd721f334
Resolves improper state if an end-of-frame clear is triggered by the first new line.
2019-02-17 21:49:53 -05:00
Thomas Harte
008f50832c
Fixed: the two shaders that use a common input array should use common bindings.
2019-02-10 22:39:24 -05:00
Thomas Harte
c94acb1ca2
With a little more debug logging, discovered an issue with incrementing by four.
2019-02-09 22:45:20 -05:00
Thomas Harte
b3b4b7cf0c
Corrects QAM texture generation logic.
2019-02-09 17:20:13 -05:00
Thomas Harte
eecd4417e7
Bites the bullet and accepts that an additional texture will be useful for QAM separation.
2019-02-09 16:54:31 -05:00
Thomas Harte
6ba1194d74
Sets a clear colour appropriate for phase-linked luminance clearing.
2019-02-03 22:33:04 -05:00
Thomas Harte
b75ad3def2
Updates the multimachine for the ScanTarget world.
2019-02-03 15:07:22 -05:00