2#include <initializer_list>
6#include "TinyGPU/Drivers/DisplayDriver.h"
7#include "TinyGPU/Emulation.h"
10#include "esp_lcd_panel_io.h"
11#include "soc/soc_caps.h"
16#include "esp_lcd_io_i80.h"
17#include "esp_lcd_io_parl.h"
18#define TINYGPU_HAS_ESP_LCD_PARALLEL8 1
21 "DisplayDriverParallel8ESP32.h needs the ESP-IDF esp_lcd component (LCD_CAM/I80 or PARLIO peripheral) - ESP32-only. For a portable, any-Arduino-core bit-banged 8-bit parallel driver see DisplayDriverParallel8.h instead."
26#ifdef TINYGPU_HAS_ESP_LCD_PARALLEL8
28#if SOC_LCD_I80_SUPPORTED
29#define TINYGPU_PARALLEL8_BACKEND_I80 1
30#elif SOC_PARLIO_SUPPORTED
31#define TINYGPU_PARALLEL8_BACKEND_PARLIO 1
34 "This ESP32 target has neither the LCD_CAM/I80 peripheral (SOC_LCD_I80_SUPPORTED) nor the PARLIO peripheral (SOC_PARLIO_SUPPORTED) - hardware-accelerated 8-bit parallel output isn't available on it. Use the portable bit-banged DisplayDriverParallel8.h instead."
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
102 if (
io_ !=
nullptr) {
106#ifdef TINYGPU_PARALLEL8_BACKEND_I80
107 if (
bus_ !=
nullptr) {
127 static_assert(
sizeof(
RGB_T) == 2,
128 "writeData assumes a 16bpp RGB_T (RGB565) stored in "
130 if (
io_ ==
nullptr)
return false;
169#ifdef TINYGPU_PARALLEL8_BACKEND_I80
181#if defined(TINYGPU_PARALLEL8_BACKEND_I80)
186 for (
int i = 0;
i < 8; ++
i) {
213#elif defined(TINYGPU_PARALLEL8_BACKEND_PARLIO)
218 for (
int i = 0;
i < 8; ++
i) {
249 if (
i >=
sizeof(
buf))
break;
259 static_cast<
uint8_t>((
x +
w - 1) & 0xFF)};
263 static_cast<
uint8_t>((
y +
h - 1) & 0xFF)};
280
281
282
283
284
285
286
287
343 writeCommand(0xE0, {0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, 0x4E, 0xF1, 0x37,
344 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00});
345 writeCommand(0xE1, {0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, 0x31, 0xC1, 0x48,
346 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F});
394
395
396
397
Definition: DSIBusESP32.h:19