1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-05 21:05:51 +00:00
Commit Graph

80 Commits

Author SHA1 Message Date
Thomas Harte
ad8c8166bc Built in gamma conversion for all machines, assuming an output of 2.8 for PAL, 2.2 for NTSC. 2017-08-10 15:17:08 -04:00
Thomas Harte
e01f3f06c8 Completed curly bracket movement. 2017-03-26 14:34:47 -04:00
Thomas Harte
6cb95b4fc5 Switched to passing around std::strings rather than char *s, because they should be easier to capture. 2017-02-20 10:35:33 -05:00
Thomas Harte
c2d7e36c8f Ensured logic for whether composite output is in use is consistent. 2017-01-25 21:25:03 -05:00
Thomas Harte
5761c8267b [Re-]Eliminated connection between colour subcarrier frequency and monitor output mode. 2017-01-24 20:48:54 -05:00
Thomas Harte
be48c950b4 Started taking steps towards using a texture barrier where possible to reduce all of my framebuffer binds. Some output appears, but it's not correct. 2017-01-08 11:13:20 -05:00
Thomas Harte
0487b8c178 Definitively eliminated the additional y filtering step; if I'm going to work to ensure always four samples per colour cycle, I can put the channel separation coefficients directly into their shaders, cutting down on samples. 2017-01-07 16:02:33 -05:00
Thomas Harte
4ff33254e1 Sought to shift locking back up to the CRT. And to be a bit more RAII-ish. 2016-12-06 18:48:30 -05:00
Thomas Harte
7c85cb62e4 Moved underscores, removed indirections where they're not necessary, converted those names that were still looking very Objective-C and moved the GL fence variable into the private area, where it should always have been. 2016-11-21 12:14:52 +08:00
Thomas Harte
1f91d29434 Progressed to usage of an array builder and a texture builder up to the point of a successful build. 2016-11-17 12:26:04 +08:00
Thomas Harte
6ac20e0066 Pushed responsibility for submitting texture contents up to the texture builder, simplifying the interface. 2016-11-16 23:13:06 +08:00
Thomas Harte
5c5e44874f Even better: why include the 'Input' prefix when there's only one? 2016-11-16 22:57:17 +08:00
Thomas Harte
04b2688683 Attempted to reduce allocations. 2016-11-16 13:25:50 +08:00
Thomas Harte
c1a509910d Documented this interface, albeit that the English could do with a second pass, and very sightly simplified inline with current usage. 2016-11-16 13:15:50 +08:00
Thomas Harte
4d0d5eb919 Renamed the 'input buffer builder' to the 'input texture builder' to be explicit about what sort of buffer, and killed the prefix since it's namespaced. Also switched to std::vector. 2016-11-16 12:31:32 +08:00
Thomas Harte
9ee11d7765 At the expense of API simplicity, at least for now, resolved the most glaring cause of dirty lines. 2016-11-16 11:34:05 +08:00
Thomas Harte
f63e849092 Sought completely to eliminate the outgoing concept of 'clearing zones'. 2016-11-16 11:10:34 +08:00
Thomas Harte
ccedb6bea6 Introduced an intermediate buffer that collects lines before flushing them to the output buffer. 2016-11-16 10:49:18 +08:00
Thomas Harte
ba2adf8bb1 Normalised on std::vector rather than std::unique_ptr<uint8_t *> as (probably?) more idiomatic. Improved structure slightly. Introduced a container for line data, albeit one that isn't yet used. 2016-11-16 10:34:54 +08:00
Thomas Harte
68a8851c52 Increased parallelism, allowing a simplification in the GL view. 2016-06-02 22:29:09 -04:00
Thomas Harte
6d65bc9b3a Permitted a wider error window on vertical sync, tidied things up a little and started trying to move towards full implementation of the OpenGL contract. 2016-05-11 22:11:01 -04:00
Thomas Harte
0d2d6a452d Fixed some dangling buffer management issues. 2016-05-10 19:55:34 -04:00
Thomas Harte
86dab3a5d6 Quickest first attempt to switch to instancing for the output array. Texture coordinates seem to be off. 2016-05-10 07:23:47 -04:00
Thomas Harte
7e2bd78891 With an eye towards instancing, moved away from circular buffers. 2016-05-09 19:14:30 -04:00
Thomas Harte
45af963b9a Moved more of the circular logic inside getCircularRanges in order to eliminate one more potential source of error. 2016-05-09 07:34:37 -04:00
Thomas Harte
cec9ad0dc6 Switched to a more rational interface, ensured output_level will work when eventually needed, and that neither it nor output_data attempts a recursive lock. 2016-05-09 07:02:12 -04:00
Thomas Harte
a82fa31370 Switched back to broad locking for CRT updates. To eliminate one more thing. 2016-05-09 06:58:26 -04:00
Thomas Harte
47302de23a Switched to simpler storage for _image. 2016-05-08 21:11:56 -04:00
Thomas Harte
986019f9f9 Fixed error that could lead to split output run vertex writes. 2016-05-08 20:30:59 -04:00
Thomas Harte
ef3b91d3aa Made an attempt to get formal on synchronisation. 2016-05-08 19:42:33 -04:00
Thomas Harte
a75259ce9f Removed some dead caveman debugging statements. 2016-05-08 16:18:42 -04:00
Thomas Harte
9485ef2c8c At last a genuine bug fixed: was nudging the wrong amount in intermediate shaders. 2016-05-08 16:07:36 -04:00
Thomas Harte
8e4ab37719 Things are back pretty much to where they were, but offset is eliminated as an input. 2016-05-07 18:37:18 -04:00
Thomas Harte
a74f081aa9 Put lateral lookup table directly into the shader. 2016-05-05 21:21:27 -04:00
Thomas Harte
284b310074 Attempted to implement end-of-buffer tests for all stages. 2016-05-05 19:52:05 -04:00
Thomas Harte
f621cc8523 Withdrew the pixel unpack buffer in order to avoid the potential for a paused machine to be undrawable. The cost is at least an extra memcpy per frame; I'm letting the driver worry about the whole process for now. 2016-05-04 21:27:10 -04:00
Thomas Harte
87df57195d Started on an attempt not to treat the various buffers as free to loop within, starting with the input texture. 2016-05-04 07:39:45 -04:00
Thomas Harte
2541711061 Made attempts (i) to flush buffers before unmapping them; and (ii) to bring texture uploads within the new orthodoxy. 2016-05-03 20:56:47 -04:00
Thomas Harte
fc1a67c157 Lateral is no longer written per vertex. It's a fixed list. 2016-05-03 18:45:55 -04:00
Thomas Harte
31f1e6d5c0 Introduced a separate stage for luminance filtering. 2016-05-03 07:46:40 -04:00
Thomas Harte
29e7c96e4c Brought monitor mode inside the pipeline and added an intermediate filter. 2016-05-02 21:05:58 -04:00
Thomas Harte
6982e945fb Fixed those issues breaking GL state, I hope. 2016-05-01 16:17:52 -04:00
Thomas Harte
23ea832f41 Increased brightness in television mode, added a clear if screen resolution changes. 2016-04-28 22:04:47 -04:00
Thomas Harte
e6c3b148ac Switched wholeheartedly to the new shader. 2016-04-28 21:45:44 -04:00
Thomas Harte
8849dc3265 Finished consolidation into OutputShader. With its documentation yet to update. 2016-04-27 22:41:32 -04:00
Thomas Harte
496d979aca Made a decision to clean up by creating per-shader classes. Well, more or less. First thing to be factored out: the output shader. 2016-04-27 22:29:54 -04:00
Thomas Harte
416c944f02 Experimental: let's try accumulating history directly in the framebuffer. 2016-04-26 21:41:39 -04:00
Thomas Harte
9b2b7a09eb Ensured that colour space changes take effect. 2016-04-24 19:16:23 -04:00
Thomas Harte
929cfc49cb Extended window for picking output frequency, attempted to consolidate CRT OpenGL timing uniforms for approprate resetting. 2016-04-24 18:58:31 -04:00
Thomas Harte
95639f1189 Made attempt to introduce final filtering stage and output. 2016-04-22 19:15:59 -04:00