я пишу 2D-библиотеку, которая будет иметь 3D-ускорение, но я хотел бы сделать это таким образом, чтобы он эффективно работал на более старых аппаратных средствах. Возможно, typedefs для скрытия опций/функций, которые ваш целевой режим не поддерживает. (также может быть включена функция эмуляции)
Что делают старые HW? вот список вопросов и вещей, о которых я знаю.
- Плитки, это не будет поддерживаться. Это устарело, моя библиотека будет поддерживать доступ к пикселям
- Однопиксельный буфер с прокруткой. Пример ГБА
- многослойная поверхность с быстрой растяжкой поверхность к поверхности (без растяжения)
- несколько поверхностей с быстрой растяжкой от поверхности к поверхности с растяжением (может быть, это было эмулировано? Есть ли какие-либо изображения с HW-растяжением для вас?)
- Пиксельная заливка HW (мне показалось, что я видел эту опцию в DX)
- HW прозрачный цвет? (цвет прозрачный, кажется, я видел в спецификациях DX)
- Текстуры, которые раньше использовались в степени 2. Ширина не обязательно должна быть той же степени 2, что и высота? (пример 64x256), требуется ли, чтобы они были одинаковыми
- Текстуры, более новые HW могут иметь их любой ширины и высоты (или это ложь?)
- Текстуры могут быть в сумасшедших форматах (ARGB 8888, ABGR 8888, ABGR 2 10 10 10)
Кроме того, я не могу сделать текстуру для текстуры? как при копировании 60x40 из текстуры A в B в HW? Также могут быть текстуры в палитре? (я не буду поддерживать это) и, наконец, я должен помнить о шейдерах 8)
Что еще мне не хватает?