1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-23 03:32:32 +00:00
Commit Graph

173 Commits

Author SHA1 Message Date
Thomas Harte
b35b6b2ba8 Resolves a couple of missing #includes for cassert. 2019-02-18 21:29:39 -05:00
Thomas Harte
6b2e1fe62b Makes error reporting more communicative. 2019-02-18 11:13:54 -05:00
Thomas Harte
8ecf885629 Attempts to put in better OpenGL safety rails. 2019-02-18 10:29:40 -05:00
Thomas Harte
6d76b7cd94 Attempts to ensure proper colour output during alternating PAL lines. 2019-02-17 21:50:15 -05:00
Thomas Harte
7bd721f334 Resolves improper state if an end-of-frame clear is triggered by the first new line. 2019-02-17 21:49:53 -05:00
Thomas Harte
ec8f1157c8 Corrects S-Video output. 2019-02-12 19:31:12 -05:00
Thomas Harte
037cbd534e Corrects phase error in chrominance separation. 2019-02-12 19:24:28 -05:00
Thomas Harte
208ef70e31 Corrects documentation. 2019-02-12 18:55:58 -05:00
Thomas Harte
2fa4c59523 Correction: use the QAM texture for colours. 2019-02-12 18:42:28 -05:00
Thomas Harte
cda0a2de79 Establishes QAM colour buffer lookups within the composite colour path.
Subject to errors in channel scaling and absolute position.
2019-02-10 23:02:31 -05:00
Thomas Harte
008f50832c Fixed: the two shaders that use a common input array should use common bindings. 2019-02-10 22:39:24 -05:00
Thomas Harte
c94acb1ca2 With a little more debug logging, discovered an issue with incrementing by four. 2019-02-09 22:45:20 -05:00
Thomas Harte
d341f98b09 Corrects horizontal scale. 2019-02-09 18:52:43 -05:00
Thomas Harte
e35a3ab566 Ensures proper uniforms and varyings for the qam_separation_shader. 2019-02-09 18:35:14 -05:00
Thomas Harte
b3b4b7cf0c Corrects QAM texture generation logic. 2019-02-09 17:20:13 -05:00
Thomas Harte
1cd6d58f17 Restores S-Video through line, as monochrome. 2019-02-09 17:13:43 -05:00
Thomas Harte
eecd4417e7 Bites the bullet and accepts that an additional texture will be useful for QAM separation. 2019-02-09 16:54:31 -05:00
Thomas Harte
798cc58f76 Simplifies the composite colour shader no longer to handle colour. 2019-02-05 19:22:35 -05:00
Thomas Harte
6ba1194d74 Sets a clear colour appropriate for phase-linked luminance clearing. 2019-02-03 22:33:04 -05:00
Thomas Harte
e5f75b5df2 Resolves repetition between svideo_sample and composite_sample. 2019-02-03 22:09:16 -05:00
Thomas Harte
b75ad3def2 Updates the multimachine for the ScanTarget world. 2019-02-03 15:07:22 -05:00
Thomas Harte
caf72afcb4 Switches to a seven-point scheme, to determine whether falsely-shared luminance is at fault.
It doesn't seem to be, alas.
2019-01-31 21:19:30 -05:00
Thomas Harte
687e0b376e Enhances error checking around setting of uniforms. 2019-01-31 21:17:49 -05:00
Thomas Harte
122857e5b5 Improves automatic index generation, to allow for matrices implicitly taking up to four slots. 2019-01-31 18:49:01 -05:00
Thomas Harte
5002290428 Makes consistent use of textureLod rather than texture. 2019-01-26 22:05:15 -05:00
Thomas Harte
d09ac3384f Eliminates some old-school manual memory management.
In favour of additional copying, but I still think this is safer.
2019-01-25 22:54:23 -05:00
Thomas Harte
b6a4a7e0a5 This is no longer TODO. 2019-01-25 22:47:15 -05:00
Thomas Harte
c87994336c Switches the Shader class to using LOG. 2019-01-25 22:45:47 -05:00
Thomas Harte
85ad490089 Offers a less error-prone route to attribute binding. 2019-01-25 21:56:55 -05:00
Thomas Harte
68d6feaa03 Adds missing includes and gets more explicit about exceptions. 2019-01-25 20:19:50 -05:00
Thomas Harte
74e1a9a621 Declines improper use of offset within loops and adds missing header. 2019-01-25 20:14:53 -05:00
Thomas Harte
6a43fc5df0 Resolves a GCC-troubling circular declaration issue vs. atomic.h. 2019-01-25 19:30:39 -05:00
Thomas Harte
312f38906b Corrects two improper include paths. 2019-01-25 19:19:23 -05:00
Thomas Harte
6a93d2d006 Corrects some minor spaces-instead-of-tabs errors. 2019-01-24 22:59:03 -05:00
Thomas Harte
ae0bc7e7aa Calculates sampling offsets up front. 2019-01-23 20:53:10 -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
a6683cb9b8 Avoids scaling luminance prior to extracting chrominance. 2019-01-17 20:52:33 -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
e89e55a9bb Attempts to factor actual composite amplitude into output. 2019-01-13 14:45:17 -05:00
Thomas Harte
7c2c243985 Corrects sample spacing, and removes a lot of detritus. 2019-01-12 18:36:54 -05:00
Thomas Harte
25a1f23fc0 Takes a first shot at re[re,re]-implementing composite colour decoding. 2019-01-12 17:59:24 -05:00
Thomas Harte
27541196cc Corrects Luminance8Phase8 and PhaseLinkedLuminance8 composite encodings. 2019-01-11 22:46:50 -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
fd579a019b Introduces a new scan source data type, motivated by the reasoning used by the Oric.
Specifically: it'll allow PCM sampling of the potentially arbitrary composite generation logic of various machines.
2018-11-28 20:40:22 -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
f3174069fa Attempts a linear comb filter for YC separation, plus post-separation Y filtering. 2018-11-25 21:54:12 -05:00
Thomas Harte
cd1e796093 Attempts to add clearing of the destination framebuffer too. 2018-11-24 23:31:56 -05:00
Thomas Harte
dd4af4f0df Removes dead files. 2018-11-24 22:40:06 -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
6a62cf9146 Corrects shader generation for S-Video input to S-Video output. 2018-11-24 21:40:34 -05:00
Thomas Harte
4fa6bc0ad1 Corrects S-Video decoding for most machines.
Ironically, that being those other than luminance/chrominance input machines. Further investigation required.
2018-11-24 21:30:09 -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
d7c0f0c804 Switches to an ordinary sampler for scan processing. 2018-11-24 18:03:44 -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
a5a3769a0f Reaches for conceptual const correctness. 2018-11-23 22:33:28 -05:00
Thomas Harte
ee89be6730 Removes many stray spaces. 2018-11-23 22:32:32 -05:00
Thomas Harte
b9aca39eb0 Reintroduces Vic-20 output.
Resolving errors in shader generation while I'm here.
2018-11-22 22:43:42 -05:00
Thomas Harte
c0454ff101 Corrects chrominance scale. 2018-11-22 18:18:16 -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
06c0c64c1a Shifts intermediate buffer sampling into the middle of each pixel row. 2018-11-17 17:31:32 -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
5a31891048 Returns Amstrad CPC output.
Which is probably it until I get some more composite processing back in.
2018-11-15 21:32:22 -05:00
Thomas Harte
8b37496447 Restores video output to the Master System. 2018-11-15 21:21:54 -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