Subversion Repositories Kolibri OS

Rev

Rev 2658 | Rev 2815 | 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
    • 57
    • buf2d_vox_brush_create
    • 58
      59
      60
    • Константы
    • 1535 IgorA 61
    • Таблица экспорта
    • 62
    • История
    • 63
      64
       
      65

      Вступление

      66

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

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

      1535 IgorA 72
       
      2759 IgorA 73

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

      1535 IgorA 74
       
      2759 IgorA 75

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

      1535 IgorA 76

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

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

      78
       
      79

      8 бит

      80

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

      81

      24 бит

      82

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

      83

      32 бит

      84

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

      85
       
      86

      Функции

      87
       
      88

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

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

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

      lib_init

      1535 IgorA 102

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

      103
       
      2759 IgorA 104

      buf2d_create

      105

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

      106
      stdcall [buf2d_create], buf_0
      107

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

      108

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

      1535 IgorA 109
       
      110

      buf2d_create_f_img

      111

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

      112
       
      113

      buf2d_clear

      2230 IgorA 114

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

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

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

      1535 IgorA 119
       
      120

      buf2d_draw

      121

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

      122
       
      123

      buf2d_delete

      124

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

      125
       
      2136 IgorA 126

      buf2d_resize

      127

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

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

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

      130
       
      1535 IgorA 131

      buf2d_line

      1648 IgorA 132

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

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

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

      2230 IgorA 135

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

      1535 IgorA 136
       
      2230 IgorA 137

      buf2d_line_sm

      138

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

      139
       
      1634 IgorA 140

      buf2d_rect_by_size

      2358 IgorA 141

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

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

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

      1634 IgorA 144
       
      1642 IgorA 145

      buf2d_filled_rect_by_size

      2358 IgorA 146

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

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

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

      1642 IgorA 149
       
      1535 IgorA 150

      buf2d_circle

      1648 IgorA 151

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

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

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

      154
       
      155

      buf2d_img_hdiv2

      156

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

      157
       
      158

      buf2d_img_wdiv2

      159

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

      160
       
      161

      buf2d_conv_24_to_8

      162

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

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

      165
       
      166

      buf2d_conv_24_to_32

      167

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

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

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

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

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

      172
       
      173

      buf2d_bit_blt

      1648 IgorA 174

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

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

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

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

      1535 IgorA 179
       
      180

      buf2d_bit_blt_transp

      181

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

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

      183
       
      184

      buf2d_bit_blt_alpha

      185

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

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

      187
       
      1727 IgorA 188

      buf2d_curve_bezier

      1535 IgorA 189

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

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

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

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

      1535 IgorA 194
       
      195

      buf2d_convert_text_matrix

      196

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

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

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

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

      202
       
      203

      buf2d_draw_text

      204

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

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

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

      207
        buf_1 - структура буфера с текстовой матрицей в формате 8 бит, размером 1*256 символов;
      208
        some_text - текст, который будет выведен в буфер buf_0.

      209
       
      210

      buf2d_crop_color

      211

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

      212
      stdcall [buf2d_crop_color], buf_0,0xffffff,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM
      213

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

      214
        0xffffff - цвет по которому будет обрезаться буфер;
      215
        BUF2D_OPT_CROP_TOP и BUF2D_OPT_CROP_BOTTOM - константы, указывающие с каких сторон обрезать буфер.

      216
       
      217

      buf2d_offset_h

      218

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

      219
       
      1684 IgorA 220

      buf2d_flood_fill

      2358 IgorA 221

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

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

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

      224
        100,200 - координаты точки, с которой начнется заливка;
      225
       
      226
        0xff - цвет заливки;

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

      228
       
      1910 IgorA 229

      buf2d_set_pixel

      2658 IgorA 230

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

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

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

      233

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

      234

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

      1910 IgorA 235
       
      2658 IgorA 236

      buf2d_get_pixel

      237

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

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

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

      240

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

      241

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

      242
       
      2759 IgorA 243

      buf2d_vox_brush_create

      244

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

      245
       
      246

      buf2d_vox_brush_delete

      247

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

      248
       
      249

      buf2d_vox_obj_get_img_w_3g

      250

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

      251
       
      252

      buf2d_vox_obj_get_img_h_3g

      253

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

      254
       
      255

      buf2d_vox_obj_draw_3g

      256

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

      257
       
      258

      buf2d_vox_obj_draw_3g_scaled

      259

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

      260
       
      261

      buf2d_vox_obj_draw_3g_shadows

      262

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

      263
       
      264

      buf2d_vox_obj_draw_pl

      265

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

      266
       
      267

      buf2d_vox_obj_draw_pl_scaled

      268

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

      269
       
      1535 IgorA 270

      Константы

      271

      BUF2D_OPT_CROP_TOP equ 1

      272

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

      1538 IgorA 273

      BUF2D_OPT_CROP_LEFT equ 2

      274

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

      1535 IgorA 275

      BUF2D_OPT_CROP_BOTTOM equ 4

      276

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

      277

      BUF2D_OPT_CROP_RIGHT equ 8

      278

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

      279
       
      280

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

      281

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

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

      История

      364

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

      365

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

      366

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

      367

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

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

      369

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

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

      1634 IgorA 371

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

      1642 IgorA 372

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

      1648 IgorA 373

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

      1653 IgorA 374

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

      1684 IgorA 375

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

      1727 IgorA 376

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

      2230 IgorA 377

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

      2136 IgorA 378

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

      2383 IgorA 379

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

      2358 IgorA 380

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

      2383 IgorA 381

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

      2658 IgorA 382

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

      383

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

      2759 IgorA 384

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

      2383 IgorA 385
      1535 IgorA 386