Thomas Harte
3a02b2b6c0
Ensure copy shader compiles, at least.
2026-02-01 17:19:29 -05:00
Thomas Harte
e56b4bd61b
Establish that the composition buffer is at least drawable.
...
The problem must lie in the composition shader, the scans vertex array or the connection between the two.
2026-02-01 16:06:02 -05:00
Thomas Harte
4c965ecf4e
Change premise of test_gl.
2026-02-01 13:14:21 -05:00
Thomas Harte
43448a6084
Establish that this isn't an "it just works" situation.
2026-02-01 00:00:02 -05:00
Thomas Harte
075c1b3ec9
Allocate new-pipeline vertex array + buffer.
2026-01-31 11:49:18 -05:00
Thomas Harte
4235bc07e2
Clarify logic for texture uploads.
2026-01-30 23:39:59 -05:00
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