1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-19 02:22:39 +00:00
Commit Graph

75 Commits

Author SHA1 Message Date
Thomas Harte ce5aae3f7d Adjust more dangling indentation changes. 2024-12-04 22:29:08 -05:00
Thomas Harte b61317ba7e Continue conversion of logging. 2024-01-19 22:02:26 -05:00
Thomas Harte a3d37640aa Switch include guards to #pragma once. 2024-01-16 23:34:46 -05:00
Thomas Harte 2b56b7be0d Simplify namespace syntax. 2023-05-10 16:02:18 -05:00
Thomas Harte 583f6b1ba2 Modifies BufferingScanTarget to allow has-a relationship.
I might switch fully to has-a. Further consideration required.
2020-08-07 22:03:27 -04:00
Thomas Harte 5165e65021 Reduces scan_buffer_ to a saner size.
Albeit still probably overspecified.
2020-07-28 22:36:57 -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 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 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 b04daca98e Picks a safer default construction. 2020-02-09 19:13:21 -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 294e09f275 All these 'override's can be 'final's.
At least for the purpose of being communicative. I doubt there's much to gain in terms of compiler output — the DiskImageHolder can avoid some virtual lookups but nothing else leaps out.
2020-01-23 22:57:51 -05:00
Thomas Harte 684644420a Increases scan buffer availability. 2019-10-20 17:22:41 -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 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 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 68c5474e36 Reintroduces basic filtering for RGB mode (and introduces it for monochrome composite). 2019-02-26 22:21:49 -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 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 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 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 6a43fc5df0 Resolves a GCC-troubling circular declaration issue vs. atomic.h. 2019-01-25 19:30:39 -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 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 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
Thomas Harte d45c2a1f28 Settles, at least for now, on 15-tap notch filtering. 2018-11-26 22:34:31 -05:00
Thomas Harte cf49603a9e Makes first reintroduction of colour composite decoding. 2018-11-24 22:30:39 -05:00
Thomas Harte 538c57664f Establishes attribute bindings to allow multiple shaders to use the same vertex array. 2018-11-24 16:06:26 -05:00
Thomas Harte d4ac79b0af Attempts to introduce a full-on processing pipeline, in theory putting me two shaders away from completion.
Well, subject to finding the last flashing bug and updating the multimachine, anyway.
2018-11-23 22:34:38 -05:00
Thomas Harte 396cf72029 Renames OutputType as DisplayType and promotes it to a scan target modal. 2018-11-22 14:36:46 -05:00
Thomas Harte bfe9704829 Reintroduces respect of each machine's nominated visible area. 2018-11-22 13:22:04 -05:00