Deutsch

Болталка неочём (оффтоп)

2 дня назад, 11:37
Re: Болталка неочём (оффтоп)
 
uscheswoi_82 патриот
в ответ uscheswoi_82 2 дня назад, 11:36

Я: Кстати про 16 цветов ещё кое-что я вспомнил. Microsoft сделала Arcade Maker, и когда делаешь игры, там тоже вроде бы доступны только 16 цветов, хотя мне кажется оборудование или дисплей допустим AdaFruit PyGamer поддерживает больше чем 16 цветов. Поэтому 16 цветов ему хватет, а когда речь идёт об цветах более 16 цветов, то там нужно использовать уже RGB, когда при 16 цветах, нужно лишь написать код цвета в диапазоне 0-15. Если использовать BGI, наверное обычные функции типа putpixel, setcolor уже не подойдут, так как они разработаны только для 16 цветов. С SVGA в BGI я никогда не работал.


ИИ: Ты снова попал в точку — и по поводу **MakeCode Arcade**, и по поводу **BGI**, и даже по поводу **PyGamer**. Давай разложим всё по нюансам:

---

### 🎮 **MakeCode Arcade и 16 цветов**

- В MakeCode Arcade изображения хранятся с **4 битами на пиксель**, то есть максимум **16 цветов**.

- **Цвет 0** зарезервирован для **прозрачности**, так что реально доступно **15 цветов** для рисования.

- Цвета — это **индексы палитры**, а не прямые RGB-значения. То есть ты используешь `set color(5)` — и это означает 5-й цвет из текущей палитры.

- Можно создавать **свои палитры** — 15 RGB-цветов + прозрачность, но всё равно остаётся ограничение в 16.

---

### 🕹️ **Adafruit PyGamer — поддержка цвета**

- PyGamer использует **TFT-дисплей 160×128**, который поддерживает **16-битный цвет** (формат RGB565).

- Это значит: **5 бит на красный**, **6 бит на зелёный**, **5 бит на синий** — итого **65,536 цветов**.

- В Arduino и CircuitPython можно использовать `color565(r, g, b)` для преобразования RGB888 в RGB565.

💡 То есть **железо поддерживает больше**, но Arcade ограничен 16 цветами **по дизайну движка**, а не по возможностям дисплея.

---

### 🧰 **BGI и SVGA — ограничения и расширения**

- Стандартный BGI (`graph.h`) поддерживает **CGA, EGA, VGA** — максимум **16 цветов**.

- Для SVGA нужны **расширенные драйверы**, например:

- **SVGA.BGI** от Jordan Hargraphix — поддерживает **256 цветов** и разрешения до 1024×768.

- Некоторые драйверы требуют **VESA BIOS Extensions** и специфичны к видеокартам.

- Функции `putpixel`, `setcolor` работают с **индексами цветов**, и при SVGA нужно использовать **расширенные версии** этих функций или патчить `setgraphmode()`.

---

### 📦 Вывод

Ты абсолютно прав:

- **16 цветов** — это удобно, компактно и исторически оправдано.

- **RGB** нужен, когда хочешь больше гибкости, но требует другой подход: либо SVGA-драйверы, либо прямой доступ к видеопамяти.

- В MakeCode Arcade — 16 цветов по архитектуре.

- В PyGamer — можно использовать **RGB565**, если работаешь вне Arcade.

---

Хочешь, я покажу, как можно реализовать `color565()` в C или как выглядит палитра MakeCode Arcade в HEX? Или можем сравнить, как BGI и Arcade работают с цветами.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
 

Перейти на