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-2021 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 
310 #include "fabutils.h"
311 #include "fabfonts.h"
312 #include "terminal.h"
313 #include "displaycontroller.h"
323 #include "fabui.h"
324 #include "inputbox.h"
326 #include "comdrivers/tsi2c.h"
327 #include "devdrivers/keyboard.h"
328 #include "devdrivers/mouse.h"
329 #include "devdrivers/DS3231.h"
330 #include "scene.h"
331 #include "collisiondetector.h"
332 #include "devdrivers/soundgen.h"
333 
334 
335 
336 using fabgl::Color;
337 using fabgl::VGAScanStart;
338 using fabgl::GlyphOptions;
339 using fabgl::Scene;
340 using fabgl::Bitmap;
341 using fabgl::Sprite;
343 using fabgl::Point;
344 using fabgl::Size;
345 using fabgl::Rect;
346 using fabgl::MouseDelta;
347 using fabgl::MouseStatus;
348 using fabgl::CursorName;
358 using fabgl::TermType;
359 using fabgl::SupportedTerminals;
360 using fabgl::PS2Preset;
362 using fabgl::KbdMode;
363 using fabgl::VirtualKey;
365 using fabgl::FileBrowser;
366 using fabgl::ModalWindowState;
367 using fabgl::Canvas;
368 using fabgl::PixelFormat;
369 using fabgl::RGB222;
370 using fabgl::RGBA2222;
371 using fabgl::RGB888;
372 using fabgl::RGBA8888;
373 using fabgl::FlowControl;
375 using fabgl::LineEditor;
377 using fabgl::LineEnds;
378 using fabgl::CharStyle;
380 using fabgl::SupportedLayouts;
381 using fabgl::CoreUsage;
382 using fabgl::InputResult;
383 using fabgl::InputBox;
384 
385 
Noise generator.
Definition: soundgen.h:253
Represents a 24 bit RGB color.
This file contains fabgl::CollisionDetector class definition.
A class with a set of drawing methods.
Definition: canvas.h:70
Represents a sprite.
This file contains fabgl::PS2Controller definition.
This file contains fabgl::VGA16Controller definition.
This file contains all classes related to FabGL Graphical User Interface.
Samples generator.
Definition: soundgen.h:302
This file contains the InputBox class.
This file contains fabgl::VGA4Controller definition.
Base abstract class for waveform generators. A waveform generator can be seen as an audio channel tha...
Definition: soundgen.h:62
Triangle waveform generator.
Definition: soundgen.h:219
This file contains fabgl::Keyboard definition.
This file contains TFT controllers definitions.
FlowControl
This enum defines various serial port flow control methods.
Definition: terminal.h:706
This file contains the DS3231 (Real Time Clock) device driver.
TerminalTransition
This enum defines terminal transition effect.
Definition: terminal.h:751
This file contains fabgl::Scene definition.
This file contains fabgl::BitmappedDisplayController definition.
Color
This enum defines named colors.
This file contains fabgl::Terminal definition.
A struct which contains a virtual key, key state and associated scan code.
Definition: fabutils.h:1304
CharStyle
This enum defines a character style.
Definition: terminal.h:737
This file contains fabgl::VGAController definition.
VirtualKey
Represents each possible real or derived (SHIFT + real) key.
Definition: fabutils.h:1036
This file contains fabgl::VGATextController definition.
Describes mouse movement and buttons status.
Definition: mouse.h:55
This file contains fabgl::Mouse definition.
A class to detect sprites collisions.
LineEnds
This enum defines line ends when pen width is greater than 1.
This class helps to choice a core for intensive processing tasks.
Definition: fabutils.h:1019
Scene is an abstract class useful to encapsulate functionalities of a scene (sprites, collision detector and updates).
Definition: scene.h:55
PS2DeviceType
Represents the type of device attached to PS/2 port.
Definition: ps2device.h:52
InputBox is an helper class which allows to create simple UI interfaces, like wizards or simple input...
Definition: inputbox.h:322
VGAScanStart
Represents one of the four blocks of horizontal or vertical line.
Describes mouse absolute position, scroll wheel delta and buttons status.
Definition: fabutils.h:277
PixelFormat
This enum defines a pixel format.
This file contains fabgl::VGA2Controller definition.
Represents the coordinate of a point.
Definition: fabutils.h:191
Represents an image.
InputResult
Result of InputBox dialogs helper class.
Definition: inputbox.h:56
This file contains some utility classes and functions.
TerminalController allows direct controlling of the Terminal object without using escape sequences...
Definition: terminal.h:1812
Sine waveform generator.
Definition: soundgen.h:177
LineEditorSpecialChar
Special character specified in on values from LineEditor::onSpecialChar delegate. ...
Definition: terminal.h:2014
LineEditor is a single-line / multiple-rows editor which uses the Terminal object as input and output...
Definition: terminal.h:2041
This file contains fabgl::VGA8Controller definition.
Specifies various glyph painting options.
Represents a rectangle.
Definition: fabutils.h:226
This file contains fabgl::I2C definition.
SoundGenerator handles audio output.
Definition: soundgen.h:344
Emulates VIC6561 (VIC20) noise generator.
Definition: soundgen.h:275
CursorName
This enum defines a set of predefined mouse cursors.
KbdMode
This enum defines how handle keyboard virtual keys.
Definition: ps2controller.h:65
This file contains all classes related to FabGL Sound System.
This file contains fabgl::VGADirectController definition.
Represents a bidimensional size.
Definition: fabutils.h:209
TermType
This enum defines supported terminals.
Definition: terminfo.h:110
Sawtooth waveform generator.
Definition: soundgen.h:236
Represents a 6 bit RGB color.
PS2Preset
This enum defines what is connected to PS/2 ports.
Definition: ps2controller.h:52
This file contains fabgl::SSD1306Controller definition.
Square waveform generator.
Definition: soundgen.h:194
FileBrowser allows basic file system operations (dir, mkdir, remove and rename)
Definition: fabutils.h:532