FabGL
ESP32 Display Controller and Graphics Library
fabglconf.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-2020 Fabrizio Di Vittorio.
4  All rights reserved.
5 
6  This file is part of FabGL Library.
7 
8  FabGL is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  FabGL is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with FabGL. If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 
23 #pragma once
24 
25 
26 
36 #include <esp_wifi.h>
37 
38 
39 
41 #define FABGLIB_XTAL 40000000
42 
43 
45 #define FABGLIB_DEFAULT_BLINK_PERIOD_MS 500
46 
48 #define FABGLIB_DEFAULT_DISPLAYCONTROLLER_QUEUE_SIZE 1024
49 
50 
52 #define FABGLIB_PRIMITIVES_DYNBUFFERS_SIZE 512
53 
54 
56 #define FABGLIB_DEFAULT_TERMINAL_INPUT_QUEUE_SIZE 1024
57 
58 
60 #define FABGLIB_TERMINAL_OUTPUT_QUEUE_SIZE 32
61 
62 
63 #define FABGLIB_TERMINAL_XOFF_THRESHOLD (FABGLIB_DEFAULT_TERMINAL_INPUT_QUEUE_SIZE / 2)
64 #define FABGLIB_TERMINAL_XON_THRESHOLD (FABGLIB_DEFAULT_TERMINAL_INPUT_QUEUE_SIZE / 4)
65 
66 
68 #define FABGLIB_DEFAULT_TERMINAL_INPUT_CONSUMER_TASK_STACK_SIZE 2048
69 
70 
72 #define FABGLIB_CHARS_CONSUMER_TASK_PRIORITY 5
73 
74 
76 #define FABGLIB_DEFAULT_TERMINAL_KEYBOARD_READER_TASK_STACK_SIZE 2048
77 
78 
80 #define FABGLIB_KEYBOARD_READER_TASK_PRIORITY 5
81 
82 
84 #define FABGLIB_DEFAULT_SCODETOVK_TASK_STACK_SIZE 800
85 
86 
88 #define FABGLIB_SCODETOVK_TASK_PRIORITY 5
89 
90 
92 #define FABGLIB_UNDERLINE_POSITION 0
93 
94 
96 #define FABGLIB_CACHE_FONT_IN_RAM 0
97 
98 
100 #define FABGLIB_HAS_VirtualKeyO_STRING 1
101 
102 
104 #define FABGLIB_USE_APLL_AB_COEF 0
105 
106 
108 #define FABGLIB_MAX_CSI_PARAMS 12
109 
110 
112 #define FABGLIB_MAX_DCS_CONTENT 12
113 
114 
116 #define FABGLIB_VIEWPORT_MEMORY_POOL_COUNT 10
117 
118 
120 #define FABGLIB_KEYBOARD_VIRTUALKEY_QUEUE_SIZE 32
121 
122 
124 #define FABGLIB_MOUSE_EVENTS_QUEUE_SIZE 64
125 
126 
128 #define FABGLIB_VIDEO_CPUINTENSIVE_TASKS_CORE (WIFI_TASK_CORE_ID ^ 1) // using the same core of WiFi may cause flickering
129 
130 
132 #define FABGLIB_VGAPALETTEDCONTROLLER_PRIMTASK_STACK_SIZE 1024
133 
134 
136 #define FABGLIB_VGAPALETTEDCONTROLLER_PRIMTASK_PRIORITY 5
137 
138 
139 
140 // debug options
141 #define FABGLIB_TERMINAL_DEBUG_REPORT_IN_CODES 0
142 #define FABGLIB_TERMINAL_DEBUG_REPORT_INQUEUE_CODES 0 // use as alternative to FABGLIB_TERMINAL_DEBUG_REPORT_IN_CODES when write() is called inside isr
143 #define FABGLIB_TERMINAL_DEBUG_REPORT_OUT_CODES 0
144 #define FABGLIB_TERMINAL_DEBUG_REPORT_ESC 0
145 #define FABGLIB_TERMINAL_DEBUG_REPORT_DESCS 0
146 #define FABGLIB_TERMINAL_DEBUG_REPORT_DESCSALL 0
147 #define FABGLIB_TERMINAL_DEBUG_REPORT_OSC_CONTENT 0
148 #define FABGLIB_TERMINAL_DEBUG_REPORT_UNSUPPORT 1
149 #define FABGLIB_TERMINAL_DEBUG_REPORT_ERRORS 1
150 #define FABGLIB_VGAXCONTROLLER_PERFORMANCE_CHECK 0
151 
152 
153 /************ Preset Resolution Modelines ************/
154 
156 #define VGA_256x192_50Hz "\"256x192@50\" 8.13 256 288 296 328 192 196 198 202 -HSync -VSync DoubleScan"
157 
159 #define VGA_256x384_60Hz "\"256x384@60\" 17.09 256 272 304 352 384 387 391 404 -HSync -VSync DoubleScan FrontPorchBegins"
160 
162 #define VGA_320x200_75Hz "\"320x200@75Hz\" 12.93 320 352 376 408 200 208 211 229 -HSync -VSync DoubleScan"
163 
165 #define VGA_320x200_75HzRetro "\"320x200@75Hz\" 12.93 320 352 376 408 200 208 211 229 -HSync -VSync DoubleScan MultiScanBlank"
166 
168 #define QVGA_320x240_60Hz "\"320x240@60Hz\" 12.6 320 328 376 400 240 245 246 262 -HSync -VSync DoubleScan"
169 
171 #define VGA_400x300_60Hz "\"400x300@60Hz\" 20 400 420 484 528 300 300 302 314 -HSync -VSync DoubleScan"
172 
174 #define VGA_480x300_75Hz "\"480x300@75Hz\" 31.22 480 504 584 624 300 319 322 333 -HSync -VSync DoubleScan"
175 
177 #define VGA_512x192_60Hz "\"512x192@60Hz\" 32.5 512 524 592 672 192 193 194 202 -HSync -VSync QuadScan"
178 
180 #define VGA_512x384_60Hz "\"512x384@60Hz\" 32.5 512 524 592 672 384 385 388 403 -HSync -VSync DoubleScan"
181 
183 #define VGA_512x448_60Hz "\"512x448@60Hz\" 21.21 512 542 598 672 448 469 472 527 -HSync -VSync"
184 
186 #define VGA_512x512_58Hz "\"512x512@58Hz\" 21.21 512 538 594 668 512 513 516 545 -HSync -VSync"
187 
189 #define VGA_640x200_70Hz "\"640x200@70Hz\" 25.175 640 663 759 808 200 208 211 226 -HSync -VSync DoubleScan"
190 
192 #define VGA_640x200_70HzRetro "\"640x200@70Hz\" 25.175 640 663 759 808 200 208 211 226 -HSync -VSync DoubleScan MultiScanBlank"
193 
195 #define VGA_640x240_60Hz "\"640x240@60Hz\" 25.175 640 656 752 800 240 245 247 262 -HSync -VSync DoubleScan"
196 
197 // Thanks to Paul Rickards (http://biosrhythm.com)
198 #define NTSC_640x240_60hz "\"NTSC 640x240 (60Hz)\" 12.312 640 662 719 784 240 244 247 262 -hsync -vsync"
199 
201 #define VGA_640x350_70Hz "\"640x350@70Hz\" 25.175 640 656 752 800 350 387 389 449 -HSync -VSync"
202 
204 #define VGA_640x350_70HzAlt1 "\"640x350@70HzAlt1\" 25.175 640 658 754 808 350 387 389 449 -HSync -VSync"
205 
207 #define VESA_640x350_85Hz "\"640x350@85Hz\" 31.5 640 672 736 832 350 382 385 445 -HSync -VSync"
208 
210 #define VGA_640x382_60Hz "\"640x382@60Hz\" 40 640 672 740 840 382 385 387 397 -HSync +VSync DoubleScan"
211 
213 #define VGA_640x384_60Hz "\"640x384@60Hz\" 40 640 672 740 840 384 384 386 397 -HSync +VSync DoubleScan"
214 
216 #define VGA_640x400_70Hz "\"640x400@70Hz\" 25.175 640 656 752 800 400 412 414 449 -HSync -VSync"
217 
219 #define VGA_640x400_60Hz "\"640x400@60Hz-mod\" 25.175 640 656 752 800 400 452 454 525 -HSync -VSync"
220 
222 #define VGA_640x480_60Hz "\"640x480@60Hz\" 25.175 640 656 752 800 480 490 492 525 -HSync -VSync"
223 
225 #define VGA_640x480_60HzAlt1 "\"640x480@60HzAlt1\" 27.5 640 672 768 864 480 482 488 530 -HSync -VSync"
226 
228 #define VGA_640x480_60HzD "\"640x480@60HzD\" 54.00 640 688 744 900 480 480 482 500 +HSync +VSync DoubleScan"
229 
231 #define VGA_640x480_73Hz "\"640x480@73Hz\" 31.5 640 664 704 832 480 489 491 520 -HSync -VSync"
232 
234 #define VESA_640x480_75Hz "\"640x480@75Hz\" 31.5 640 656 720 840 480 481 484 500 -HSync -VSync"
235 
236 // Thanks to Paul Rickards (http://biosrhythm.com)
237 #define NTSC_720x240_60hz "\"NTSC 720x240 (60Hz)\" 13.820 720 744 809 880 240 244 247 262 -hsync -vsync"
238 
239 // Thanks to Paul Rickards (http://biosrhythm.com)
240 #define PAL_720x288_50hz "\"PAL 720x288 (50Hz)\" 13.853 720 741 806 888 288 290 293 312 -hsync -vsync"
241 
243 #define VESA_720x400_85Hz "\"720x400@85Hz\" 35.5 720 756 828 936 400 401 404 446 -HSync -VSync"
244 
246 #define PAL_720x576_50Hz "\"720x576@50Hz\" 27 720 732 795 864 576 581 586 625 -HSync -VSync"
247 
248 // Thanks to Paul Rickards (http://biosrhythm.com)
249 #define PAL_768x288_50hz "\"PAL 768x288 (50Hz)\" 14.726 768 790 859 944 288 290 293 312 -hsync -vsync"
250 
252 #define VESA_768x576_60Hz "\"768x576@60Hz\" 34.96 768 792 872 976 576 577 580 597 -HSync -VSync"
253 
255 #define SVGA_800x300_60Hz "\"800x300@60Hz\" 40 800 840 968 1056 300 301 303 314 -HSync -VSync DoubleScan"
256 
258 #define SVGA_800x600_56Hz "\"800x600@56Hz\" 36 800 824 896 1024 600 601 603 625 -HSync -VSync"
259 
261 #define SVGA_800x600_60Hz "\"800x600@60Hz\" 40 800 840 968 1056 600 601 605 628 -HSync -VSync"
262 
264 #define SVGA_960x540_60Hz "\"960x540@60Hz\" 37.26 960 976 1008 1104 540 542 548 563 +hsync +vsync"
265 
267 #define SVGA_1024x768_60Hz "\"1024x768@60Hz\" 65 1024 1048 1184 1344 768 771 777 806 -HSync -VSync"
268 
270 #define SVGA_1024x768_70Hz "\"1024x768@70Hz\" 75 1024 1048 1184 1328 768 771 777 806 -HSync -VSync"
271 
273 #define SVGA_1024x768_75Hz "\"1024x768@75Hz\" 78.80 1024 1040 1136 1312 768 769 772 800 +HSync +VSync"
274 
276 #define SVGA_1280x600_60Hz "\"1280x600@60Hz\" 61.5 1280 1336 1464 1648 600 601 604 622 -HSync -VSync FrontPorchBegins"
277 
279 #define SVGA_1280x720_60Hz "\"1280x720@60Hz\" 74.48 1280 1468 1604 1664 720 721 724 746 +hsync +vsync"
280 
282 #define SVGA_1280x720_60HzAlt1 "\"1280x720@60HzAlt1\" 73.78 1280 1312 1592 1624 720 735 742 757"
283 
285 #define SVGA_1280x768_50Hz "\"1280x768@50Hz\" 64.050004 1280 1312 1552 1584 768 784 791 807 -HSync -VSync FrontPorchBegins"
286 
287 
288 
290 #define OLED_128x64 "\"OLED_128x64\" 128 64"
291 
293 #define OLED_128x32 "\"OLED_128x32\" 128 32"
294 
296 #define TFT_240x240 "\"TFT_240x240\" 240 240"
297 
299 #define TFT_240x320 "\"TFT_240x320\" 240 320"
300 
301 
302 
303