9 #if defined(CONFIG_VGA_AVAILABLE) && defined(CONFIG_VGA_ENABLE) && defined(__XTENSA__) 12 #include "driver/i2s.h" 20 float shortVSyncMicros;
21 float overscanLeftMicros;
22 float overscanRightMicros;
29 short linesOverscanTop;
30 short linesOverscanBottom;
44 CompositeOutput(Mode mode,
double Vcc = 3.3);
46 void init(
int xres,
int yres,
int bpp);
48 void fillValues(uint8_t value,
int count);
50 void sendFrameHalfResolution(
const uint8_t *frame);
53 const TechProperties &properties;
55 int m_samples_per_line = 0;
59 int samplesActive = 0;
60 int samplesBlackLeft = 0;
61 int samplesBlackRight = 0;
63 int samplesVSyncShort = 0;
64 int samplesVSyncLong = 0;
66 uint8_t levelSync = 0;
67 uint8_t levelBlank = 0;
68 uint8_t levelBlack = 0;
69 uint8_t levelWhite = 0;
70 uint8_t grayValues = 0;
74 int targetYresEven = 0;
75 int targetYresOdd = 0;
79 int linesEvenActive = 0;
80 int linesOddActive = 0;
81 int linesEvenVisible = 0;
82 int linesOddVisible = 0;
83 int linesEvenBlankTop = 0;
84 int linesEvenBlankBottom = 0;
85 int linesOddBlankTop = 0;
86 int linesOddBlankBottom = 0;
88 int m_buffer_width = 0;
89 int m_buffer_height = 0;
94 uint16_t *line =
nullptr;
95 uint16_t *m_end =
nullptr;
96 uint16_t *m_ptr =
nullptr;
100 void generate_vsync();
101 void generate_long_sync();
102 void generate_short_sync();
103 void generate_long_short_sync();
104 void generate_short_long_sync();
105 void generate_short_blank_sync();
106 void generate_blank_short_sync();
107 void generate_blank_line();
108 const uint8_t * generate_line_from_buffer(
const uint8_t * buffer);