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
Thomas Harte
5660007221
Experimentally introduces adaptive quality intermediate buffers.
2019-03-05 21:41:20 -05:00