Subversion Repositories Kolibri OS

Rev

Rev 2759 | Rev 2920 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1535 IgorA 1
2
3
библиотека для работы с 2d буферами
4
5
45
46
 
47
48
 
49

Оглавление

50
    51
  • Вступление
  • 2759 IgorA 52
  • Форматы буферов
  • 1535 IgorA 53
  • Функции
  • 2759 IgorA 54
      55
    • lib_init
    • 56
    • buf2d_create
    • 2815 IgorA 57
    • buf2d_crop_color
    • 2759 IgorA 58
    • buf2d_vox_brush_create
    • 59
      60
      61
    • Константы
    • 1535 IgorA 62
    • Таблица экспорта
    • 63
    • История
    • 64
      65
       
      66

      Вступление

      67

      Документация к свободной библиотеке buf2d.asm, для ОС Колибри.

      68
       Эта библиотека создана для работы с 2d изображениями.
      1648 IgorA 69
       С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран.
      2759 IgorA 70
       Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями.
      71
       Есть функции рисования линий, кривых Безье, прямоугольников, окружностей.
      72
       Также есть функции для рисований воксельной графики.

      1535 IgorA 73
       
      2815 IgorA 74

      Последнее обновление библиотеки 21.06.12.

      1535 IgorA 75
       
      2759 IgorA 76

      Форматы буферов

      1535 IgorA 77

      Поддерживается 3 формата буферов.

      78
       Каждая функция при работе с буферами может быть расчитана на работу с определенными форматами изображений.

      79
       
      80

      8 бит

      81

      Сожержит альфа канал a (прозрачность) изображения. На экран не выводится. Используется для созданя 32-битных буферов.

      82

      24 бит

      83

      Данный буфер содержит изображение в формате rgb. Может выводится на экран.

      84

      32 бит

      85

      Содержит прозрачное изображение в формате rgba. На экран не выводится. Используется для наложения изображений.

      86
       
      87

      Функции

      88
       
      89

      Почти все функции 1-м параметром принимают указатель на структуру буфера,

      90
       из которой могут использоваться параметры, нужные для работы конкретной функции.
      91
       Пример структуры буфера изображения:

      92
      align 4
      93
      buf_0:
      94
      	dd    0 ;+ 0 указатель на буфер изображения
      95
      	dw  100 ;+ 4 отступ слева
      96
      	dw   10 ;+ 6 отступ справа
      97
      	dd  150 ;+ 8 ширина
      98
      	dd  100 ;+12 высота
      99
      	dd 0x80 ;+16 фоновый цвет
      100
      	db   24 ;+20 бит на пиксель
      101
       
      2759 IgorA 102

      lib_init

      1535 IgorA 103

      Эта функция получает указатели на функции работы с памятью, вызыватся должна при загрузке библиотеки. Можете использовать макрос @use_library_mem, для ее автоматической настройки.

      104
       
      2759 IgorA 105

      buf2d_create

      106

      Создает буфер и чистит его фоновым цветом. Пример:

      107
      stdcall [buf2d_create], buf_0
      108

      где buf_0 - структура буфера.

      109

      Параметры для создания буфера берутся из структуры.

      1535 IgorA 110
       
      111

      buf2d_create_f_img

      112

      Создает буфер на основе изображения в формате rgb.

      113
       
      114

      buf2d_clear

      2230 IgorA 115

      Чистит буфер указаным цветом. Пример:

      116
      buf2d_color equ dword[edi+16] ;цвет фона буфера
      117
      mov edi,buf_0
      118
      stdcall [buf2d_clear], edi, buf2d_color ;очищаем экран фоновым цветом
      119

      где buf_0 - структура буфера.

      1535 IgorA 120
       
      121

      buf2d_draw

      122

      Рисует буфер на экране (работает через системную ф. 7). Рисуются только буфера с глубиной цвета 24 бита.

      123
       
      124

      buf2d_delete

      125

      Освобождает память занятую изображением буфера.

      126
       
      2136 IgorA 127

      buf2d_resize

      128

      Изменяет размеры буфера. Пока поддерживаются буфера с глубиной цвета 24 бита. Пример:

      129
      stdcall [buf2d_resize], buf_0, 0,300 ;изменяем высоту буфера
      130

      где buf_0 - структура буфера в котором будет рисоваться линия; 0 - новая ширина буфера (0 означает не изменять размер); 300 - новая высота буфера.

      131
       
      1535 IgorA 132

      buf2d_line

      1648 IgorA 133

      Рисует в буфере линию с заданным цветом и координатами. Пример:

      1535 IgorA 134
      stdcall [buf2d_line], buf_0, 30,10, 110,70, 0xffff00 ;рисуем линию
      135

      где buf_0 - структура буфера в котором будет рисоваться линия; 30, 10, 110, 70 - координаты линии; 0xffff00 - цвет линии.

      2230 IgorA 136

      Для рисования сглаженной линии используйте buf2d_line_sm.

      1535 IgorA 137
       
      2230 IgorA 138

      buf2d_line_sm

      139

      Рисует в буфере линию принимает такиже параметры как и функция buf2d_line. Данная функция рисует сглаженную линию более красивую чем buf2d_line, но работает медленнее неё за счет вычисления смешанных цветов фона и самой линии.

      140
       
      1634 IgorA 141

      buf2d_rect_by_size

      2358 IgorA 142

      Рисует прямоугольную рамку, по двум координатам, 2-я координата задана по размеру. Если размеры отрицательные рамка рисуется в обратном направлении.

      1634 IgorA 143
      stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080
      2358 IgorA 144

      где buf_0 - структура буфера в котором будет рисоваться прямоугольник; 10, 10 - координаты левого верхнего угла (при отрицательных размерах координата правого нижнего); 150, 100 - размер прямоугольника; 0x8080 - цвет линии.

      1634 IgorA 145
       
      1642 IgorA 146

      buf2d_filled_rect_by_size

      2358 IgorA 147

      Рисует закрашенный прямоугольник, по двум координатам, 2-я координата задана по размеру. Если размер задать 1*1, то будет нарисована точка размером в 1 пиксель, т.е. размер прямоугольника в пикселях будет равен указанному. Если размеры отрицательные прямоугольник рисуется в обратном направлении.

      1642 IgorA 148
      stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080
      2358 IgorA 149

      где buf_0 - структура буфера в котором будет рисоваться прямоугольник; 10, 10 - координаты левого верхнего угла (при отрицательных размерах координата правого нижнего); 150, 100 - размер прямоугольника; 0x8080 - цвет прямоуголика.

      1642 IgorA 150
       
      1535 IgorA 151

      buf2d_circle

      1648 IgorA 152

      Рисует в буфере окружность с заданным цветом и радиусом. Пример:

      1535 IgorA 153
      stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000
      154

      где buf_0 - структура буфера в котором будет рисоваться окружность; 25, 70 - координаты центра; 15 - радиус; 0xff0000 - цвет.

      155
       
      156

      buf2d_img_hdiv2

      157

      Сжимает изображение в буфере по высоте в 2 раза, при этом размер самого буфера не уменьшается.

      158
       
      159

      buf2d_img_wdiv2

      160

      Сжимает изображение в буфере по ширине в 2 раза, при этом размер самого буфера не уменьшается.

      161
       
      162

      buf2d_conv_24_to_8

      163

      Преобразование буфера из 24-битного в 8-битный.

      164
       При преобразовании указывается какой цвет берать: 0-синий, 1-зеленый, 2-красный.
      165
       Остальные цвета при преобразовании теряются.

      166
       
      167

      buf2d_conv_24_to_32

      168

      Преобразование буфера из 24-битного в 32-битный.

      169
       При преобразовании указывается также 8-битный буфер, который будет использован для создания альфа канала. Пример:

      170
      stdcall [buf2d_conv_24_to_32],buf_a,buf_b ;делаем буфер rgba 32бит
      171

      До выполнения функции буфер buf_a должен быть 24 битным, а буфер buf_b - 8 битным.

      172
       После выполнения функции буфер buf_a станет 32 битным, буфер buf_b не изменится.

      173
       
      174

      buf2d_bit_blt

      1648 IgorA 175

      Рисует в буфере изображение из другого буфера в указанных координатах. Буфер в котором рисут (приемник) должен быть 24 битным, а тот который рисуется (источник) 24 или 32 битным. Если буфер источник 32 битный, то его прозрачность при рисовании не учитывается, для учета прозрачности используется функция buf2d_bit_blt_transp. Пример:

      176
      stdcall [buf2d_bit_blt], buf_0, 50,30, buf_1 ;прорисовка среднего скина
      177

      где buf_0 - структура буфера в котором будет рисоваться изображение (приемник);

      178
        buf_1 - структура буфера с рисуемым изображением (источник);
      179
        50,30 - координаты для вывода изображения, определяют положение рисуемой картинки в buf_0.

      1535 IgorA 180
       
      181

      buf2d_bit_blt_transp

      182

      Рисует в буфере изображение из другого буфера в указанных координатах, при этом учитывается прозрачность.

      183
       Буфер который будет нарисован должен быть 32 битным, а тот в котором рисуют 24 битным.

      184
       
      185

      buf2d_bit_blt_alpha

      186

      Рисует в буфере изображение из другого буфера в указанных координатах, при этом учитывается прозрачность.

      187
       Буфер который будет нарисован должен быть 8 битным, а тот в котором рисуют 24 битным.

      188
       
      1727 IgorA 189

      buf2d_curve_bezier

      1535 IgorA 190

      Рисует по трем точкам отрезок кривой безье.

      2358 IgorA 191
      stdcall [buf2d_curve_bezier], buf_0, (10 shl 16)+20,(110 shl 16)+10,(50 shl 16)+90, dword 0xff
      192

      где buf_0 - структура буфера в котором будет рисоваться кривая;

      193
        (10 shl 16)+20,(110 shl 16)+10,(50 shl 16)+90 - координаты точек (10,20), (110,10), (50,90);
      194
        0xff - цвет прямой.

      1535 IgorA 195
       
      196

      buf2d_convert_text_matrix

      197

      Преобразует матрицу с текстом размером 16*16 в размер 1*256. Необходимо для создания матрицы для рисования текста. Перед использованием данной функции предполагается что есть изображение с полным набором символов размером 16 столбцов на 16 строк, из которого предварительно был создан 8 битный буфер.

      198
      stdcall [buf2d_create_f_img], buf_1,[image_data] ;создаем буфер 24 бит на основе данных изображения
      199
      stdcall [buf2d_conv_24_to_8], buf_1,1 ;делаем буфер прозрачности 8 бит
      200
      stdcall [buf2d_convert_text_matrix], buf_1
      201

      где buf_1 - структура буфера для формирования текстовой матрицы;

      202
        image_data - данные изображения текстовой матрицы в формате rgb, размером 16*16 символов.

      203
       
      204

      buf2d_draw_text

      205

      Рисует текст в буфере, используя матрицу с текстом размером 1*256 символов. Пример:

      206
      stdcall [buf2d_draw_text], buf_0, buf_1,some_text,20,10,0x4040ff ;рисуем строку с текстом
      2815 IgorA 207

      где buf_0 - структура буфера в котором будет рисоваться текст;

      208

      buf_1 - структура буфера с текстовой матрицей в формате 8 бит, размером 1*256 символов;

      209

      some_text - текст, который будет выведен в буфер buf_0.

      1535 IgorA 210
       
      2815 IgorA 211

      buf2d_crop_color

      1535 IgorA 212

      Обрезание буфера, по указанному цвету. Функция используется для уменьшения памяти, занимаемой буфером. Отрезаются крайние части буфера имеющие одинаковый цвет. Пример:

      213
      stdcall [buf2d_crop_color], buf_0,0xffffff,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM
      2815 IgorA 214

      где buf_0 - структура буфера который будет обрезан;

      215

      0xffffff - цвет по которому будет обрезаться буфер;

      216

      BUF2D_OPT_CROP_TOP и BUF2D_OPT_CROP_BOTTOM - константы, указывающие с каких сторон обрезать буфер.

      1535 IgorA 217
       
      218

      buf2d_offset_h

      219

      Сдвиг изображения в буфере по высоте вверх или вниз.

      220
       
      1684 IgorA 221

      buf2d_flood_fill

      2358 IgorA 222

      Функция для рекурсивной заливки выбранным цветом. Имеется два варианта заливки. Пример:

      1684 IgorA 223
      stdcall [buf2d_flood_fill], buf_0, 100,200, 0, 0xff,0xff0000
      2815 IgorA 224

      где buf_0 - структура буфера;

      225

      100,200 - координаты точки, с которой начнется заливка;

      226

      0 - параметр, определяет алгоритм заливки (может быть 0 или 1);

      227

      0xff - цвет заливки;

      228

      0xff0000 - зависит от значения 4-го параметра, 1) если 0 - цвет до которого будет заливаться область; 2) если 1 - цвет области которая будет заливатся;

      1684 IgorA 229
       
      1910 IgorA 230

      buf2d_set_pixel

      2658 IgorA 231

      Функция ставит точку, принимает координаты и цвет.

      1910 IgorA 232
      stdcall [buf2d_set_pixel], buf_0, 100,150, 0xff0000
      2658 IgorA 233

      где buf_0 - структура буфера;

      234

      100,150 - координаты точки;

      235

      0xff0000 - цвет точки.

      1910 IgorA 236
       
      2658 IgorA 237

      buf2d_get_pixel

      238

      Функция записывает цвет точки в регистр eax, принимает координаты.

      239
      stdcall [buf2d_get_pixel], buf_0, 100,150
      240

      где buf_0 - структура буфера;

      241

      100,150 - координаты точки;

      242

      eax - цвет точки (для 8 и 24 битных буферов не используемые старшие биты в eax равны 0) или значение -1 в случае ошибки.

      243
       
      2759 IgorA 244

      buf2d_vox_brush_create

      245

      Создание воксельной кисти.

      246
       
      247

      buf2d_vox_brush_delete

      248

      Удаление воксельной кисти.

      249
       
      2815 IgorA 250

      buf2d_vox_obj_draw_1g

      251

      Рисование воксельного объекта с 1-й гранью.

      252
       
      2759 IgorA 253

      buf2d_vox_obj_get_img_w_3g

      254

      Возврашает ширину воксельного изображения с 3-мя гранями (которое рисуется функцией buf2d_vox_obj_draw_3g), принимает указатель на кисть и масштаб.

      255
       
      256

      buf2d_vox_obj_get_img_h_3g

      257

      Возврашает высоту воксельного изображения с 3-мя гранями (которое рисуется функцией buf2d_vox_obj_draw_3g), принимает указатель на кисть и масштаб.

      258
       
      259

      buf2d_vox_obj_draw_3g

      260

      Рисование воксельного объекта с 3-мя гранями.

      261
       
      262

      buf2d_vox_obj_draw_3g_scaled

      263

      Рисование части воксельного объекта.

      264
       
      265

      buf2d_vox_obj_draw_3g_shadows

      266

      Функция рисующая тени для изображений нарисованных с помощью функции buf2d_vox_obj_draw_3g или buf2d_vox_obj_draw_3g_scaled.

      267
       
      268

      buf2d_vox_obj_draw_pl

      269

      Функция рисующая срез воксельного обьекта.

      270
       
      271

      buf2d_vox_obj_draw_pl_scaled

      272

      Функция рисующая срез части воксельного обьекта.

      273
       
      1535 IgorA 274

      Константы

      275

      BUF2D_OPT_CROP_TOP equ 1

      2815 IgorA 276

      Константа для функции buf2d_crop_color, обозначает обрезку буфера сверху

      1538 IgorA 277

      BUF2D_OPT_CROP_LEFT equ 2

      2815 IgorA 278

      Константа для функции buf2d_crop_color, обозначает обрезку буфера слева

      1535 IgorA 279

      BUF2D_OPT_CROP_BOTTOM equ 4

      2815 IgorA 280

      Константа для функции buf2d_crop_color, обозначает обрезку буфера снизу

      1535 IgorA 281

      BUF2D_OPT_CROP_RIGHT equ 8

      2815 IgorA 282

      Константа для функции buf2d_crop_color, обозначает обрезку буфера справа

      1535 IgorA 283
       
      284

      Таблица экспорта

      285

      Пример таблицы экспорта, расчитанной на использование макроса @use_library_mem:

      286
      align 4
      287
      import_buf2d_lib:
      288
      	dd sz_lib_init
      289
      	buf2d_create dd sz_buf2d_create
      290
      	buf2d_create_f_img dd sz_buf2d_create_f_img
      291
      	buf2d_clear dd sz_buf2d_clear
      292
      	buf2d_draw dd sz_buf2d_draw
      293
      	buf2d_delete dd sz_buf2d_delete
      2136 IgorA 294
      	buf2d_resize dd sz_buf2d_resize
      1535 IgorA 295
      	buf2d_line dd sz_buf2d_line
      2230 IgorA 296
      	buf2d_line_sm dd sz_buf2d_line_sm
      1634 IgorA 297
      	buf2d_rect_by_size dd sz_buf2d_rect_by_size
      1642 IgorA 298
      	buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
      1535 IgorA 299
      	buf2d_circle dd sz_buf2d_circle
      300
      	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
      301
      	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
      302
      	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
      303
      	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
      304
      	buf2d_bit_blt dd sz_buf2d_bit_blt
      305
      	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
      306
      	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
      1727 IgorA 307
      	buf2d_curve_bezier dd sz_buf2d_curve_bezier
      1535 IgorA 308
      	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
      309
      	buf2d_draw_text dd sz_buf2d_draw_text
      310
      	buf2d_crop_color dd sz_buf2d_crop_color
      311
      	buf2d_offset_h dd sz_buf2d_offset_h
      1684 IgorA 312
      	buf2d_flood_fill dd sz_buf2d_flood_fill
      1910 IgorA 313
      	buf2d_set_pixel dd sz_buf2d_set_pixel
      2658 IgorA 314
      	buf2d_get_pixel dd sz_buf2d_get_pixel
      1535 IgorA 315
       
      2759 IgorA 316
      	;воксельные функции:
      317
      	buf2d_vox_brush_create dd sz_buf2d_vox_brush_create
      318
      	buf2d_vox_brush_delete dd sz_buf2d_vox_brush_delete
      2815 IgorA 319
      	buf2d_vox_obj_draw_1g dd sz_buf2d_vox_obj_draw_1g
      2759 IgorA 320
      	buf2d_vox_obj_get_img_w_3g dd sz_buf2d_vox_obj_get_img_w_3g
      321
      	buf2d_vox_obj_get_img_h_3g dd sz_buf2d_vox_obj_get_img_h_3g
      322
      	buf2d_vox_obj_draw_3g dd sz_buf2d_vox_obj_draw_3g
      323
      	buf2d_vox_obj_draw_3g_scaled dd sz_buf2d_vox_obj_draw_3g_scaled
      324
      	buf2d_vox_obj_draw_3g_shadows dd sz_buf2d_vox_obj_draw_3g_shadows
      325
      	buf2d_vox_obj_draw_pl dd sz_buf2d_vox_obj_draw_pl
      326
      	buf2d_vox_obj_draw_pl_scaled dd sz_buf2d_vox_obj_draw_pl_scaled
      327
       
      1535 IgorA 328
      	dd 0,0
      329
      	sz_lib_init db 'lib_init',0
      330
      	sz_buf2d_create db 'buf2d_create',0
      331
      	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
      332
      	sz_buf2d_clear db 'buf2d_clear',0
      333
      	sz_buf2d_draw db 'buf2d_draw',0
      334
      	sz_buf2d_delete db 'buf2d_delete',0
      2136 IgorA 335
      	sz_buf2d_resize db 'buf2d_resize',0
      1535 IgorA 336
      	sz_buf2d_line db 'buf2d_line',0
      2230 IgorA 337
      	sz_buf2d_line_sm db 'buf2d_line_sm',0
      1634 IgorA 338
      	sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
      1642 IgorA 339
      	sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
      1535 IgorA 340
      	sz_buf2d_circle db 'buf2d_circle',0
      341
      	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
      342
      	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
      343
      	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
      344
      	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
      345
      	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
      346
      	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
      347
      	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
      1727 IgorA 348
      	sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
      1535 IgorA 349
      	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
      350
      	sz_buf2d_draw_text db 'buf2d_draw_text',0
      351
      	sz_buf2d_crop_color db 'buf2d_crop_color',0
      1684 IgorA 352
      	sz_buf2d_offset_h db 'buf2d_offset_h',0
      1910 IgorA 353
      	sz_buf2d_flood_fill db 'buf2d_flood_fill',0
      2658 IgorA 354
      	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
      2759 IgorA 355
      	sz_buf2d_get_pixel db 'buf2d_get_pixel',0
      1535 IgorA 356
       
      2759 IgorA 357
      	;воксельные функции:
      358
      	sz_buf2d_vox_brush_create db 'buf2d_vox_brush_create',0
      359
      	sz_buf2d_vox_brush_delete db 'buf2d_vox_brush_delete',0
      2815 IgorA 360
      	sz_buf2d_vox_obj_draw_1g db 'buf2d_vox_obj_draw_1g',0
      2759 IgorA 361
      	sz_buf2d_vox_obj_get_img_w_3g db 'buf2d_vox_obj_get_img_w_3g',0
      362
      	sz_buf2d_vox_obj_get_img_h_3g db 'buf2d_vox_obj_get_img_h_3g',0
      363
      	sz_buf2d_vox_obj_draw_3g db 'buf2d_vox_obj_draw_3g',0
      364
      	sz_buf2d_vox_obj_draw_3g_scaled db 'buf2d_vox_obj_draw_3g_scaled',0
      365
      	sz_buf2d_vox_obj_draw_3g_shadows db 'buf2d_vox_obj_draw_3g_shadows',0
      366
      	sz_buf2d_vox_obj_draw_pl db 'buf2d_vox_obj_draw_pl',0
      367
      	sz_buf2d_vox_obj_draw_pl_scaled db 'buf2d_vox_obj_draw_pl_scaled',0
      368
       
      1535 IgorA 369

      История

      370

      02.07.10 - самая первая версия библиотеки, 2 примера использования.

      371

      06.07.10 - расширены возможности функции buf2d_bit_blt, теперь она может рисовать 32 битные буферы. Добавлены 2 новые функции: buf2d_bit_blt_alpha и buf2d_cruve_bezier. Небольшие изменения в функции buf2d_line.

      372

      16.07.10 - исправлено по 2 ошибки в функциях buf2d_img_hdiv2 и buf2d_img_wdiv2, которые могли проявляться при определенных условиях (если размер изображения был кратен 4Кб и др.). Добавлены 2 функции для вывода текста в буфер buf2d_convert_text_matrix и buf2d_draw_text.

      373

      19.07.10 - добавлена функция рисования окружности buf2d_circle;

      374
       изменен формат буфера - для ширины и высоты используются 4-х байтные числа вместо 2-х байтных.

      375

      29.07.10 - добавлены функции buf2d_crop_color и buf2d_offset_h;

      376
       исправления в функции buf2d_delete.

      1634 IgorA 377

      30.09.10 - добавлена функция buf2d_rect_by_size.

      1642 IgorA 378

      04.10.10 - добавлена функция buf2d_filled_rect_by_size, доработана функция buf_bit_blt_alpha.

      1648 IgorA 379

      07.10.10 - доработана функция buf_bit_blt (при попытке нарисовать изображение за пределами правого края буфера приложение вызвавшее функцию падало).

      1653 IgorA 380

      11.10.10 - исправлено задание цветов в некоторых функциях, красный и синий цвета поменял местами. Теперь цвета совпадают с сисемными функциями.

      1684 IgorA 381

      02.11.10 - добавлена функция buf2d_flood_fill.

      1727 IgorA 382

      22.12.10 - изменено имя функции buf2d_cruve_bezier на buf2d_curve_bezier.

      2230 IgorA 383

      25.03.11 - добавлена функция для рисования точки buf2d_set_pixel.

      2136 IgorA 384

      30.08.11 - добавлена функция изменения размеров буфера buf2d_resize.

      2383 IgorA 385

      13.09.11 - оптимизирована работа функций buf2d_filled_rect_by_size buf2d_rect_by_size, добавлены примеры использования библиотеки.

      2358 IgorA 386

      22.09.11 - добавлена функция buf2d_line_sm для рисования сглаженной линии.

      2383 IgorA 387

      20.02.12 - функции buf2d_filled_rect_by_size и buf2d_rect_by_size могут принимать отрицательные размеры для прямоугольников, в функции buf2d_line горизонтальная линия рисуется на 1 пиксель длинее (раньше не дорисовывало), некоторые функции могут рисовать в 8 битных буферах.

      2658 IgorA 388

      23.02.12 - функция buf2d_bit_blt_alpha может принимать отрицательные координаты в позиции копируемого буфера, небольшие доработки в buf2d_bit_blt_transp

      389

      11.05.12 - добавлена функция для взятия цвета точки buf2d_get_pixel, доработки в buf2d_set_pixel.

      2759 IgorA 390

      12.06.12 - добавлены функции для рисования воксельной графики.

      2383 IgorA 391
      1535 IgorA 392