Я только что добавил реализацию disp_dev
(см. # 13262) в # 12509. У меня есть некоторые (правда, незначительные) отзывы о текущем API:
Параметр color
для disp_dev_map
является указателем на uint16_t
. Это означает, что пиксели должны быть не менее 16 бит. Дисплей электронной бумаги в №12509 использует один байт на 8 пикселей, поэтому было бы более естественно использовать там uint8_t
. Особенно при работе с чем-то вроде изображения размером 8x3 пикселей.
В реализации для ili9341 x2
и y2
описывают координату внутреннего пикселя угла, а не внешнего угла. Это также указано в документации к этому драйверу. Однако это не указано в disp_dev_map
. Я также думаю, что (даже если это явно указано) это не интуитивное использование координат: прямоугольник с двумя противоположными углами, имеющими координаты (5,5) и (5,5), имеет площадь 0, а не 1.
disp_dev_set_invert
, вероятно, не будет применяться ко всем дисплеям. В настоящее время невозможно сообщить об этом пользователю.
Предложения:
Добавьте в
disp_dev_set_invert
возвращаемый тип, указывающий на успех / неудачу. Вероятно, это также должно быть в случаеdisp_dev_map
.
Другим решением для этого может быть добавление к драйверу нескольких флагов возможностей, чтобы указать различные возможности драйвера.
У меня есть предложение по проблеме глубины цвета в PR №14054.
Пока я делал некоторые упрощения API для координат в # 14051.
Я также думаю, что (даже если это явно указано) это не интуитивное использование координат: прямоугольник с двумя противоположными углами, имеющими координаты (5,5) и (5,5), имеет площадь 0, а не 1.
Но упрощение Координатора не решает эту проблему. Просто упрощение самого API.
Используйте ширину (w) и высоту (h) вместо x2 и y2, чтобы избежать путаницы. Это также то, что делают SDL, Gegl и Cairo.
Я согласен с этим. Следует решить проблему.
Можно ли как-то эту тему протолкнуть, чтобы она не сдохла? :)
Пинг @aabadie @bergzand?
Пинг @aabadie @bergzand?
Самый полезный комментарий
Пинг @aabadie @bergzand?