Commit Graph

  • ed6af7880c Some general code cleanup. Thomas Oltmann 2020-12-13 14:19:17 +01:00
  • 95b0763586 clip_points() should now be a noop for non-malicious fonts. Thomas Oltmann 2020-12-13 13:38:18 +01:00
  • 7cf3d1492d Fused inner and outer loop of post processing stage. Thomas Oltmann 2020-12-12 17:14:49 +01:00
  • 5a5aa2f763 Removed struct buffer row pointer indirection. Thomas Oltmann 2020-12-12 17:01:19 +01:00
  • 4cd3e71653 Obviated flip_buffer() by modifying the transform instead. Thomas Oltmann 2020-12-12 16:51:49 +01:00
  • 6a0dc97256 Made the core raycast loop branchless for extra perf. Thomas Oltmann 2020-12-12 15:40:17 +01:00
  • 46776b4628 Clearer variable names in draw_line(). Thomas Oltmann 2020-12-11 21:39:34 +01:00
  • 770d372dd4 Computing xAverage & yDifference slightly more intelligently. Thomas Oltmann 2020-12-11 20:01:28 +01:00
  • a319c6c785 Precomputing the delta's sign in draw_line(). Thomas Oltmann 2020-12-11 19:39:54 +01:00
  • d2cf62e019 Sizable raycast speedup by reducing data deps. Thomas Oltmann 2020-12-11 17:52:09 +01:00
  • e48d03119f Removed branch right before hot draw_dot() in draw_line(). Thomas Oltmann 2020-12-11 17:49:27 +01:00
  • d12fd8d234 Moved crossingGap calculations out of conditional block. Thomas Oltmann 2020-12-11 17:37:37 +01:00
  • 038c99d239 Raycast setup code rearrangement for better exec time. Thomas Oltmann 2020-12-11 17:13:51 +01:00
  • 144e1860e9 Made is_flat's flatness constant local to the function. Thomas Oltmann 2020-12-11 11:48:53 +01:00
  • 7fa2c1fb4a Improved is_flat heuristic (triangle area) Thomas Oltmann 2020-12-11 11:28:27 +01:00
  • 54d6dd7ad4 Slightly improved draw_line() performance (reduced pipeline stalls) Thomas Oltmann 2020-12-11 09:02:14 +01:00
  • b37c797802 Made draw_line() more readable by grouping coordinates into point structs. Thomas Oltmann 2020-12-10 12:23:07 +01:00
  • a5895a7d1b Added online man-page for v0.9.0 (almost identical to v0.8.0's) Thomas Oltmann 2020-12-10 11:50:01 +01:00
  • ca269e489b Updated the ChangeLog for v0.9.0. Thomas Oltmann 2020-12-10 11:44:49 +01:00
  • 76cafa5990 Fixed confused left-side-bearing calculation. Thomas Oltmann 2020-12-10 11:34:46 +01:00
  • ca57a01e94 A lot of explanations inside sftdemo. Thomas Oltmann 2020-08-08 19:14:11 +02:00
  • 5e905d1744 Replaced the demo's aa-tree with a bitfield. Thomas Oltmann 2020-08-08 17:43:48 +02:00
  • f2611370b5 More conventional error handling in render_image(). Thomas Oltmann 2020-07-29 09:05:10 +02:00
  • 40c198804a Raster buffer now alloc'ed on stack if possible. Thomas Oltmann 2020-07-29 08:57:06 +02:00
  • 3f4f406271 Merge branch 'no-impl-int-conv' into develop Thomas Oltmann 2020-07-28 21:20:56 +02:00
  • 067279387b After ~2 hours of debugging, turns out clang-analyzer ist just pretty awful. Thomas Oltmann 2020-07-28 21:07:06 +02:00
  • e994d1e8e9 is_safe_offset() against offset check overflows! Thomas Oltmann 2020-07-28 20:45:37 +02:00
  • 8099b35813 Removed all implicit int convs in decode_contour(). Thomas Oltmann 2020-07-28 19:01:08 +02:00
  • df506e1620 Integer overflow protection on 16-bit systems. Thomas Oltmann 2020-07-28 18:55:44 +02:00
  • 0301f40875 Using int_least*_t types for big-endian getter return types. Thomas Oltmann 2020-07-28 18:26:41 +02:00
  • 805ebcfd55 Replaced internal use of unsigned long with clearer uint_fast32_t. Thomas Oltmann 2020-07-28 18:18:41 +02:00
  • 796e03173d uint_fast16_t & uint_least16_t instead of unsigned short for better perf. Thomas Oltmann 2020-07-28 17:12:58 +02:00
  • ae4b55d37d More integer type changes in cmap_fmt4 & simple_outline. Thomas Oltmann 2020-07-28 16:58:35 +02:00
  • 2a7e92506d More integer type improvements & Fixed indentation mishap. Thomas Oltmann 2020-07-28 15:07:28 +02:00
  • 63d97d8bca Fixed careless integer conversions in demos & utils. Thomas Oltmann 2020-07-28 14:29:35 +02:00
  • db8f4845c4 A lot of integer typing improvement. Thomas Oltmann 2020-07-28 13:47:51 +02:00
  • 86cdb0b80e Started v0.9 development branch. Thomas Oltmann 2020-07-28 12:40:20 +02:00
  • adbb308a8b Generated HTML man-page for libschrift v0.8.0. Thomas Oltmann 2020-07-28 12:35:53 +02:00
  • a28a2094ea Updated Changelog & Todo-List for v0.8. Thomas Oltmann 2020-07-28 12:30:00 +02:00
  • 4a78a608ac Started reducing the amount of implicit integer conversions. Thomas Oltmann 2020-07-28 11:50:32 +02:00
  • b48359e3b8 extern "C" to make libschrift available for C++ programs. Thomas Oltmann 2020-07-28 10:27:01 +02:00
  • 7fe79c2ef9 Avoid reallocarray() name conflict & credited Frank da Cruz' sample text. Thomas Oltmann 2020-07-26 23:38:17 +02:00
  • 972718a043 Fixed rasterizer oob-write for points exactly in a corner. Thomas Oltmann 2020-07-26 23:31:07 +02:00
  • f4a1ba92ae Demo program now renders multiple lines of text. Thomas Oltmann 2020-07-26 18:03:02 +02:00
  • baabfd5715 Caching some commonly used font fields. Thomas Oltmann 2020-07-26 16:38:47 +02:00
  • a2465471de Documented changes for v0.8.0 so far. Thomas Oltmann 2020-07-26 13:48:44 +02:00
  • 15268f6d17 Got the stress app running on Windows. Thomas Oltmann 2020-07-26 13:43:19 +02:00
  • faf3c50374 A preliminary port to Windows / MSVC. Thomas Oltmann 2020-07-26 12:41:29 +02:00
  • b276b1347a STACK_ALLOC() more carefully adheres to strict aliasing rules. Thomas Oltmann 2020-07-26 00:43:44 +02:00
  • c97f1eaefb Using OpenBSD's reallocarray() for safety. Thomas Oltmann 2020-07-26 00:09:41 +02:00
  • 0b71a0717b Using nextafter() instead of IEEE754 bit-manips. Thomas Oltmann 2020-07-26 00:01:25 +02:00
  • 5b60eb6c3b Fixed the only clang analyzer warning through stronger preconditions. Thomas Oltmann 2020-07-25 22:06:01 +02:00
  • fbe0b00e13 Rigorous, subpixel-accurate left side bearing application! Thomas Oltmann 2020-07-01 12:32:42 +02:00
  • b8cf010d73 Changed the missing glyph interface. Thomas Oltmann 2020-06-30 14:44:37 +02:00
  • db5930bde7 Made space for separate man pages for different versions. Thomas Oltmann 2020-06-30 14:08:58 +02:00
  • 6a805c3c19 Tweaks for compiling with ancient C compilers. Thomas Oltmann 2020-06-29 17:35:26 +02:00
  • d5c1aa5222 Built on OpenBSD. Thomas Oltmann 2020-06-28 16:57:45 +02:00
  • bcb922b419 Merge branch 'v0.7.1' into v0.8 Thomas Oltmann 2020-06-16 09:21:48 +02:00
  • 6e783f5e9e Fixed short-circuiting in render_image in case of an error. Thomas Oltmann 2020-06-14 18:18:31 +02:00
  • da3afe62f4 Manually inlined quantize(). Thomas Oltmann 2020-06-11 11:42:26 +02:00
  • 95f7a6a8e3 Merged v0.7.1 features into v0.8.0 branch. Thomas Oltmann 2020-06-08 19:56:10 +02:00
  • d93f294e4b ChangeLog: simple_points() optimization. Thomas Oltmann 2020-06-08 19:05:46 +02:00
  • f89dbedf99 Optimized simple_points() with a bit-twiddling hack. Thomas Oltmann 2020-06-08 19:00:36 +02:00
  • 9a387aca34 Changelog entry about later quantization. Thomas Oltmann 2020-06-08 13:00:50 +02:00
  • 61557b2e60 Quantizing as late as possible. Thomas Oltmann 2020-06-08 12:59:24 +02:00
  • 50fd919a85 Version bump to v7.1. Thomas Oltmann 2020-06-08 12:54:26 +02:00
  • c94325aad5 Skip drawing lines that don't contribute anything. Thomas Oltmann 2020-06-08 11:16:36 +02:00
  • c2cb8577b6 Version bump to 0.8. Thomas Oltmann 2020-06-07 17:38:46 +02:00
  • 7ad83dd687 Larger body padding. Thomas Oltmann 2020-06-07 17:37:43 +02:00
  • 929fb7ddcd Makefile will now also clean up in util/. Thomas Oltmann 2020-06-07 17:32:19 +02:00
  • 9dfab46fe6 Re-generated HTML page from the new v0.7 man page. Thomas Oltmann 2020-06-07 17:31:18 +02:00
  • 5ec95502ee decode_outline() etc. now take a SFT_Font instead of an SFT. Thomas Oltmann 2020-06-07 17:17:11 +02:00
  • 160c72942e struct cell: int16_t --> int_least16_t. Thomas Oltmann 2020-06-07 17:05:48 +02:00
  • f24444e551 Freeing the outline earlier. Thomas Oltmann 2020-06-07 16:56:00 +02:00
  • f0fae71dc4 Pulled the rendering sequence out of sft_char() into render_image(). Thomas Oltmann 2020-06-06 13:03:00 +02:00
  • 31eb631a22 tesselate_curve() and draw_lines(). Thomas Oltmann 2020-06-06 12:30:38 +02:00
  • a9db5912d1 Added Code Quality section to the TODO list. Thomas Oltmann 2020-06-06 12:12:18 +02:00
  • f703a198eb Added the switch to an indexed outline to the Changelog. Thomas Oltmann 2020-06-06 11:59:08 +02:00
  • 530a474d04 Moved transform_points() and clip_points() into sft_char(). Thomas Oltmann 2020-06-05 17:59:19 +02:00
  • 615697e78e Less arguments to decode_contour(). Thomas Oltmann 2020-06-05 17:44:41 +02:00
  • c6d57b744d Made the switch to an indexed outline! Thomas Oltmann 2020-06-05 17:13:15 +02:00
  • 958150ddb2 decode_contours() --> decode_contour(). Thomas Oltmann 2020-06-05 16:21:17 +02:00
  • f80f5f112c Added basePoint parameter to decode_contours(). Thomas Oltmann 2020-06-05 16:10:24 +02:00
  • 17e944cb6a Removed points parameter from decode_contours(). Thomas Oltmann 2020-06-05 15:29:26 +02:00
  • c4a6b6979e decode_contours() builds indexed outline first, before converting. Thomas Oltmann 2020-06-05 15:15:52 +02:00
  • 5ec715fbc6 simple_outline() now keeps temp points in outline. Thomas Oltmann 2020-06-05 14:48:26 +02:00
  • 1d54156938 Point array in struct outline. Thomas Oltmann 2020-06-05 14:44:46 +02:00
  • 2784d6bc87 free_outline() & made decode_contours() more readable. Thomas Oltmann 2020-06-05 14:40:33 +02:00
  • f51b478a82 Optimized clip_points(). Thomas Oltmann 2020-06-05 12:33:24 +02:00
  • 7231135aaa Single-pass tesselation and rasterization each. Thomas Oltmann 2020-06-05 12:03:49 +02:00
  • 7e97e3446e Documented sft_linemetrics() and sft_kerning() in the man page. Thomas Oltmann 2020-06-05 11:39:52 +02:00
  • 40ee1cc872 Started a Change Log. Thomas Oltmann 2020-06-05 11:18:45 +02:00
  • 6cac872f0d SFT_Char now always gets reset before filling in. Thomas Oltmann 2020-06-05 11:14:43 +02:00
  • 149a72a83c sftdemo: Stripping non-printable chars. Thomas Oltmann 2020-06-04 18:33:07 +02:00
  • c243c3f9eb Fixed a bug that allowed assert() at line 933 to be triggered. Thomas Oltmann 2020-06-03 17:46:38 +02:00
  • b5c5babeae Updated TODO list. Thomas Oltmann 2020-06-03 16:53:56 +02:00
  • 6082ca1126 Subtracting the leftSideBearing instead of adding. Thomas Oltmann 2020-06-03 16:33:44 +02:00
  • a20ee52d6f Mentioned currently unsupported features in TODO.md Thomas Oltmann 2020-06-03 16:27:51 +02:00
  • 5f45e4b74c Updated Documentation and Progress sections. Thomas Oltmann 2020-05-25 13:49:12 +02:00
  • de23c75cb3 Rearranged the CSS for readability. Thomas Oltmann 2020-05-25 13:40:23 +02:00