1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-03-13 19:16:40 +00:00
Commit Graph

142 Commits

Author SHA1 Message Date
Thomas Harte
2cd72d58a1 Avoid double on-demand test. 2026-01-30 22:34:16 -05:00
Thomas Harte
85e190835f Use a Texture. 2026-01-30 22:22:52 -05:00
Thomas Harte
e04f89d2f1 Remove capacity for misuse. 2026-01-29 18:16:59 -05:00
Thomas Harte
7464a0c0ec Go a bit more RAII on vertex arrays. 2026-01-29 18:12:51 -05:00
Thomas Harte
21f1d8421c Avoid hardcoding source buffer size. 2026-01-29 17:06:45 -05:00
Thomas Harte
53bed7db58 Introduce a temporary vertex array to avoid replacement binding. 2026-01-29 15:01:21 -05:00
Thomas Harte
5f0ab48ec1 Enable generation of the needed composition shader.
Proving that I've forgotten something about vertex attribute bindings.
2026-01-29 11:03:02 -05:00
Thomas Harte
3ad36fffec Also install fromRGB matrix. 2026-01-29 09:16:54 -05:00
Thomas Harte
5a296fdd52 Move function into anonymous namespace. 2026-01-28 21:22:29 -05:00
Thomas Harte
de8d9e6e0c Set source texture unit. 2026-01-28 20:46:24 -05:00
Thomas Harte
e72ab3dd01 Factor out clock multiplier selection; apply composition uniforms. 2026-01-28 17:43:19 -05:00
Thomas Harte
00c1631111 Adapt to a regular function. 2026-01-27 17:33:24 -05:00
Thomas Harte
da0b241ea0 Include a test build of the new composition shader. 2026-01-26 22:16:34 -05:00
Thomas Harte
0d8fa93a05 Propagate an OpenGL API version, use it to wrap shader programs. 2025-12-16 22:23:48 -05:00
Thomas Harte
c491ba5cac Use sized types and std::copy_n. 2025-12-10 17:24:07 -05:00
Thomas Harte
da96df7df7 Ensure OpenGL appropriately letterboxes or pillarboxes. 2025-10-07 21:37:22 -04:00
Thomas Harte
4ea82581ec Factor out zoom logic, start trying to knock OpenGL into shape. 2025-10-07 13:29:21 -04:00
Thomas Harte
53a3d9042e Switch to multiline strings, shorter comments. 2025-10-06 22:58:50 -04:00
Thomas Harte
27246247a2 OpenGL: fix centring. 2025-10-06 20:58:42 -04:00
Thomas Harte
cbc96e2223 Reformat in proximity. 2025-10-06 20:45:20 -04:00
Thomas Harte
8fdf32cde8 Avoid OpenGL churn. 2025-10-06 20:43:12 -04:00
Thomas Harte
fac3d99f64 Switch to no-instance logging. 2025-09-12 07:17:23 -04:00
Thomas Harte
96bb4d50ba Promote macOS SDL target to C++23 as a testing chamber; resolve issues. 2025-02-27 18:13:35 -05:00
Thomas Harte
b61317ba7e Continue conversion of logging. 2024-01-19 22:02:26 -05:00
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 PointerSets 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