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
Thomas Harte
68d6feaa03
Adds missing includes and gets more explicit about exceptions.
2019-01-25 20:19:50 -05:00
Thomas Harte
6a93d2d006
Corrects some minor spaces-instead-of-tabs errors.
2019-01-24 22:59:03 -05:00
Thomas Harte
a8acadbe13
Gives the shader builders freer rein over what to use as inputs, and turns angles
into a varying.
...
All dropping out during the never-ending diagnosis at play here.
2019-01-22 22:20:12 -05:00
Thomas Harte
727f2e2ba0
Updates to the ScanTarget world.
2019-01-17 22:28:02 -05:00
Thomas Harte
d593796dae
Reintroduces less-filtered black and white video where there's no colour burst.
2019-01-16 22:22:29 -05:00
Thomas Harte
ef0dbc2a41
Undoes hard-coding of target framebuffer and display gamma.
2019-01-15 21:33:30 -05:00
Thomas Harte
6c49953115
Returns gamma correction, and corrects Amstrad CPC brightness.
2019-01-14 22:56:08 -05:00
Thomas Harte
55290f4dad
Attempts a fix of frame_was_complete_ logic, to try to eliminate black flashes.
2019-01-14 21:42:45 -05:00
Thomas Harte
bb03d2f2ad
Removes redundant enumeration.
2019-01-13 23:07:50 -05:00
Thomas Harte
7aec5be61a
Cleans up and simplifies shader creation.
2019-01-13 22:49:01 -05:00
Thomas Harte
5d9521fcb9
Advances back to a semi-complete monochrome composite output.
...
i.e. composite phase and amplitude is ostensibly flowing to its new destination.
2019-01-11 22:02:15 -05:00
Thomas Harte
028e530232
Shunts output shader to its proper place.
2019-01-06 22:59:14 -05:00
Thomas Harte
906a2ff6eb
Switches to using clock times for buffer merging and output.
2019-01-06 18:47:01 -05:00
Thomas Harte
c392c819c1
Switches to using the announce
is_visible
flag to spot line ends.
2019-01-06 13:37:34 -05:00
Thomas Harte
e9d9ff0da0
Enhances ScanTarget to provide additional timing information.
2019-01-05 23:09:17 -05:00
Thomas Harte
46d756d298
Starts towards a flattening of the intermediate video processing.
...
Immediate issue: using x position to index into a bitmap sampled at the input data rate doesn't allow for the disconnection between input rate and output speed provided by the flywheels.
2019-01-05 18:11:39 -05:00
Thomas Harte
fd0ffc7085
Attempts an initial flattening of the pipeline, seemingly losing all output.
2019-01-01 21:02:21 -05:00
Thomas Harte
557a2a0ddf
Moves pipeline setup into draw(), where there'll definitely be an OpenGL context.
2018-11-29 19:41:54 -08:00