v0.10.0

@ImpulseAdventure ImpulseAdventure released this Mar 1, 2018 · 21 commits to master since this release

Major changes since v0.9.2:

  • Enhancement: significant memory reduction for Arduino, extensive updates to handle GUI elements in Flash #32
  • Modify: streamline user configuration, split Arduino & LINUX
  • Add: support for nRF52
  • Add: support for m5stack
  • Add: support for PCD8544
  • Add: support for simple resistive touchscreen
  • Fix: Miscellaneous fixes

Migration notes:

  • Calls to many APIs may require search & replace for tsElem* to tsElemRef*. Many API calls that didn't previously include tsGui* will now require the addition of the GUI pointer as the first parameter.
  • GUIslice_config.h has now been replaced by two separate configurations, depending on the device platform (ie. GUIslice_config_ard.h and GUIslice_config_linux.h). The parameters within these configurations have changed in some cases, so one should update to the new defaults and then customize as required.
  • LINUX examples moved from /tests to /linux

v0.9.2

@ImpulseAdventure ImpulseAdventure released this Apr 30, 2017 · 119 commits to master since this release

Release notes for pre-existing release (v0.9.2 on 2018/01/06; changes from 0.9):

  • Add: Support for alternate Adafruit-GFX fonts
  • Add: Support for TFT_eSPI
  • Add: Improved memory consumption for Arduino (including initial support for elements in FLASH).
    See examples in /arduino_min
  • Add: Support for HX8357 display driver
  • Add: Support for XPT2046 touch driver (via TFT_eSPI)
  • Add: Graph control
  • Add: Dynamic screen rotation
  • Fix: Improved support for compiling across device variants
  • Fix: Ramp redraw
  • Fix: Checkbox/radio button glowing
  • Fix: Text height with scaling
  • Fix: Improved touch response handling
  • Fix: DebugPrintf() output of 0

Migration Notes (since v0.9.0):

  • FontAdd() API has changed
  • DrvGetTxtSize() API has changed
  • GUIslice_config.h: Added GSLC_TOUCH_MAX_EVT, ADAGFX_ROTATE

General enhancements

@ImpulseAdventure ImpulseAdventure released this Mar 28, 2017 · 196 commits to master since this release

  • Change: Extensive updates to config guide spreadsheet (incl Beaglebone Black)
  • Add: Filled circle graphic primitive (gslc_DrawFillCircle())
  • Fix: gslc_DrawLine() for vertical/horizontal optimizations
  • Add: DBG_DRIVER to report SDL debug info
  • Add: Frame update rate reporting in gslc-ex04
  • Change: SDL1.2 now selects SDL_FULLSCREEN mode
  • Change: Touch event handler to be more robust
  • Change: Config adds DRV_SDL_RENDER_ACCEL (select between software and hardware renderer for SDL2). Default to 1.
  • Change: Config defaults DRV_SDL_FIX_START to 0
  • Change: Added math lib dependency (to support upcoming radial control)
  • Fix: Mouse handling in SDL2
  • Fix: Added missing dependency in Makefile
  • Migration Notes (from 0.8.6):
    • Add #define DRV_SDL_RENDER_ACCEL to GUIslice_config.h
    • Add -lm to Makefile linker options

As always, I welcome suggestions, feedback or code contributions! (guislice @ impulseadventure.com)

Enhancements for SDL

@ImpulseAdventure ImpulseAdventure released this Mar 18, 2017 · 199 commits to master since this release

  • Fix: SDL2 using mouse
  • Fix: SDL2 controls more reponsive
  • Change: SDL2 renderer change for better performance
  • Change: SDL examples now use GSLC_DEV_VID_DRV from GUIslice_config.h to set SDL_VIDEODRIVER
  • Fix: XSlider control tick drawing
  • Change: Makefile added GSLC_LDLIB_EXTRA variable
  • Update: GUIslice config guide spreadsheet updates, including Beaglebone Black
  • NOTE: Beaglebone operation with SDL is not functional in this release. Please use v0.8.7 instead.
  • As always, I welcome suggestions, feedback or code contributions! (guislice @ impulseadventure.com)

Add support for SSD1306 & ST7735

@ImpulseAdventure ImpulseAdventure released this Mar 14, 2017 · 200 commits to master since this release

  • Add: Support for ST7735 (eg. 0.96" OLED 128x64) using DRV_DISP_ADAGFX_ST7735
  • Add: Support for SSD1306 (eg. 1.44" SPI 128x128) using DRV_DISP_ADAGFX_SSD1306. Fixes
  • Update: GUIslice config guide spreadsheet with more example configurations
  • As always, I welcome suggestions, feedback or code contributions! (guislice @ impulseadventure.com)

General enhancements

@ImpulseAdventure ImpulseAdventure released this Mar 8, 2017 · 202 commits to master since this release

  • Add: Line element (gslc_ElemCreateLine)
  • Add: Support for capacitive touch (FT6206) on Arduino (DRV_TOUCH_ADA_FT6206)
  • Add: Support for touch axis swap and flipping on Arduino (ADATOUCH_SWAP_XY, ADATOUCH_FLIP_X, ADATOUCH_FLIP_Y)
  • Add: Support for gauge element direction flipping (gslc_ElemXGaugeSetFlip) and improved redraw. Fixed vertical gauge default orientation.
  • Add: Support for GUIslice with LINUX mouse support in DRV_DISP_SDL* (eg. Raspberry Pi with HDMI display) using DRV_SDL_MOUSE_SHOW.
  • Update: Configuration (GUIslice_config.h) updated to use more consistent notation with #define.
  • Add: Added GUIslice config guide (docs/GUIslice_config_guide.xlsx) to demonstrate example CPU / board / display configuration settings.
  • Fix: Fixed error in DRV_TOUCH_SDL mode
  • Migration Notes (from 0.8.3):
    • The following #define should now use an explicit value (1 to enable, 0 to disable): ADAGFX_SPI_HW, ADATOUCH_I2C_HW, ADATOUCH_SPI_HW, ADATOUCH_SPI_SW, DRV_SDL_FIX_START.

Support Arduino debug output

@ImpulseAdventure ImpulseAdventure released this Jan 10, 2017 · 210 commits to master since this release

  • Add: InitDebug() to support redirection of debug output to Serial / stderr
  • Change: debug_print() renamed to GSLC_DEBUG_PRINT()
  • Change: Improved RAM consumption on Arduino
  • Change: Example code enables debug output, cleaned up error handling
  • Change: Enable debugging output by default in Config (DEBUG_ERR 1), set to 0 to reduce memory
  • Migration Notes (from 0.8.2):
    • To enable debug output:
      • Add user DebugOut() function
      • Call gslc_InitDebug() at start of code
      • Please refer to example code for details

Support elements in Flash memory

@ImpulseAdventure ImpulseAdventure released this Jan 4, 2017 · 214 commits to master since this release

  • Add: Significant RAM savings with Flash-based elements, making it possible to use smaller Arduino CPUs.
    • Add: Element collections support read-only elements stored in Flash memory (PROGMEM).
    • Add: Element Reference type defines where the elements are located (eg. tsPage's internal element array in RAM or external Flash memory).
    • Add: ElemCreate*_P() macros to build read-only elements in Flash
    • Change: Some Arduino sketches use ElemCreate*_P() macros to select Flash memory for elements, reducing RAM consumption considerably.
  • Change: Arduino sketches moved main loop code into loop()
  • Fix: Clipping of points fixed: ClipPt()
  • Change: Element drawing reduce flicker in frame: ElemDrawByRef()
  • Migration Notes (from 0.8.1):
    • Add an element reference array static/global (array of gslc_tsElemRef).
      • Previously, a static/global element array would have been allocated as follows:

        gslc_tsElem m_asPageElem[MAX_ELEM];
      • With this version, an element reference array must also be allocated. If Flash memory is not being used for elements, the array bounds can be the same as the element array. For example:

        gslc_tsElemRef m_asPageElemRef[MAX_ELEM];
      • See example code for details
    • PageAdd() adds two parameters (element reference array and total element count).
    • To take advantage of Flash-based elements, see example /arduino/gslc_ex07_ard/

UPDATE: As of commit 67f3a93 (2017/01/08), all CPUs (eg. Feather M0) can use ElemCreate*_P() macros (even if PROGMEM is not supported).

Enhancements for Arduino

@ImpulseAdventure ImpulseAdventure released this Dec 30, 2016 · 220 commits to master since this release

  • Add support for element text strings in Flash (PROGMEM)
    • Add ElemSetTxtMem()
    • Add tsElem.eTxtFlags
  • GUIslice tested with:
    • Raspberry Pi: PiTFT 2.8" Capacitive (SDL1.2)
    • Raspberry Pi: PiTFT 2.8" Capacitive (SDL2.0)
    • Adafruit Feather M0 (Cortex M0): Adafruit 2.2" TFT breakout
    • Arduino (Pro Mini ATmega328P): Adafruit 2.2" TFT breakout
    • Arduino (ATmega2560): Adafruit 2.2" TFT breakout
    • Arduino (ATmega2560): Adafruit 2.8" TFT resistive touch shield
  • Many enhancements for Arduino support
    • Add support for image backgrounds
    • Add support for STMPE610 touch driver
    • Port all examples to Arduino
  • Other enhancements
    • Add ElemGetRedraw()
    • Add CollectGetRedraw()
    • Prevent unnecessary redraw in some functions
    • Fixed range checking of maximum elements
  • Migration Notes (from v0.8)
    • No changes to public APIs
    • Changes to developer APIs:
      • Change param to include eTxtFlags: DrvDrawTxt(), DrvGetTxtSize()