Skip to content
Snippets Groups Projects
Forked from card10 / firmware
805 commits behind the upstream repository.
  • Philip Stewart's avatar
    14d5abcc
    fix(gfx/display): Draw partially clipped primitives · 14d5abcc
    Philip Stewart authored and rahix's avatar rahix committed
    Fix two bugs in the display/gfx module:
    
    1. The animation of the simple_menu used in the main menu had the issue
       that there is a black line visible at the top.  This is due the
       gfx_puts method ignoring lines, where the top pixel of the string is
       above the top of the screen.  As gfx_puts uses gfx_setpixel which in
       turn ignores pixels outside of the screen, remove the check in
       gfx_puts.
    2. X and Y coordinates were cast to unsigned-ints before being given to
       the gfx-library which means calls like circ(0, -10, 30) would be draw
       at coordinates like [0,65526].  Fix this by changing the data-type of
       all coordinates to signed-integers.
    
    Also remove the x and y ranges from the documentation of the individual
    python functions and instead add a general documentation about the
    screen and it's size/coordinate system.
    14d5abcc
    History
    fix(gfx/display): Draw partially clipped primitives
    Philip Stewart authored and rahix's avatar rahix committed
    Fix two bugs in the display/gfx module:
    
    1. The animation of the simple_menu used in the main menu had the issue
       that there is a black line visible at the top.  This is due the
       gfx_puts method ignoring lines, where the top pixel of the string is
       above the top of the screen.  As gfx_puts uses gfx_setpixel which in
       turn ignores pixels outside of the screen, remove the check in
       gfx_puts.
    2. X and Y coordinates were cast to unsigned-ints before being given to
       the gfx-library which means calls like circ(0, -10, 30) would be draw
       at coordinates like [0,65526].  Fix this by changing the data-type of
       all coordinates to signed-integers.
    
    Also remove the x and y ranges from the documentation of the individual
    python functions and instead add a general documentation about the
    screen and it's size/coordinate system.
display.rst 560 B

display - Display

The display module let's you draw on the card10's display. Pixels are addressed from top left to bottom right with a range of x: 0 to 159 and y: 0 to 79.

0,0
   +---------------------+
   |                     |
   |                     |
   |                     |
   |                     |
   +---------------------+
                        159,79

Drawing operations are clipped, pixels outside of the screen will be ignored.