1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-21 02:17:08 +00:00
Commit Graph

202 Commits

Author SHA1 Message Date
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 24fb95291a Reverts to support a full RGBA colour buffer. 2019-03-07 19:22:40 -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 641e349f33 Switches to an 8bpp stencil, for Nvidia compatibility. 2019-03-03 20:38:24 -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 d122535a65 Unifies the OpenGL screenshot code and corrects it for arbitrary alignment. 2019-02-27 21:05:02 -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 694783efe9 Brings S-Video inside the group that filters luminance.
Thereby revealing some sort of error in offset selection.
2019-02-26 22:27:40 -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 8f2abab0d9 Ensures texture targets are initially clear. 2019-02-25 21:55:14 -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 2f491b5be1 Reintroduces fragment snapping for composite colour sampling.
Thereby uncovers some sort of slightly-off recording of scan lines. On the Apple II, individual scans reach the ScanTarget at a density of exactly 0.25 colour cycles per pixel. So that timing information propagates exactly. But the whole lines that are composed via ::announce end up trying to fit 0.250154 colour cycles per pixel. Which creates a phase error as the display progresses from left to right.

This will need to be resolved in order to be able to fix the Apple II's intended colour phase. But, also, it's probably what was wrong with the Oric. And, quite possibly, why the single-step shader didn't work.
2019-02-24 13:39:14 -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 ddf5e1632d Ensures log memory is automatically initialised. 2019-02-18 22:08:03 -05:00
Thomas Harte 40bfde41cb Adds an OpenGL version shout out. 2019-02-18 22:01:56 -05:00
Thomas Harte e0751af56d Handles the 0 return case. 2019-02-18 21:56:49 -05:00
Thomas Harte 3979faf43b Gets more explicit about potential causes of failure. 2019-02-18 21:53:35 -05:00
Thomas Harte 878b480a44 Tidies up marginally. 2019-02-18 21:37:07 -05:00
Thomas Harte b35b6b2ba8 Resolves a couple of missing #includes for cassert. 2019-02-18 21:29:39 -05:00
Thomas Harte 6b2e1fe62b Makes error reporting more communicative. 2019-02-18 11:13:54 -05:00
Thomas Harte 8ecf885629 Attempts to put in better OpenGL safety rails. 2019-02-18 10:29:40 -05:00
Thomas Harte 6d76b7cd94 Attempts to ensure proper colour output during alternating PAL lines. 2019-02-17 21:50:15 -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 ec8f1157c8 Corrects S-Video output. 2019-02-12 19:31:12 -05:00
Thomas Harte 037cbd534e Corrects phase error in chrominance separation. 2019-02-12 19:24:28 -05:00
Thomas Harte 208ef70e31 Corrects documentation. 2019-02-12 18:55:58 -05:00
Thomas Harte 2fa4c59523 Correction: use the QAM texture for colours. 2019-02-12 18:42:28 -05:00
Thomas Harte cda0a2de79 Establishes QAM colour buffer lookups within the composite colour path.
Subject to errors in channel scaling and absolute position.
2019-02-10 23:02:31 -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 d341f98b09 Corrects horizontal scale. 2019-02-09 18:52:43 -05:00
Thomas Harte e35a3ab566 Ensures proper uniforms and varyings for the qam_separation_shader. 2019-02-09 18:35:14 -05:00
Thomas Harte b3b4b7cf0c Corrects QAM texture generation logic. 2019-02-09 17:20:13 -05:00
Thomas Harte 1cd6d58f17 Restores S-Video through line, as monochrome. 2019-02-09 17:13:43 -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 798cc58f76 Simplifies the composite colour shader no longer to handle colour. 2019-02-05 19:22:35 -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 e5f75b5df2 Resolves repetition between svideo_sample and composite_sample. 2019-02-03 22:09:16 -05:00
Thomas Harte b75ad3def2 Updates the multimachine for the ScanTarget world. 2019-02-03 15:07:22 -05:00