FabGL
ESP32 Display Controller and Graphics Library
fabgl.h
Go to the documentation of this file.
1/*
2 Created by Fabrizio Di Vittorio (fdivitto2013@gmail.com) - <http://www.fabgl.com>
3 Copyright (c) 2019-2022 Fabrizio Di Vittorio.
4 All rights reserved.
5
6
7* Please contact fdivitto2013@gmail.com if you need a commercial license.
8
9
10* This library and related software is available under GPL v3.
11
12 FabGL is free software: you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation, either version 3 of the License, or
15 (at your option) any later version.
16
17 FabGL is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 GNU General Public License for more details.
21
22 You should have received a copy of the GNU General Public License
23 along with FabGL. If not, see <http://www.gnu.org/licenses/>.
24 */
25
26
27
28#pragma once
29
30
311#include "fabutils.h"
312#include "fabfonts.h"
313#include "terminal.h"
314#include "displaycontroller.h"
325#include "fabui.h"
326#include "inputbox.h"
328#include "comdrivers/tsi2c.h"
329#include "devdrivers/keyboard.h"
330#include "devdrivers/mouse.h"
331#include "devdrivers/DS3231.h"
332#include "scene.h"
333#include "collisiondetector.h"
334#include "devdrivers/soundgen.h"
335
336
337
338using fabgl::Color;
341using fabgl::Scene;
342using fabgl::Bitmap;
343using fabgl::Sprite;
345using fabgl::Point;
346using fabgl::Size;
347using fabgl::Rect;
361using fabgl::TermType;
362using fabgl::SupportedTerminals;
363using fabgl::PS2Preset;
365using fabgl::KbdMode;
369using fabgl::ModalWindowState;
370using fabgl::Canvas;
372using fabgl::RGB222;
373using fabgl::RGBA2222;
374using fabgl::RGB888;
375using fabgl::RGBA8888;
380using fabgl::LineEnds;
381using fabgl::CharStyle;
383using fabgl::SupportedLayouts;
384using fabgl::CoreUsage;
386using fabgl::InputBox;
387
388
This file contains the DS3231 (Real Time Clock) device driver.
This file contains fabgl::SSD1306Controller definition.
This file contains TFT controllers definitions.
A class with a set of drawing methods.
Definition: canvas.h:70
A class to detect sprites collisions.
FileBrowser allows basic file system operations (dir, mkdir, remove and rename)
Definition: fabutils.h:554
InputBox is an helper class which allows to create simple UI interfaces, like wizards or simple input...
Definition: inputbox.h:322
LineEditor is a single-line / multiple-rows editor which uses the Terminal object as input and output...
Definition: terminal.h:2043
Samples generator.
Definition: soundgen.h:310
Sawtooth waveform generator.
Definition: soundgen.h:244
Scene is an abstract class useful to encapsulate functionalities of a scene (sprites,...
Definition: scene.h:55
Sine waveform generator.
Definition: soundgen.h:185
SoundGenerator handles audio output.
Definition: soundgen.h:350
Square waveform generator.
Definition: soundgen.h:202
TerminalController allows direct controlling of the Terminal object without using escape sequences.
Definition: terminal.h:1814
Triangle waveform generator.
Definition: soundgen.h:227
Emulates VIC6561 (VIC20) noise generator.
Definition: soundgen.h:283
Base abstract class for waveform generators. A waveform generator can be seen as an audio channel tha...
Definition: soundgen.h:70
This file contains fabgl::CollisionDetector class definition.
This file contains fabgl::CVBS16Controller definition.
This file contains fabgl::BitmappedDisplayController definition.
This file contains all classes related to FabGL Graphical User Interface.
This file contains some utility classes and functions.
SoundGenMethod
Specifies sound generation method.
Definition: soundgen.h:328
TerminalTransition
This enum defines terminal transition effect.
Definition: terminal.h:751
InputResult
Result of InputBox dialogs helper class.
Definition: inputbox.h:56
CharStyle
This enum defines a character style.
Definition: terminal.h:737
KbdMode
This enum defines how handle keyboard virtual keys.
Definition: ps2controller.h:65
TermType
This enum defines supported terminals.
Definition: terminfo.h:110
LineEnds
This enum defines line ends when pen width is greater than 1.
LineEditorSpecialChar
Special character specified in on values from LineEditor::onSpecialChar delegate.
Definition: terminal.h:2016
PS2DeviceType
Represents the type of device attached to PS/2 port.
Definition: ps2device.h:52
Color
This enum defines named colors.
CursorName
This enum defines a set of predefined mouse cursors.
VGAScanStart
Represents one of the four blocks of horizontal or vertical line.
PS2Preset
This enum defines what is connected to PS/2 ports.
Definition: ps2controller.h:52
VirtualKey
Represents each possible real or derived (SHIFT + real) key.
Definition: fabutils.h:1097
FlowControl
This enum defines various serial port flow control methods.
Definition: terminal.h:706
PixelFormat
This enum defines a pixel format.
This file contains the InputBox class.
This file contains fabgl::Keyboard definition.
This file contains fabgl::Mouse definition.
This file contains fabgl::PS2Controller definition.
This file contains fabgl::Scene definition.
This file contains all classes related to FabGL Sound System.
Represents an image.
This class helps to choice a core for intensive processing tasks.
Definition: fabutils.h:1050
Describes mouse movement and buttons status.
Definition: mouse.h:55
Describes mouse absolute position, scroll wheel delta and buttons status.
Definition: fabutils.h:299
Represents the coordinate of a point.
Definition: fabutils.h:213
Represents a 6 bit RGB color.
Represents a 24 bit RGB color.
Represents an 8 bit ABGR color.
Represents a 32 bit RGBA color.
Represents a rectangle.
Definition: fabutils.h:248
Represents a bidimensional size.
Definition: fabutils.h:231
Represents a sprite.
A struct which contains a virtual key, key state and associated scan code.
Definition: fabutils.h:1381
This file contains fabgl::Terminal definition.
This file contains fabgl::I2C definition.
Specifies various glyph painting options.
This file contains fabgl::VGA16Controller definition.
This file contains fabgl::VGA2Controller definition.
This file contains fabgl::VGA4Controller definition.
This file contains fabgl::VGA8Controller definition.
This file contains fabgl::VGAController definition.
This file contains fabgl::VGADirectController definition.
This file contains fabgl::VGATextController definition.