canvas_ity

A tiny, single-header <canvas>-like 2D rasterizer for C++ (by a-e-k)

Canvas_ity Alternatives

Similar projects and alternatives to canvas_ity

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better canvas_ity alternative or higher similarity.

canvas_ity reviews and mentions

Posts with mentions or reviews of canvas_ity. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-01.
  • Writing a TrueType font renderer
    9 projects | news.ycombinator.com | 1 Jan 2024
    I have a small TTF implementation that's in the neighborhood of that size and is open source. It's part of my canvas_ity single-header library [0] that's around 2300 LOC / 36 KB object size and implements a C++ version of most of the 2D HTML5 canvas spec [1].

    The core implementation of the TTF parsing and drawing is in L1526-L1846 with another small bit at L3205-L3274 of src/canvas_ity.hpp.

    It's something of a toy implementation that only supports western left-to-right text, and doesn't do any hinting at all, nor kerning, nor shaping. But it's enough to draw a basic "Hello world!" using any typical TTF file.

    The test suite in test/test.cpp L84-304 embeds a few custom Base64-encoded TTF files. They're small and only have a few glyphs but they do exercise a number of interesting edge cases in the OpenType TTF spec [2]. Have a look at the HTML5 port of the test suite at test/test.html in different browsers to see how their canvas implementations render those fonts.

    [0] https://github.com/a-e-k/canvas_ity

    [1] https://www.w3.org/TR/2015/REC-2dcontext-20151119/

    [2] https://standards.iso.org/ittf/PubliclyAvailableStandards/c0...

  • The Lone Developer Problem
    3 projects | news.ycombinator.com | 27 Feb 2023
    Agreed, that sort of documentation is pure gold when done well.

    It's something I always try to pay forward by doing in my own code. For example, one of my own solo projects was an STB-style single-header -like rasterizer library for C++. I started the implementation half of the library with a short outline of the rendering pipeline's dataflow and the top-level functions responsible for each stage:

    https://github.com/a-e-k/canvas_ity/blob/f32fbb37e2fe7c0fcae...

  • Ask HN: What have you created that deserves a second chance on HN?
    44 projects | news.ycombinator.com | 26 Jan 2023
    https://github.com/a-e-k/canvas_ity

    This is an STB-style single-header C++ library with no dependencies beyond the standard C++ library. In about 2300 lines of 78-column code (not counting blanks or comments), or 1300 semicolons, it implements an API based on the basic W3C specification to draw 2D vector graphics into an image buffer:

    - Strokes and fills (with antialiasing and gamma-correct blending)

    - Linear and radial gradients

    - Patterns (with repeat modes and bi-cubic resampling)

    - Line caps and line joins (handling high curvature)

    - Dash patterns and dash offsets

    - Transforms

    - Lines, quadratic and cubic Beziers, arcs, and rectangles

    - Text (very basic, but does its own TTF font file parsing!)

    - Raster images (i.e., sprites)

    - Clipping (via masking)

    - Compositing modes (Porter-Duff)

    - Drop shadows with Gaussian blurs

    I also uncovered a number of interesting browser quirks along the way with the HTML5 port of my testing suite.

  • Hello, PNG
    13 projects | news.ycombinator.com | 18 Jan 2023
  • A tiny, single-header -like 2D rasterizer for C++
    1 project | news.ycombinator.com | 10 Oct 2022
  • canvas_ity - A tiny, single-header &lt;canvas&gt;-like 2D rasterizer
    2 projects | /r/cpp | 10 Oct 2022
    Repository: https://github.com/a-e-k/canvas_ity
  • Show HN: Canvas_ity – A tiny, single-header -like 2D rasterizer for C++
    1 project | news.ycombinator.com | 9 Oct 2022
  • A note from our sponsor - SaaSHub
    www.saashub.com | 24 Apr 2024
    SaaSHub helps you find the best software and product alternatives Learn more →

Stats

Basic canvas_ity repo stats
7
319
2.5
about 2 months ago

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com