Refactor bitmap, add new formats

Small refactoring of the bitmap module and added more indexed formats.
This commit is contained in:
2025-08-04 12:33:44 +03:00
parent 9c593932a3
commit 0da77c00d6
4 changed files with 583 additions and 203 deletions

View File

@@ -25,6 +25,18 @@ BH_Bitmap - доступ к растровому изображению/карт
=over
=item B<BH_BITMAP_INDEX1>
1-разрядный индексированный/палитрированный
=item B<BH_BITMAP_INDEX2>
2-разрядный индексированный/палитрированный
=item B<BH_BITMAP_INDEX4>
4-разрядный индексированный/палитрированный
=item B<BH_BITMAP_INDEX8>
8-разрядный индексированный/палитрированный
@@ -77,9 +89,15 @@ BH_Bitmap - доступ к растровому изображению/карт
Флаг I<BH_BITMAP_BGR> может использоваться для изменения порядка цветовых
каналов (RGB -> BGR). Этот флаг не влияет на следующие пиксельные форматы:
I<BH_BITMAP_INDEX1>, I<BH_BITMAP_INDEX2>, I<BH_BITMAP_INDEX4>,
I<BH_BITMAP_INDEX8>, I<BH_BITMAP_GRAY8>, I<BH_BITMAP_GRAY16>,
I<BH_BITMAP_RGBA32> и I<BH_BITMAP_RGBA64>.
Флаг I<BH_BITMAP_LSB> может использоваться для изменения начала отсчета порядка
бит для индексированных изображений. Этот флаг влияет только на следующие
пиксельные форматы: I<BH_BITMAP_INDEX1>, I<BH_BITMAP_INDEX2>,
I<BH_BITMAP_INDEX4> и I<BH_BITMAP_INDEX8>.
Флаг I<BH_BITMAP_NOALPHA> может использоваться для указания того,
что альфа-канал не используется и всегда должен быть установлен в максимальное
значение (255 для 8-разрядных и 65535 для 16-разрядных).
@@ -155,7 +173,30 @@ I<BH_BITMAP_RGBA32> и I<BH_BITMAP_RGBA64>.
Записывает значение цвета пикселя в указанной позиции.
Параметры I<x> и I<y> определяют положение на растровой карте.
Параметры I<x> и I<y> определяют положение на растровом изображении.
=head2 BH_BitmapIndex
uint8_t BH_BitmapIndex(const BH_Bitmap *bitmap,
int x,
int y);
Возвращает значение индекса в указанной позиции.
Параметры I<x> и I<y> определяют положение на растровом изображении.
=head2 BH_BitmapSetIndex
void BH_BitmapSetIndex(BH_Bitmap *bitmap,
int x,
int y,
uint8_t index);
Устанавливает значение индекса в указанной позиции.
Параметры I<x> и I<y> определяют положение на растровом изображении.
=head2 BH_BitmapCopy