Commit Graph

88 Commits

Author SHA1 Message Date
Bodmer 82d232adfc Add smooth arc drawing function
Update ESP8266 architecture reference
Add pushMaskedImage() to render 16bpp images with a 1bpp mask (used for transparent PNG images plus with sprites)

New functions added using drawArc:
drawSmoothArc
drawSmoothCircle
drawSmoothRoundRect
New sqrt_fraction() added to improve smooth graphics performance on processors without a FPU (e.g. RP2040)

Faster alphaBlend() function added which retains 6bpp for green

Rename swap_coord() to transpose()
2023-01-12 22:39:03 +00:00
Bodmer cc9787deaf Update for Pico W, update sprite smooth font rendering
Update example for Pico W

If a background colour is not specified for smooth font rendering in a sprite then read the sprite background pixel colour.
2022-07-22 20:16:56 +01:00
Bodmer 781b0bc67c Fix #1877 2022-06-16 23:31:07 +01:00
Bodmer ba819765af Avoid warnings if fonts disabled in setup 2022-05-19 21:47:01 +01:00
Bodmer 7bf48bb179 Add 16 bit parallel for RP2040 processor
Correct legacy comments
Add ESP32 S3 parallel setup 70d
Add setups 105-107 for RP2040 with 16 bit display
Add file conversion notes to PNG array example
2022-05-16 19:58:05 +01:00
Bodmer 7d3f4f21b1 Fix #1802 2022-04-29 20:59:25 +01:00
Bodmer d0494af057
Fix #1776 2022-04-14 15:14:45 +01:00
Bodmer 810aa98fc0
Fix #1735 2022-03-22 02:26:44 +00:00
Bodmer 8480f39a9c Various updates - raise to version 2.4.43
Sprite class uses TFT_eSPI setBitmapColor - fn deleted
Small performance improvement to RP2040 SPI PIO
Typo corrections
Correct (unused) tft_Write_32 for STM32
Update HX8357D rotation code
Enable software reset for ILI9486
Add preliminary RM68120 support
2022-03-17 14:12:10 +00:00
LeFauve 64afd184dc Prevent TFT_eSprite::pushToSprite() to skips pixels when dealing with transparency. 2022-02-05 11:40:55 +10:00
Bodmer b6db90ada4 Add new anit-aliased graphics functions
Examples to follow.
2022-02-03 15:37:44 +00:00
Bodmer 8a2398451b RP2040: add SPI PIO interface option, enhance 8 bit parallel PIO
The RP2040 processors can now drive 8 bit parallel and SPI displays using the PIO hardware.

The PIO offloads the processor by providing:
1. PIO managed setWindow sequence
2. PIO managed block and screen fill
2022-01-02 01:08:22 +00:00
Bodmer a474f4cd23 Fix #1313 2021-12-12 01:33:27 +00:00
Bodmer 9bf9c0940f Update for GC9A01 display
Correct sprite rendering
GC9A01 expects exact number of pixels to fill setWindow area.
2021-11-28 13:57:15 +00:00
Bodmer e23d8e083b Correct comments 2021-11-03 23:45:16 +00:00
Bodmer 2bf4d15b02 Fix #1022 2021-02-23 22:38:03 +00:00
Bodmer 9fec44b6ea Implement #896 plus minor changes
When rendering a smooth font in a sprite the anti-aliasing will pick up the sprite background colour if the text background colour is not set.
2020-12-31 17:58:28 +00:00
Bodmer 63dc212061
Correct white=transparent bug 2020-12-15 16:50:12 +00:00
Bodmer ad0130309c Add pushToSprite with transparent colour
New function:
pushToSprite(TFT_eSprite *spr, int32_t x, int32_t y, uint16_t transp)
// Note: The following sprite to sprite colour depths are currently supported:
//    Source    Destination
//    16bpp  -> 16bpp
//    16bpp  ->  8bpp
//     8bpp  ->  8bpp
//     1bpp  ->  1bpp
2020-12-02 13:39:19 +00:00
Bodmer 42e6fc87ff Feature update
Add ILI9225 support
Add viewport feature to Sprites
Rationalise common TFT_eSPI and Sprite functions and variables to use inherited functions width(), height(), rotation(), write(), pivot, cursor, swapBytes.
2020-12-01 20:06:32 +00:00
Bodmer 788048155c
Fix #827 (function ambiguity with Arduino DUE) 2020-11-17 18:40:39 +00:00
Bodmer 13d217dc89 Add viewport feature
2 new example sketches added for viewport demonstration
2020-10-06 00:51:41 +01:00
Bodmer 0c49b71dd4
Fix #751 2020-09-14 21:40:20 +01:00
Bodmer d7fdcc0991 Fix #740 and #704
#740: To avoid ambiguity the pushSprite for writing a sprite to another sprite has been renamed pushToSprite

#704: Change to 18 bit colurs for SSD1963 with SPI interface

Remove outdated TFT_SPIFFS_Jpeg example
2020-09-07 22:04:42 +01:00
Bodmer 4c314c5c33
Revert "Resolve ambigous pushSprite(int int int) methods" 2020-09-07 13:05:59 +01:00
QrackEE ddf03d43ea Resolve ambigous pushSprite(int int int) methods 2020-09-05 16:54:24 +02:00
Bodmer 731228d13a Fix deleteSprite
Fixes #736 and also delete color map even if the sprite has not been created.
2020-08-28 21:18:26 +01:00
Bodmer 52ee45b30b Correct medium warnings #702 2020-08-05 23:37:24 +01:00
Bodmer cfcb9c6632 Revert "Elimnate some warnings #702"
This reverts commit 31125ca5ac.
2020-08-05 23:13:59 +01:00
Bodmer 31125ca5ac Elimnate some warnings #702 2020-08-05 23:01:59 +01:00
Bodmer dc114db01b Srite class updates + others
Add 2 new pushSprite functions:
1. Sprite to sprite
2. windowed are of sprite to screen
Examples to follow
Bug fixes to sprite class
2020-08-05 20:06:44 +01:00
Bodmer c124688ab1
Fix #697
Untested but looks correct!
2020-07-19 10:45:36 +01:00
Bodmer a6d50ea5ef #682 Add created() function for sprites
New function added:
  bool created(void);
to check if sprite has been rotated. Example:

if ( !spr.created() ) Serial.println("Sprite has not been created");
2020-07-07 00:52:55 +01:00
Bodmer 61f1c5f98e
Merge pull request #641 from kamorris/kamorris-patch-1
Add 4bit images to sprites, with an example and a tool to produce the images from bmp files.
2020-06-19 10:05:01 +01:00
Bodmer b5826586fc Allow 4bpp Sprites to be rotated
4bpp Sprites can now be pushed to the TFT with a rotation
2020-06-05 16:05:04 +01:00
kamorris 5ffd4feac4 prepare for merging. 2020-05-25 17:09:56 -07:00
Bodmer 00ac129667 Update Sprite.cpp 2020-05-05 21:36:05 +01:00
Bodmer f6748bf906 Add ESP32 SPI DMA capability
DMA test examples now work on ESP32
2020-05-05 21:21:28 +01:00
Bodmer 90af737fa1 Fix #606 inconsistency + others
TFT_eFEX also needs updating so Rotated_Sprite_3 example renders correctly.

pushImage for FLASH images updated so partly off-screen images are correctly rendered.
2020-04-26 17:05:19 +01:00
Bodmer e937a3496f Diagnostic sketch update + others
Read_User_Setup updated to be compatible with STM32 and new structure format.
Reduction in compiler warnings
Update Sprite destructor
Update version to 2.2.1
2020-04-16 14:33:42 +01:00
Bodmer 875b451590 Fix Sprite 1bpp scroll bug
Sprite scroll function fixed for 1bpp
readPixelValue() updated

Performance of circle drawing functions improved.

Version raised to 2.2.0
2020-03-30 21:51:26 +01:00
Bodmer 89bf0ce6c1 Fix #581 plus
Update 4 bit Sprite code
Update Animate_Dial example to use italic font with minimised character set, add original jpeg graphic.
Raise to 2.1.8
2020-03-25 14:27:38 +00:00
Bodmer 611ca4b223
Update Sprite.cpp 2020-03-20 02:30:26 +00:00
Bodmer 7f7cc24b00 Add new animated dial example
See Sprite "Animated_dial" example.
2020-03-20 00:30:12 +00:00
Bodmer bdf2c9ba75
Fix #572 2020-03-19 22:20:48 +00:00
Bodmer 0161814c9a Add smooth font wrapping in a Sprite
See #558
2020-03-01 18:40:54 +00:00
Bodmer db7a9987d3 Increase precision for Sprite to Sprite rotations
Based on pull request #543
2020-02-16 17:06:58 +00:00
Bodmer 83d202dd08
Merge pull request #543 from lovyan03/master
update: pushRotated tweak.
2020-02-16 16:57:28 +00:00
Bodmer 0fd8803ba2 Add smooth fonts in program memory for ESP32/8266
The 4 new smooth font  "Font_Demo_1/2/3/4_Array" examples now work on ESP32 and ESP8266.
2020-02-15 23:58:21 +00:00
Bodmer c689b4211d Add FLASH based anti-aliased fonts
Processors (such as STM32) that are not supported by a SPIFFS library can now use anti-aliased (smooth) fonts stored in FLASH (program) memory.
2020-02-14 23:54:37 +00:00