Skip to content

adaxiik/yadl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YADL

Yet Another Drawing Library

Use cases

  • Quick prototyping (images, animations)
  • Embedded devices (pure cpu rendering, no gpu required)

Features

  • Simple to use
  • Alpha blending
  • Simple shapes (lines, rectangles, circles, triangles)
  • Text rendering and font loading
  • Loading, saving images
  • Animations and export to gif
  • Antialiased circles and lines
  • Graphical effects (blur, grayscale, invert)
  • Image resizing
  • and other useful stuff

Todo

  • Multithreading

Examples

shapes

animation_circles

animation_cube

text

blur

painting

triangle

textured_triangle

(example above uses 2 triangles and texture mapping, also logo was resized to 250x250, so it looks a bit squished. See texture_mapping_example.cpp

3d_example

3d_texture_example

model_render_example

Quick Start

Build library and all examples

$ mkdir build && cd build
$ cmake ..
$ make -j

Usage

#include <yadl/yadl.hpp>

int main(int argc, char const *argv[])
{
    using namespace yadl;

    Canvas canvas(500, 500);
    canvas.Clear(Color::Dark);
    Context ctx(canvas);
    ctx.SetColor(Color::Red).SetPosition(canvas.GetCenterX(), canvas.GetCenterY());
    
    int radius = 150;
    shape::DrawFilledCircleAA(ctx, radius); // AA stands for antialiased

    io::SaveAsPNG("circle.png", canvas);
    return 0;
}

This code can be found in circle_example.cpp

Output:

circle

Dependencies

Used libraries

Assets

About

Yet another drawing library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published