Thomas Harte
67ca298a72
Forces a no-op compute shader into the S-Video pipeline.
...
The intention is to restrict the area acted over, and to do the S-Video filtering in there. Then I'll just need two such stages for composite.
2020-09-01 18:39:52 -04:00
Thomas Harte
67d4dbf91a
Starts girding for a third pipeline.
2020-08-31 20:01:59 -04:00
Thomas Harte
b344269140
I think I accept the need for intermediate steps now.
...
This allocates storage.
2020-08-30 20:21:01 -04:00
Thomas Harte
bb547610f2
Adds commentary, shrinks some intermediate texture sizes.
2020-08-30 12:06:29 -04:00
Thomas Harte
1e1f007bb7
Possibly convinces myself that no-separation chroma/luma isn't practical.
...
... as appealing as it may be, were filters perfect.
2020-08-29 21:25:49 -04:00
Thomas Harte
c40d858f02
Switches back to angular stuff at input resolution; ensures all S-Video modes work.
...
Now to roll back onto composite. Fingers crossed!
2020-08-29 20:54:46 -04:00
Thomas Harte
3d564d85fd
Proves that per-pixel sine/cos evaluation avoids phase issues.
...
Even in PAL mode. But I'd rather not _require_ this as it kind of negates directly-sampled input.
2020-08-29 18:53:37 -04:00
Thomas Harte
02cea40ffa
Attempts to avoid introducing phase error in scanToComposition.
...
Also brightens S-Video up to RGB levels.
2020-08-25 22:41:37 -04:00
Thomas Harte
e502d336db
Having decided that these things probably need to be separate, starts drilling down on S-Video.
2020-08-25 22:05:19 -04:00
Thomas Harte
807cb99f6d
Composite angles are signed.
2020-08-23 21:39:04 -04:00
Thomas Harte
8b6879a782
Brief detour: introduces myself to C++11 multiline string literals.
...
A full cleaning coming soon, I imagine.
2020-08-23 21:18:38 -04:00
Thomas Harte
7ca0362f23
Treads water.
...
Difficult current question: why does the Atari 2600's display change colours as the display tries to achieve horizontal lock? Phase should be unchanged. Ergo something is amiss.
2020-08-23 21:03:26 -04:00
Thomas Harte
56c7bd242a
Marginally tidies.
2020-08-22 16:38:36 -04:00
Thomas Harte
5c6112415a
Sets appropriate clear colour for composition render pass.
2020-08-21 22:41:54 -04:00
Thomas Harte
bf6a0c9fc4
Achieves a return of composite colour for RGB-producing machines.
2020-08-21 22:06:36 -04:00
Thomas Harte
d54b937ab6
Starts trying to do actual composite processing.
2020-08-21 21:11:25 -04:00
Thomas Harte
7c23c32e44
Corrects composition colour phase.
2020-08-20 20:45:45 -04:00
Thomas Harte
4e21d24b5f
Corrects composition colour amplitude.
2020-08-20 20:34:37 -04:00
Thomas Harte
ad6fb85fda
Corrects use of composition buffer.
...
Something is still very obviously amiss in colour processing somewhere down the line, but the correct forms are once again visibly in evidence.
2020-08-20 20:21:28 -04:00
Thomas Harte
5dc39a5d24
Adds the composition render pass.
...
Albeit that something here doesn't work at present.
2020-08-19 21:56:53 -04:00
Thomas Harte
3597f687de
Continues sidling towards composite & S-Video handling.
2020-08-19 21:20:06 -04:00
Thomas Harte
8811506adf
Starts towards building a compound[/composition?] buffer.
...
I now need to discover whether I can use natural integer texture coordinates.
2020-08-17 22:10:02 -04:00
Thomas Harte
11dec6fc0f
Avoids a redundant clear.
2020-08-17 22:09:15 -04:00
Thomas Harte
59c4c8233f
Generalises existing scanToDisplay
to add lineToDisplay
.
2020-08-17 21:15:19 -04:00
Thomas Harte
9da79d2d81
Clarifies scaling logic.
2020-08-17 20:29:46 -04:00
Thomas Harte
246b474a25
Removes ONE_BIG_LOCK, having effectively neutered it anyway.
...
Starts work on more explicit API usage validation. Maybe the issue isn't a race condition?
2020-08-16 22:09:25 -04:00
Thomas Harte
27e8a3a1b5
Obeys modals' zoom.
...
Subject to an attempt at factoring aspect ratio differences.
2020-08-16 21:11:43 -04:00
Thomas Harte
745797b596
Introduces a stencil buffer plus the inter-frame clearing it allows.
2020-08-16 16:42:32 -04:00
Thomas Harte
940e9e037e
Adds first_scan
to LineMetadata.
...
Also reorders `Line` fields to match `Scan` fields, just for visual consistency.
2020-08-16 08:59:37 -04:00
Thomas Harte
512c0079a9
Makes thread safe.
2020-08-15 21:52:55 -04:00
Thomas Harte
645c29f853
Adds an intermediate buffer to correct inter-frame smoothing.
...
Also goes someway back to the old scan output scheduling, albeit presently with limited thread safety.
2020-08-15 21:24:10 -04:00
Thomas Harte
e55945674d
Reduces main thread blocking.
2020-08-14 22:16:49 -04:00
Thomas Harte
7ac88536dd
Respects machine aspect ratio.
...
To an extent. Doesn't currently deal with cropping of machines when the window aspect ratio is smaller.
2020-08-14 21:24:25 -04: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
27ca782cac
Enables blending; attempts to enable frame preservation.
...
The latter seems to be evidencing a double buffer at play. More investigation required.
On the plus side, the direct route is still well within GPU budget at 4k on my Core M. So a huge improvement there.
2020-08-12 19:34:07 -04:00
Thomas Harte
a136a00a2f
Takes a shot at adding RGB -> S-Video and composite conversion, for all RGB types.
2020-08-11 22:11:50 -04:00
Thomas Harte
637ec35d6a
Adds getters for standard colour-space conversion matrices.
...
These are just more details on the meaning of the colour spaces, so I think they belong here.
2020-08-11 19:58:57 -04:00
Thomas Harte
4b55df1cb4
Starts upon a macro-oriented means of RGB input function generation.
2020-08-10 22:03:39 -04:00
Thomas Harte
b9309268ba
Possibly finally succeeds at moving Accelerate.framework to where it should be.
2020-08-10 21:46:11 -04:00
Thomas Harte
8fa89baf54
Slightly cleans up Xcode project; reenables kiosk-for-Mac builds.
2020-08-10 21:43:32 -04:00
Thomas Harte
8374a5e579
Adds superficially correct compositeSampleLuminance8Phase8
function.
...
Thereby uncovering a minor error in my decoding of colour phase.
2020-08-10 21:33:59 -04:00
Thomas Harte
525233e10b
Ensures all input data types are parseable in Metal.
...
Though now I need to think a bit more about the best way to compose signal-type conversions, and whether output-type calculations (i.e. gamma, brightness) are applied.
2020-08-10 19:47:47 -04:00
Thomas Harte
eadda6a967
Further strips OpenGL from the macOS target.
2020-08-09 22:17:27 -04:00
Thomas Harte
3d6590af89
Throws out a little more OpenGL.
2020-08-09 22:11:31 -04:00
Thomas Harte
28d933d5d6
Does just enough to get 8-bit RGB and 1-bit luminance machines to display.
...
Assuming an 'RGB' output.
2020-08-09 21:19:07 -04:00
Thomas Harte
c1dc42a094
Add comment on latent design aim.
...
In the hope that I don't forget why I did this.
2020-08-09 21:18:23 -04:00
Thomas Harte
6384ff3ee7
Add fix for data_type_size_
for owners that don't change texture pointer upon new modals.
2020-08-09 21:17:51 -04:00
Thomas Harte
a118594c8b
Hacks to make RGB1 visible (in a fashion).
2020-08-09 20:45:51 -04:00
Thomas Harte
93c6105442
Corrects calculation of dirty texture area.
2020-08-09 20:45:14 -04:00
Thomas Harte
ced4a75a1a
Adds note on the buffering scan target's minor adaptation of data_offset.
2020-08-09 20:44:46 -04:00