Add 'deps/ugui/' from commit 'ce0bccb5b7d4877c42081419fccadf7aa5727303'

git-subtree-dir: deps/ugui
git-subtree-mainline: ea7a64de0321ab58b15cfe0d289760f0ac57ddf8
git-subtree-split: ce0bccb5b7d4877c42081419fccadf7aa5727303
This commit is contained in:
Brad Parker 2018-06-30 12:54:53 -04:00
commit fde497fd3f
5 changed files with 9429 additions and 0 deletions

49
deps/ugui/LICENSE.md vendored Normal file
View File

@ -0,0 +1,49 @@
/* -------------------------------------------------------------------------------- */
/* -- µGUI - Generic GUI module (C)Achim Döbler, 2015 -- */
/* -------------------------------------------------------------------------------- */
// µGUI is a generic GUI module for embedded systems.
// This is a free software that is open for education, research and commercial
// developments under license policy of following terms.
//
// Copyright (C) 2015, Achim Döbler, all rights reserved.
// URL: http://www.embeddedlightning.com/
//
// * The µGUI module is a free software and there is NO WARRANTY.
// * No restriction on use. You can use, modify and redistribute it for
// personal, non-profit or commercial products UNDER YOUR RESPONSIBILITY.
// * Redistributions of source code must retain the above copyright notice.
//
/* -------------------------------------------------------------------------------- */
/* -- MY SPECIAL THANKS GO TO -- */
/* -------------------------------------------------------------------------------- */
// Andrey Filimonov (-->https://github.com/Sermus)
// for giving valuable suggestions, reporting bugs and adding several new features.
// Andrey also put a lot of work in the implementaion of anti-aliased font support.
//
// Mikhail Podkur (-->https://github.com/MikhailPodkur)
// for adding cyrillic 8x12 font, checkbox feature and RGB565 support.
//
// Gustavo Denardin
// for giving valuable suggestions regarding real-time os support.
//
// Samuel Kleiser
// for reporting bugs and giving examples how to improve µGUI.
/* -------------------------------------------------------------------------------- */
/* -- REVISION HISTORY -- */
/* -------------------------------------------------------------------------------- */
// Dec 20, 2015 V0.31 Checkbox component with all funtions added.
// Cyrillic font 8x12 added.
// RGB565 color schema added.
// Windows components font could be getted from current GUI by default
// Mar 18, 2015 V0.3 Driver support added.
// Window and object support added.
// Touch support added.
// Fixed some minor bugs.
//
// Oct 20, 2014 V0.2 Function UG_DrawRoundFrame() added.
// Function UG_FillRoundFrame() added.
// Function UG_DrawArc() added.
// Fixed some minor bugs.
//
// Oct 11, 2014 V0.1 First release.
/* -------------------------------------------------------------------------------- */

28
deps/ugui/README.md vendored Normal file
View File

@ -0,0 +1,28 @@
# Introduction
## What is µGUI?
µGUI is a free and open source graphic library for embedded systems. It is platform-independent
and can be easily ported to almost any microcontroller system. As long as the display is capable
of showing graphics, µGUI is not restricted to a certain display technology. Therefore, display
technologies such as LCD, TFT, E-Paper, LED or OLED are supported. The whole module
consists of three files: **ugui.c**, **ugui.h** and **ugui_config.h**.
## µGUI Features
* µGUI supports any color, grayscale or monochrome display
* µGUI supports any display resolution
* µGUI supports multiple different displays
* µGUI supports any touch screen technology (e.g. AR, PCAP)
* µGUI supports windows and objects (e.g. button, textbox)
* µGUI supports platform-specific hardware acceleration
* 16 different fonts available
* cyrillic fonts supported
* TrueType font converter available ([https://github.com/AriZuu](https://github.com/AriZuu))
* integrated and free scalable system console
* basic geometric functions (e.g. line, circle, frame etc.)
* can be easily ported to almost any microcontroller system
* no risky dynamic memory allocation required
## µGUI Requirements
µGUI is platform-independent, so there is no need to use a certain embedded system. In order to
use µGUI, only two requirements are necessary:
* a C-function which is able to control pixels of the target display.
* integer types for the target platform have to be adjusted in ugui_config.h.

8237
deps/ugui/ugui.c vendored Normal file

File diff suppressed because it is too large Load Diff

1052
deps/ugui/ugui.h vendored Normal file

File diff suppressed because it is too large Load Diff

63
deps/ugui/ugui_config.h vendored Normal file
View File

@ -0,0 +1,63 @@
#ifndef __UGUI_CONFIG_H
#define __UGUI_CONFIG_H
/* -------------------------------------------------------------------------------- */
/* -- CONFIG SECTION -- */
/* -------------------------------------------------------------------------------- */
//#define USE_MULTITASKING
/* Enable color mode */
#define USE_COLOR_RGB888 // RGB = 0xFF,0xFF,0xFF
//#define USE_COLOR_RGB565 // RGB = 0bRRRRRGGGGGGBBBBB
/* Enable needed fonts here */
//#define USE_FONT_4X6
//#define USE_FONT_5X8
//#define USE_FONT_5X12
//#define USE_FONT_6X8
//#define USE_FONT_6X10
//#define USE_FONT_7X12
//#define USE_FONT_8X8
//#define USE_FONT_8X12_CYRILLIC
//#define USE_FONT_8X12
//#define USE_FONT_8X12
//#define USE_FONT_8X14
//#define USE_FONT_10X16
//#define USE_FONT_12X16
//#define USE_FONT_12X20
//#define USE_FONT_16X26
//#define USE_FONT_22X36
//#define USE_FONT_24X40
//#define USE_FONT_32X53
/* Specify platform-dependent integer types here */
#define __UG_FONT_DATA const
typedef uint8_t UG_U8;
typedef int8_t UG_S8;
typedef uint16_t UG_U16;
typedef int16_t UG_S16;
typedef uint32_t UG_U32;
typedef int32_t UG_S32;
/* Example for dsPIC33
typedef unsigned char UG_U8;
typedef signed char UG_S8;
typedef unsigned int UG_U16;
typedef signed int UG_S16;
typedef unsigned long int UG_U32;
typedef signed long int UG_S32;
*/
/* -------------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------------- */
/* Feature enablers */
#define USE_PRERENDER_EVENT
#define USE_POSTRENDER_EVENT
#endif