Thomas Harte
68d6feaa03
Adds missing includes and gets more explicit about exceptions.
2019-01-25 20:19:50 -05:00
Thomas Harte
6a93d2d006
Corrects some minor spaces-instead-of-tabs errors.
2019-01-24 22:59:03 -05:00
Thomas Harte
a8acadbe13
Gives the shader builders freer rein over what to use as inputs, and turns angles
into a varying.
...
All dropping out during the never-ending diagnosis at play here.
2019-01-22 22:20:12 -05:00
Thomas Harte
727f2e2ba0
Updates to the ScanTarget world.
2019-01-17 22:28:02 -05:00
Thomas Harte
d593796dae
Reintroduces less-filtered black and white video where there's no colour burst.
2019-01-16 22:22:29 -05:00
Thomas Harte
ef0dbc2a41
Undoes hard-coding of target framebuffer and display gamma.
2019-01-15 21:33:30 -05:00
Thomas Harte
6c49953115
Returns gamma correction, and corrects Amstrad CPC brightness.
2019-01-14 22:56:08 -05:00
Thomas Harte
55290f4dad
Attempts a fix of frame_was_complete_ logic, to try to eliminate black flashes.
2019-01-14 21:42:45 -05:00
Thomas Harte
bb03d2f2ad
Removes redundant enumeration.
2019-01-13 23:07:50 -05:00
Thomas Harte
7aec5be61a
Cleans up and simplifies shader creation.
2019-01-13 22:49:01 -05:00
Thomas Harte
5d9521fcb9
Advances back to a semi-complete monochrome composite output.
...
i.e. composite phase and amplitude is ostensibly flowing to its new destination.
2019-01-11 22:02:15 -05:00
Thomas Harte
028e530232
Shunts output shader to its proper place.
2019-01-06 22:59:14 -05:00
Thomas Harte
906a2ff6eb
Switches to using clock times for buffer merging and output.
2019-01-06 18:47:01 -05:00
Thomas Harte
c392c819c1
Switches to using the announce
is_visible
flag to spot line ends.
2019-01-06 13:37:34 -05:00
Thomas Harte
e9d9ff0da0
Enhances ScanTarget to provide additional timing information.
2019-01-05 23:09:17 -05:00
Thomas Harte
46d756d298
Starts towards a flattening of the intermediate video processing.
...
Immediate issue: using x position to index into a bitmap sampled at the input data rate doesn't allow for the disconnection between input rate and output speed provided by the flywheels.
2019-01-05 18:11:39 -05:00
Thomas Harte
fd0ffc7085
Attempts an initial flattening of the pipeline, seemingly losing all output.
2019-01-01 21:02:21 -05:00
Thomas Harte
557a2a0ddf
Moves pipeline setup into draw(), where there'll definitely be an OpenGL context.
2018-11-29 19:41:54 -08:00
Thomas Harte
6be46ae921
Mostly restores Atari 2600 output. PAL colours need work.
2018-11-29 18:26:05 -08:00
Thomas Harte
a25470ee41
Permits tweaking of PhaseLinkedLuminance8
sampling offset.
2018-11-29 16:29:28 -08:00
Thomas Harte
d45c2a1f28
Settles, at least for now, on 15-tap notch filtering.
2018-11-26 22:34:31 -05:00
Thomas Harte
cd1e796093
Attempts to add clearing of the destination framebuffer too.
2018-11-24 23:31:56 -05:00
Thomas Harte
76656fab23
Applies harsher filtering.
2018-11-24 22:39:53 -05:00
Thomas Harte
cf49603a9e
Makes first reintroduction of colour composite decoding.
2018-11-24 22:30:39 -05:00
Thomas Harte
6c92853461
Corrects monochrome composite generation.
2018-11-24 21:55:15 -05:00
Thomas Harte
95685749ad
Attempts fully to implement the S-Video pipeline, without success.
2018-11-24 18:51:07 -05:00
Thomas Harte
6b42b92930
Kills CRTOpenGL.cpp and simplifies shader output very slightly.
2018-11-24 17:37:58 -05:00
Thomas Harte
538c57664f
Establishes attribute bindings to allow multiple shaders to use the same vertex array.
2018-11-24 16:06:26 -05:00
Thomas Harte
a66a20f7fe
Manages to get a brilliant white out of the new pipeline.
2018-11-23 22:54:52 -05:00
Thomas Harte
d4ac79b0af
Attempts to introduce a full-on processing pipeline, in theory putting me two shaders away from completion.
...
Well, subject to finding the last flashing bug and updating the multimachine, anyway.
2018-11-23 22:34:38 -05:00
Thomas Harte
a697a2e4f6
Attempts to complete all input processing — an RGB, S-Video or composite input buffer is now produced.
...
... for all input data types.
2018-11-22 17:20:31 -05:00
Thomas Harte
396cf72029
Renames OutputType
as DisplayType
and promotes it to a scan target modal.
2018-11-22 14:36:46 -05:00
Thomas Harte
bfe9704829
Reintroduces respect of each machine's nominated visible area.
2018-11-22 13:22:04 -05:00
Thomas Harte
43ee540233
Avoids race condition on .is_first_in_frame
2018-11-21 18:27:04 -05:00
Thomas Harte
38ffc4fdb3
Invalidates the stencil buffer upon buffer resizes.
2018-11-20 19:51:11 -05:00
Thomas Harte
a70991d50e
Eliminates minor gap.
2018-11-19 23:35:12 -05:00
Thomas Harte
4c00456166
Makes first attempt to draw only new lines.
2018-11-19 23:25:26 -05:00
Thomas Harte
26219213d7
Marginally increases scan size.
2018-11-18 23:03:56 -05:00
Thomas Harte
97c5ee6c0a
Corrects stencil buffer creation, and edges towards using it for [guaranteed] full-screen decay.
2018-11-18 22:22:43 -05:00
Thomas Harte
75bc0e451d
Reintroduces the accumulation texture.
...
Disables automatic clearing of the texture target, as the profiler indicates the vector instantiation to be a huge time sink.
2018-11-18 21:39:11 -05:00
Thomas Harte
6496b6313c
Attempts to fix random stray noise lines.
2018-11-17 23:27:25 -05:00
Thomas Harte
8f05560dd7
Corrects right-edge bookending.
2018-11-17 17:46:57 -05:00
Thomas Harte
c173777d12
Extends TextureTarget so that targets can be created with a one-bit stencil.
2018-11-17 15:51:12 -05:00
Thomas Harte
16dfeb3fc8
Discards empty lines, yet makes some attempt at restoring transparency.
...
The two things conflict more than a little, so work to do.
2018-11-15 21:51:27 -05:00
Thomas Harte
8f6664f0d7
Starts towards picking an input shader based on data type and pipeline.
2018-11-15 21:02:46 -05:00
Thomas Harte
87df8b9e85
Makes an attempt at pre-emptive line buffer clearing.
2018-11-14 21:19:14 -05:00
Thomas Harte
91b19c5c70
Adds bookending, and finally kills the TextureBuilder. Farewell.
2018-11-14 20:49:06 -05:00
Thomas Harte
0487580a1a
Corrects initial state of is_drawing_
and expands lines to full display.
2018-11-14 20:10:38 -05:00
Thomas Harte
6ba02c44d0
Better binds buffer sizes.
2018-11-13 23:08:51 -05:00
Thomas Harte
bf3ab4e260
Proceeds as drawing to the unprocessed line buffer and drawing from it.
...
Very, very slowly, and without yet clearing.
2018-11-13 21:15:33 -05:00
Thomas Harte
02f9cada43
Communicates the colour subcarrier frequency, and uses it to pick a buffer width.
2018-11-13 18:33:44 -05:00
Thomas Harte
654a19ea15
Switches back to working on the scan shaders.
...
Pixels from the emulated machine are now starting to appear.
2018-11-12 22:52:26 -05:00
Thomas Harte
3045e85004
Ensures redraws when resizing; declines to busy wait otherwise.
2018-11-12 20:15:38 -05:00
Thomas Harte
e9d1afd515
Appears to demonstrates that the line buffer is approximately working.
2018-11-12 19:10:48 -05:00
Thomas Harte
833ab7945b
Slow steps towards switching to line output.
2018-11-12 18:56:54 -05:00
Thomas Harte
0af1d668a6
Takes a first step towards generality, and thereby starts submitting lines.
2018-11-12 18:47:55 -05:00
Thomas Harte
dce52d740d
Finally gets some pixels back on screen.
...
For now, just the raw scans, direct to the framebuffer, with no intermediate processing. But it seems to prove that at least some of the proper data is reaching the GPU.
2018-11-11 23:23:42 -05:00
Thomas Harte
3ae333fa84
Edges further towards reviving the shaders.
2018-11-11 21:41:13 -05:00
Thomas Harte
d5af1f3948
Removes some migrated work.
2018-11-11 16:22:14 -05:00
Thomas Harte
0ba3ae53ab
Connects up the necessary recording to use intermediate composite buffers.
2018-11-11 15:20:18 -05:00
Thomas Harte
be12d78c83
Corrects vertical event announcement, and adjusts namespaces for OpenGL primitives.
2018-11-11 15:11:32 -05:00
Thomas Harte
b70227ac1b
Ensures proper write area locations end up in the scans.
2018-11-10 21:10:33 -05:00
Thomas Harte
6d277fecd5
Makes ScanTarget
a little more communicative and orthogonal.
2018-11-10 19:52:57 -05:00
Thomas Harte
491817d85c
Corrects allocation error and begins submitting raw textures.
2018-11-08 23:02:36 -05:00
Thomas Harte
20faf4e477
Adds submission of scans to the GPU.
2018-11-08 22:21:11 -05:00
Thomas Harte
4fe5c7c24e
Conspires to handle multithreading side of things in a lockless fashion.
...
At least on x86-64.
2018-11-08 21:57:28 -05:00
Thomas Harte
36bf640c6f
Acts as if it is going to submit scans, at least.
2018-11-07 22:53:46 -05:00
Thomas Harte
55da1e9c0f
Simplifies semantics a little and starts accepting a single buffer of pixel data.
2018-11-06 22:23:38 -05:00