forked from KolibriOS/kolibrios
buf2d.obj: update function 'buf2d_bit_blt'
git-svn-id: svn://kolibrios.org@7861 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
5a520e0752
commit
e74d295b71
@ -1,7 +1,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>библиотека для работы с 2d буферами</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
|
||||
<meta charset="WINDOWS-1251">
|
||||
<style>
|
||||
body
|
||||
{
|
||||
@ -53,26 +53,47 @@ table { font-size: 15px; }
|
||||
<li><a href="#fun">Функции</a><br>
|
||||
<ul>
|
||||
<li><a href="#f_init">lib_init</a></li>
|
||||
<li><a href="#f_b_create">buf2d_create</a></li>
|
||||
<li><a href="#f_b_create_f">buf2d_create_f_img</a></li>
|
||||
<li><a href="#f_b_clear">buf2d_clear</a></li>
|
||||
<li><a href="#f_b_draw">buf2d_draw</a></li>
|
||||
<li><a href="#f_b_delete">buf2d_delete</a></li>
|
||||
<li><a href="#f_b_rotate">buf2d_rotate</a></li>
|
||||
<li><a href="#f_b_resize">buf2d_resize</a></li>
|
||||
<li><a href="#f_b_line">buf2d_line</a></li>
|
||||
<li><a href="#f_b_line_sm">buf2d_line_sm</a></li>
|
||||
<li><a href="#f_b_rect">buf2d_rect_by_size</a></li>
|
||||
<li><a href="#f_b_fil_rect">buf2d_filled_rect_by_size</a></li>
|
||||
<li><a href="#f_b_circle">buf2d_circle</a></li>
|
||||
<li><a href="#f_b_hdiv2">buf2d_img_hdiv2</a></li>
|
||||
<li><a href="#f_b_wdiv2">buf2d_img_wdiv2</a></li>
|
||||
<li><a href="#f_create">buf2d_create</a></li>
|
||||
<li><a href="#f_create_f">buf2d_create_f_img</a></li>
|
||||
<li><a href="#f_clear">buf2d_clear</a></li>
|
||||
<li><a href="#f_draw">buf2d_draw</a></li>
|
||||
<li><a href="#f_delete">buf2d_delete</a></li>
|
||||
<li><a href="#f_rotate">buf2d_rotate</a></li>
|
||||
<li><a href="#f_resize">buf2d_resize</a></li>
|
||||
<li><a href="#f_line">buf2d_line</a></li>
|
||||
<li><a href="#f_line_sm">buf2d_line_sm</a></li>
|
||||
<li><a href="#f_rect">buf2d_rect_by_size</a></li>
|
||||
<li><a href="#f_fil_rect">buf2d_filled_rect_by_size</a></li>
|
||||
<li><a href="#f_circle">buf2d_circle</a></li>
|
||||
<li><a href="#f_hdiv2">buf2d_img_hdiv2</a></li>
|
||||
<li><a href="#f_wdiv2">buf2d_img_wdiv2</a></li>
|
||||
<li>buf2d_conv_24_to_8</li>
|
||||
<li>buf2d_conv_24_to_32</li>
|
||||
<li><a href="#f_bit_blt">buf2d_bit_blt</a></li>
|
||||
<li>buf2d_bit_blt_transp</li>
|
||||
<li>buf2d_bit_blt_alpha</li>
|
||||
<li>buf2d_curve_bezier</li>
|
||||
<li>buf2d_convert_text_matrix</li>
|
||||
<li>buf2d_draw_text</li>
|
||||
<li><a href="#f_c_color">buf2d_crop_color</a></li>
|
||||
<li>buf2d_offset_h</li>
|
||||
<li>buf2d_flood_fill</li>
|
||||
<li>buf2d_set_pixel</li>
|
||||
<li>buf2d_get_pixel</li>
|
||||
<li><a href="#f_flip_h">buf2d_flip_h</a></li>
|
||||
<li><a href="#f_flip_v">buf2d_flip_v</a></li>
|
||||
<li><a href="#f_filter_d">buf2d_filter_dither</a></li>
|
||||
|
||||
<li><a href="#f_v_brush_c">buf2d_vox_brush_create</a></li>
|
||||
<li>buf2d_vox_brush_delete</li>
|
||||
<li>buf2d_vox_obj_draw_1g</li>
|
||||
<li>buf2d_vox_obj_get_img_w_3g</li>
|
||||
<li>buf2d_vox_obj_get_img_h_3g</li>
|
||||
<li>buf2d_vox_obj_draw_3g</li>
|
||||
<li>buf2d_vox_obj_draw_3g_scaled</li>
|
||||
<li>buf2d_vox_obj_draw_3g_shadows</li>
|
||||
<li>buf2d_vox_obj_draw_pl</li>
|
||||
<li>buf2d_vox_obj_draw_pl_scaled</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#const">Константы</a></li>
|
||||
@ -119,34 +140,41 @@ buf_0:
|
||||
<h4><a name="f_init">lib_init</a></h4>
|
||||
<p>Эта функция получает указатели на функции работы с памятью, вызыватся должна при загрузке библиотеки. Можете использовать макрос <b>@use_library_mem</b>, для ее автоматической настройки.</p>
|
||||
|
||||
<h4><a name="f_b_create">buf2d_create</a></h4>
|
||||
<h4><a name="f_create">buf2d_create</a></h4>
|
||||
<p>Создает буфер и чистит его фоновым цветом. Пример:</p>
|
||||
<pre>stdcall [buf2d_create], buf_0</pre>
|
||||
<p>где buf_0 - структура буфера.</p>
|
||||
<p>Параметры для создания буфера берутся из структуры.</p>
|
||||
|
||||
<h4><a name="f_b_create_f">buf2d_create_f_img</a></h4>
|
||||
<h4><a name="f_create_f">buf2d_create_f_img</a></h4>
|
||||
<p>Создает буфер на основе изображения в формате <b>rgb</b>.</p>
|
||||
<pre>buf2d_w equ dword[edi+8] ;øèðèíà áóôåðà
|
||||
buf2d_h equ dword[edi+12] ;âûñîòà áóôåðà
|
||||
mov edi,buf_i0
|
||||
mov buf2d_w,320
|
||||
mov buf2d_h,240
|
||||
stdcall [buf2d_create_f_img], edi,[open_file_img]</pre>
|
||||
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà, open_file_img - óêàçàòåëü íà äàííûå èçîáðàæåíèÿ â ôîðìàòå <b>rgb</b>, 320 - øèðèíà èçîáðàæåíèÿ â ïèêñåëÿõ, 240 - âûñîòà èçîáðàæåíèÿ â ïèêñåëÿõ.</p>
|
||||
|
||||
<h4><a name="f_b_clear">buf2d_clear</a></h4>
|
||||
<h4><a name="f_clear">buf2d_clear</a></h4>
|
||||
<p>Чистит буфер указаным цветом. Пример:</p>
|
||||
<pre>buf2d_color equ dword[edi+16] ;цвет фона буфера
|
||||
mov edi,buf_0
|
||||
stdcall [buf2d_clear], edi, buf2d_color ;очищаем экран фоновым цветом</pre>
|
||||
<p>где buf_0 - структура буфера.</p>
|
||||
|
||||
<h4><a name="f_b_draw">buf2d_draw</a></h4>
|
||||
<h4><a name="f_draw">buf2d_draw</a></h4>
|
||||
<p>Рисует буфер на экране (работает через системную ф. 7). Рисуются только буфера с глубиной цвета 24 бита.</p>
|
||||
|
||||
<h4><a name="f_b_delete">buf2d_delete</a></h4>
|
||||
<h4><a name="f_delete">buf2d_delete</a></h4>
|
||||
<p>Освобождает память занятую изображением буфера.</p>
|
||||
|
||||
<h4><a name="f_b_rotate">buf2d_rotate</a></h4>
|
||||
<h4><a name="f_rotate">buf2d_rotate</a></h4>
|
||||
<p>Поворачивает буфер на 90 или 180 градусов. Пример:</p>
|
||||
<pre>stdcall [buf2d_rotate], buf_0, 90</pre>
|
||||
<p>где buf_0 - структура буфера (может быть 8, 24 или 32 битным); 90 - угол поворота.</p>
|
||||
|
||||
<h4><a name="f_b_resize">buf2d_resize</a></h4>
|
||||
<h4><a name="f_resize">buf2d_resize</a></h4>
|
||||
<p>Изменяет размеры буфера или изображения в буфере. Пока поддерживаются буфера с глубиной цвета 24 бита.</p>
|
||||
<p>Пример 1:</p>
|
||||
<pre>stdcall [buf2d_resize], buf_0, 0,300, 1 ;изменяем высоту буфера</pre>
|
||||
@ -156,34 +184,34 @@ stdcall [buf2d_clear], edi, buf2d_color ;
|
||||
<p>где 250 - новая ширина буфера; 0 - новая высота буфера (0 означает не изменять размер); 2 - параметр указывающий что изменяем изображение в буфере.</p>
|
||||
<p>Если последний параметр равен 2 то размер буфера остается неизменным и функция работает аналогично так как и функции <b>buf2d_img_hdiv2</b>, <b>buf2d_img_wdiv2</b>. Разница в том, что buf2d_resize может сжимать изображения до заданного размера, а не ровно в 2 раза.</p>
|
||||
|
||||
<h4><a name="f_b_line">buf2d_line</a></h4>
|
||||
<h4><a name="f_line">buf2d_line</a></h4>
|
||||
<p>Рисует в буфере линию с заданным цветом и координатами. Пример:</p>
|
||||
<pre>stdcall [buf2d_line], buf_0, 30,10, 110,70, 0xffff00 ;рисуем линию</pre>
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться линия; 30, 10, 110, 70 - координаты линии; 0xffff00 - цвет линии.</p>
|
||||
<p>Для рисования сглаженной линии используйте <b>buf2d_line_sm</b>.</p>
|
||||
|
||||
<h4><a name="f_b_line_sm">buf2d_line_sm</a></h4>
|
||||
<h4><a name="f_line_sm">buf2d_line_sm</a></h4>
|
||||
<p>Рисует в буфере линию принимает такиже параметры как и функция <b>buf2d_line</b>. Данная функция рисует сглаженную линию более красивую чем <b>buf2d_line</b>, но работает медленнее неё за счет вычисления смешанных цветов фона и самой линии.</p>
|
||||
|
||||
<h4><a name="f_b_rect">buf2d_rect_by_size</a></h4>
|
||||
<h4><a name="f_rect">buf2d_rect_by_size</a></h4>
|
||||
<p>Рисует прямоугольную рамку, по двум координатам, 2-я координата задана по размеру. Если размеры отрицательные рамка рисуется в обратном направлении.</p>
|
||||
<pre>stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080</pre>
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться прямоугольник; 10, 10 - координаты левого верхнего угла (при отрицательных размерах координата правого нижнего); 150, 100 - размер прямоугольника; 0x8080 - цвет линии.</p>
|
||||
|
||||
<h4><a name="f_b_fil_rect">buf2d_filled_rect_by_size</a></h4>
|
||||
<h4><a name="f_fil_rect">buf2d_filled_rect_by_size</a></h4>
|
||||
<p>Рисует закрашенный прямоугольник, по двум координатам, 2-я координата задана по размеру. Если размер задать 1*1, то будет нарисована точка размером в 1 пиксель, т.е. размер прямоугольника в пикселях будет равен указанному. Если размеры отрицательные прямоугольник рисуется в обратном направлении.</p>
|
||||
<pre>stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080</pre>
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться прямоугольник; 10, 10 - координаты левого верхнего угла (при отрицательных размерах координата правого нижнего); 150, 100 - размер прямоугольника; 0x8080 - цвет прямоуголика.</p>
|
||||
|
||||
<h4><a name="f_b_circle">buf2d_circle</a></h4>
|
||||
<h4><a name="f_circle">buf2d_circle</a></h4>
|
||||
<p>Рисует в буфере окружность с заданным цветом и радиусом. Пример:</p>
|
||||
<pre>stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000</pre>
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться окружность; 25, 70 - координаты центра; 15 - радиус; 0xff0000 - цвет.</p>
|
||||
|
||||
<h4><a name="f_b_hdiv2">buf2d_img_hdiv2</a></h4>
|
||||
<h4><a name="f_hdiv2">buf2d_img_hdiv2</a></h4>
|
||||
<p>Сжимает изображение в буфере по высоте в 2 раза, при этом размер самого буфера не уменьшается.</p>
|
||||
|
||||
<h4><a name="f_b_wdiv2">buf2d_img_wdiv2</a></h4>
|
||||
<h4><a name="f_wdiv2">buf2d_img_wdiv2</a></h4>
|
||||
<p>Сжимает изображение в буфере по ширине в 2 раза, при этом размер самого буфера не уменьшается.</p>
|
||||
|
||||
<h4>buf2d_conv_24_to_8</h4>
|
||||
@ -198,7 +226,7 @@ stdcall [buf2d_clear], edi, buf2d_color ;
|
||||
<p>До выполнения функции буфер buf_a должен быть 24 битным, а буфер buf_b - 8 битным.
|
||||
После выполнения функции буфер buf_a станет 32 битным, буфер buf_b не изменится.</p>
|
||||
|
||||
<h4>buf2d_bit_blt</h4>
|
||||
<h4><a name="f_bit_blt">buf2d_bit_blt</a></h4>
|
||||
<p>Рисует в буфере изображение из другого буфера в указанных координатах. Буфер в котором рисут (приемник) должен быть 24 битным, а тот который рисуется (источник) 24 или 32 битным. Если буфер источник 32 битный, то его прозрачность при рисовании не учитывается, для учета прозрачности используется функция <i>buf2d_bit_blt_transp</i>. Пример:</p>
|
||||
<pre>stdcall [buf2d_bit_blt], buf_0, 50,30, buf_1 ;прорисовка среднего скина</pre>
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться изображение (приемник);
|
||||
@ -446,8 +474,8 @@ import_buf2d_lib:
|
||||
<p>29.07.10 - добавлены функции buf2d_crop_color и buf2d_offset_h;
|
||||
исправления в функции buf2d_delete.</p>
|
||||
<p>30.09.10 - добавлена функция buf2d_rect_by_size.</p>
|
||||
<p>04.10.10 - äîáŕâëĺíŕ ôóíęöč˙ buf2d_filled_rect_by_size, äîđŕáîňŕíŕ ôóíęöč˙ buf_bit_blt_alpha.</p>
|
||||
<p>07.10.10 - äîđŕáîňŕíŕ ôóíęöč˙ buf_bit_blt (ďđč ďîďűňęĺ íŕđčńîâŕňü čçîáđŕćĺíčĺ çŕ ďđĺäĺëŕěč ďđŕâîăî ęđŕ˙ áóôĺđŕ ďđčëîćĺíčĺ âűçâŕâřĺĺ ôóíęöčţ ďŕäŕëî).</p>
|
||||
<p>04.10.10 - äîáàâëåíà ôóíêöèÿ buf2d_filled_rect_by_size, äîðàáîòàíà ôóíêöèÿ buf2d_bit_blt_alpha.</p>
|
||||
<p>07.10.10 - äîðàáîòàíà ôóíêöèÿ buf2d_bit_blt (ïðè ïîïûòêå íàðèñîâàòü èçîáðàæåíèå çà ïðåäåëàìè ïðàâîãî êðàÿ áóôåðà ïðèëîæåíèå âûçâàâøåå ôóíêöèþ ïàäàëî).</p>
|
||||
<p>11.10.10 - исправлено задание цветов в некоторых функциях, красный и синий цвета поменял местами. Теперь цвета совпадают с сисемными функциями.</p>
|
||||
<p>02.11.10 - добавлена функция buf2d_flood_fill.</p>
|
||||
<p>22.12.10 - изменено имя функции buf2d_cruve_bezier на buf2d_curve_bezier.</p>
|
||||
@ -461,10 +489,11 @@ import_buf2d_lib:
|
||||
<p>12.06.12 - добавлены функции для рисования воксельной графики.</p>
|
||||
<p>11.08.12 - функции для сжатия изображений buf2d_img_hdiv2 и buf2d_img_wdiv2 работают с 32 битными буферами.</p>
|
||||
<p>01.10.12 - добавлена функция поворота изображений на 90 и 180 градусов buf2d_rotate.</p>
|
||||
<p>15.11.12 - äîáŕâëĺíŕ ôóíęöč˙ îňđŕćĺíč˙ 24 áčňíűő čçîáđŕćĺíčé ďî âĺđňčęŕëč buf_flip_v, čńďđŕâëĺíč˙ â ôóíęöčč buf2d_img_hdiv2.</p>
|
||||
<p>15.11.12 - äîáàâëåíà ôóíêöèÿ îòðàæåíèÿ 24 áèòíûõ èçîáðàæåíèé ïî âåðòèêàëè buf2d_flip_v, èñïðàâëåíèÿ â ôóíêöèè buf2d_img_hdiv2.</p>
|
||||
<p>14.12.12 - добавлена функция наложения фильтра buf2d_filter_dither.</p>
|
||||
<p>24.12.12 - добавлены 2 новых алгоритма в функцию наложения фильтра buf2d_filter_dither.</p>
|
||||
<p>30.01.15 - äîáŕâëĺíŕ ďîääĺđćęŕ 32 áčňíűő áóôĺđîâ â ôóíęöčţ buf_flip_v, äîáŕâëĺíŕ ôóíęöč˙ îňđŕćĺíč˙ ďî ăîđčçîíňŕëč buf_flip_h.</p>
|
||||
<p>30.01.15 - äîáàâëåíà ïîääåðæêà 32 áèòíûõ áóôåðîâ â ôóíêöèþ buf2d_flip_v, äîáàâëåíà ôóíêöèÿ îòðàæåíèÿ ïî ãîðèçîíòàëè buf2d_flip_h.</p>
|
||||
<p>09.02.16 - изменена функция buf2d_resize добавлен дополнительный параметр, который указывает менять ли изображение или размеры буфера.</p>
|
||||
<p>04.05.20 - ôóíêöèÿ buf2d_bit_blt ìîæåò ïðèíèìàòü îòðèöàòåëüíûå êîîðäèíàòû â ïîçèöèè êîïèðóåìîãî áóôåðà.</p>
|
||||
</body>
|
||||
</html>
|
@ -2050,7 +2050,7 @@ endp
|
||||
align 4
|
||||
proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_source:dword
|
||||
locals
|
||||
right_bytes dd ?
|
||||
lost_bytes dd ? ;ç¨á«® ¯®â¥àïëå ¡ ©â®¢ ¢ áâப¥ ª®¯¨à㥬®£® ¨§®¡à ¦¥ï (â¥å çâ® ¥ ¢« §ïâ ¢ ¡ãä¥à)
|
||||
endl
|
||||
pushad
|
||||
|
||||
@ -2081,7 +2081,6 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
cmp edx,0
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h)
|
||||
neg ecx
|
||||
;inc ecx
|
||||
imul ecx,eax
|
||||
lea ecx,[ecx+ecx*2] ;¯® 3 ¡ ©â ¯¨ªá¥«ì
|
||||
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
||||
@ -2111,22 +2110,35 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
sub ebx,eax
|
||||
mov edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥
|
||||
|
||||
mov [right_bytes],0
|
||||
mov dword[lost_bytes],0
|
||||
mov ecx,[coord_x]
|
||||
cmp ecx,0
|
||||
jge @f
|
||||
neg ecx
|
||||
cmp eax,ecx ;eax - è¨à¨ ª®¯¨à㥬®© ª à⨪¨
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî § «¥¢®© £à ¨æ¥© ¡ãä¥à (coord_x<0 ¨ |coord_x|>buf_source.w)
|
||||
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã
|
||||
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à
|
||||
lea ecx,[ecx+ecx*2]
|
||||
mov [lost_bytes],ecx
|
||||
add esi,ecx
|
||||
add edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥
|
||||
xor ecx,ecx
|
||||
@@:
|
||||
cmp ecx,ebx
|
||||
jl @f
|
||||
jle @f
|
||||
sub ecx,ebx
|
||||
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã
|
||||
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à
|
||||
lea ecx,[ecx+ecx*2] ;ecx - ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã
|
||||
mov [right_bytes],ecx
|
||||
lea ecx,[ecx+ecx*2] ;ecx - ç¨á«® ¯¨ªá¥«¥© ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã
|
||||
add [lost_bytes],ecx
|
||||
@@:
|
||||
|
||||
lea eax,[eax+eax*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨
|
||||
lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à ¬¨ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨
|
||||
|
||||
cld
|
||||
cmp [right_bytes],0
|
||||
cmp [lost_bytes],0
|
||||
jg .copy_1
|
||||
.copy_0: ;¯à®á⮥ ª®¯¨à®¢ ¨¥
|
||||
mov ecx,eax
|
||||
@ -2140,7 +2152,7 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
mov ecx,eax
|
||||
rep movsb
|
||||
add edi,ebx
|
||||
add esi,[right_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî £à ¨æã
|
||||
add esi,[lost_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî £à ¨æã
|
||||
dec edx
|
||||
cmp edx,0
|
||||
jg .copy_1
|
||||
@ -2166,7 +2178,6 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
cmp edx,0
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h)
|
||||
neg ecx
|
||||
;inc ecx
|
||||
imul ecx,eax
|
||||
shl ecx,2 ;¯® 4 ¡ ©â ¯¨ªá¥«ì
|
||||
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
||||
@ -2199,22 +2210,35 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
sub ebx,eax
|
||||
mov edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥
|
||||
|
||||
mov [right_bytes],0
|
||||
mov dword[lost_bytes],0
|
||||
mov ecx,[coord_x]
|
||||
cmp ecx,0
|
||||
jge @f
|
||||
neg ecx
|
||||
cmp eax,ecx ;eax - è¨à¨ ª®¯¨à㥬®© ª à⨪¨
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî § «¥¢®© £à ¨æ¥© ¡ãä¥à (coord_x<0 ¨ |coord_x|>buf_source.w)
|
||||
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã
|
||||
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à
|
||||
shl ecx,2
|
||||
mov [lost_bytes],ecx
|
||||
add esi,ecx
|
||||
add edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥
|
||||
xor ecx,ecx
|
||||
@@:
|
||||
cmp ecx,ebx
|
||||
jl @f
|
||||
jle @f
|
||||
sub ecx,ebx
|
||||
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã
|
||||
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à
|
||||
shl ecx,2 ;ecx - ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã
|
||||
mov [right_bytes],ecx
|
||||
shl ecx,2 ;ecx - ç¨á«® ¯¨ªá¥«¥© ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã
|
||||
add [lost_bytes],ecx
|
||||
@@:
|
||||
|
||||
;eax - ª®««¨ç¥á⢮ ¯¨ªá¥«¥© ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨
|
||||
lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à ¬¨ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨
|
||||
|
||||
cld
|
||||
cmp [right_bytes],0
|
||||
cmp [lost_bytes],0
|
||||
jg .copy_3
|
||||
.copy_2: ;¯à®á⮥ ª®¯¨à®¢ ¨¥
|
||||
mov ecx,eax
|
||||
@ -2236,7 +2260,7 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
inc esi
|
||||
loop @b
|
||||
add edi,ebx
|
||||
add esi,[right_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî £à ¨æã
|
||||
add esi,[lost_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî £à ¨æã
|
||||
dec edx
|
||||
cmp edx,0
|
||||
jg .copy_3
|
||||
@ -2288,7 +2312,7 @@ combine_colors_0:
|
||||
align 4
|
||||
proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, buf_source:dword
|
||||
locals
|
||||
lost_bytes dd ?
|
||||
lost_bytes dd ? ;ç¨á«® ¯®â¥àïëå ¡ ©â®¢ ¢ áâப¥ ª®¯¨à㥬®£® ¨§®¡à ¦¥ï (â¥å çâ® ¥ ¢« §ïâ ¢ ¡ãä¥à)
|
||||
endl
|
||||
pushad
|
||||
|
||||
@ -2311,7 +2335,6 @@ proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, bu
|
||||
cmp edx,0
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h)
|
||||
neg ecx
|
||||
;inc ecx
|
||||
imul ecx,eax
|
||||
shl ecx,2 ;¯® 4 ¡ ©â ¯¨ªá¥«ì
|
||||
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
||||
@ -2346,15 +2369,14 @@ proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, bu
|
||||
cmp ecx,0
|
||||
jge @f
|
||||
neg ecx
|
||||
;inc ecx
|
||||
cmp eax,ecx ;eax - è¨à¨ ª®¯¨à㥬®© ª à⨪¨
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî § «¥¢®© £à ¨æ¥© ¡ãä¥à (coord_x<0 ¨ |coord_x|>buf_source.w)
|
||||
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã
|
||||
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à
|
||||
shl ecx,2
|
||||
mov [lost_bytes],ecx
|
||||
add esi,ecx
|
||||
shr ecx,2
|
||||
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã
|
||||
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à
|
||||
lea ecx,[ecx+ecx*2]
|
||||
add edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥
|
||||
xor ecx,ecx
|
||||
@ -2368,17 +2390,6 @@ proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, bu
|
||||
add [lost_bytes],ecx
|
||||
@@:
|
||||
|
||||
; mov [right_bytes],0
|
||||
; mov ecx,[coord_x]
|
||||
; cmp ecx,ebx
|
||||
; jl @f
|
||||
; sub ecx,ebx
|
||||
; sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã
|
||||
; add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à
|
||||
; shl ecx,2 ;ecx - ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã
|
||||
; mov [right_bytes],ecx
|
||||
; @@:
|
||||
|
||||
lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à ¬¨ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨
|
||||
|
||||
cld
|
||||
@ -2487,7 +2498,6 @@ proc buf_bit_blt_alpha, buf_destination:dword, coord_x:dword, coord_y:dword, buf
|
||||
cmp edx,0
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h)
|
||||
neg ecx
|
||||
;inc ecx
|
||||
imul ecx,eax
|
||||
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
||||
xor ecx,ecx ;®¡ã«ï¥¬ ª®®à¤¨ âã coord_y
|
||||
@ -2521,12 +2531,11 @@ proc buf_bit_blt_alpha, buf_destination:dword, coord_x:dword, coord_y:dword, buf
|
||||
cmp ecx,0
|
||||
jge @f
|
||||
neg ecx
|
||||
;inc ecx
|
||||
cmp eax,ecx ;eax - è¨à¨ ª®¯¨à㥬®© ª à⨪¨
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî § «¥¢®© £à ¨æ¥© ¡ãä¥à (coord_x<0 ¨ |coord_x|>buf_source.w)
|
||||
mov [lost_bytes],ecx
|
||||
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã
|
||||
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à
|
||||
mov [lost_bytes],ecx
|
||||
add esi,ecx
|
||||
lea ecx,[ecx+ecx*2]
|
||||
add edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥
|
||||
|
@ -1,2 +1,3 @@
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
tup.foreach_rule({"vox_creator.asm", "vox_mover.asm", "vox_tgl.asm"}, "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B")
|
||||
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en" or tup.getconfig("LANG")) .. " > lang.inc", {"lang.inc"})
|
||||
tup.foreach_rule({"vox_creator.asm", "vox_mover.asm", "vox_tgl.asm", extra_inputs = {"lang.inc"}}, "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B")
|
||||
|
10
programs/media/voxel_editor/utilites/build_en.bat
Normal file
10
programs/media/voxel_editor/utilites/build_en.bat
Normal file
@ -0,0 +1,10 @@
|
||||
if not exist bin mkdir bin
|
||||
@erase lang.inc
|
||||
@echo lang fix en >lang.inc
|
||||
@fasm.exe -m 16384 vox_creator.asm bin\vox_creator.kex
|
||||
@kpack bin\vox_creator.kex
|
||||
@fasm.exe -m 16384 vox_mover.asm bin\vox_mover.kex
|
||||
@kpack bin\vox_mover.kex
|
||||
@fasm.exe -m 16384 vox_tgl.asm bin\vox_tgl.kex
|
||||
@kpack bin\vox_tgl.kex
|
||||
pause
|
@ -1,6 +1,6 @@
|
||||
if not exist bin mkdir bin
|
||||
if not exist bin\buf2d.obj @fasm.exe -m 16384 ..\..\..\develop\libraries\TinyGL\asm_fork\tinygl.asm bin\tinygl.obj
|
||||
@kpack bin\tinygl.obj
|
||||
@erase lang.inc
|
||||
@echo lang fix ru >lang.inc
|
||||
@fasm.exe -m 16384 vox_creator.asm bin\vox_creator.kex
|
||||
@kpack bin\vox_creator.kex
|
||||
@fasm.exe -m 16384 vox_mover.asm bin\vox_mover.kex
|
||||
|
@ -8,6 +8,7 @@ include '../../../../programs/proc32.inc'
|
||||
include '../../../../programs/KOSfuncs.inc'
|
||||
include '../../../../programs/load_img.inc'
|
||||
include '../trunk/str.inc'
|
||||
include 'lang.inc'
|
||||
|
||||
vox_offs_tree_table equ 4
|
||||
vox_offs_data equ 12
|
||||
@ -15,7 +16,11 @@ txt_buf rb 8
|
||||
include '../trunk/vox_rotate.inc'
|
||||
|
||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||||
caption db 'Voxel creator 22.03.18',0 ;¯®¤¯¨áì ®ª
|
||||
if lang eq ru
|
||||
caption db '‘®§¤ â¥«ì ¢®ªá¥«¥© 04.05.20',0 ;¯®¤¯¨áì ®ª
|
||||
else
|
||||
caption db 'Voxel creator 04.05.20',0
|
||||
end if
|
||||
|
||||
BUF_STRUCT_SIZE equ 21
|
||||
buf2d_data equ dword[edi] ;¤ ë¥ ¡ãä¥à ¨§®¡à ¦¥¨ï
|
||||
@ -27,14 +32,16 @@ buf2d_size_lt equ dword[edi+4] ;
|
||||
buf2d_color equ dword[edi+16] ;梥â ä® ¡ãä¥à
|
||||
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥¨ï
|
||||
|
||||
vox_offs_tree_table equ 4
|
||||
vox_offs_data equ 12
|
||||
|
||||
run_file_70 FileInfoBlock
|
||||
vox_obj_size dd 0 ;à §¬¥à ¢®ªá¥«ì®£® ®¡ê¥ªâ (¤«ï ãáª®à¥¨ï ¢áâ ¢ª¨)
|
||||
txt_space db ' ',0
|
||||
if lang eq ru
|
||||
txt_pref db ' ¡ ',0,' Š¡',0,' Œ¡',0,' ƒ¡',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£
|
||||
txt_f_size: db '<27> §¬¥à: '
|
||||
else
|
||||
txt_pref db ' b ',0,' Kb',0,' Mb',0,' Gb',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£
|
||||
txt_f_size: db 'Size: '
|
||||
end if
|
||||
.size: rb 16
|
||||
|
||||
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
|
||||
@ -469,42 +476,52 @@ button:
|
||||
cmp ah,3
|
||||
jne @f
|
||||
call but_new_file
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,4
|
||||
jne @f
|
||||
call but_open_file
|
||||
call but_open_file ;®âªàë⨥ ¢®ªá¥«ì®£® ä ©«
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,5
|
||||
jne @f
|
||||
call but_save_file
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,6
|
||||
jne @f
|
||||
call but_1
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,7
|
||||
jne @f
|
||||
call but_2
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,8
|
||||
jne @f
|
||||
call but_3
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,9
|
||||
jne @f
|
||||
stdcall but_run, 0
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,10
|
||||
jne @f
|
||||
stdcall but_run, 1
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,11
|
||||
jne @f
|
||||
call but_5
|
||||
call but_stop
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,12
|
||||
jne @f
|
||||
call but_rot_z
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,1
|
||||
jne still
|
||||
@ -769,7 +786,7 @@ bby_max dd 0
|
||||
k_scale dd 0
|
||||
n_plane dd 0
|
||||
|
||||
calc db 0
|
||||
calc db 0 ;¥á«¨ =1, â® ¨¤¥â ᮧ¤ ¨¥ ®¡ê¥ªâ
|
||||
|
||||
; ᮧ¤ ¨¥ ¢®ªá¥«ï ¢ 3 íâ ¯ :
|
||||
; 1) ¨é¥¬ ¬¥áâ® ¢ áâàãªâãॠ¤¥à¥¢ , ªã¤ ¤® ¢áâ ¢¨âì (¥á«¨ ¢¥â¢ì áãé¥áâ¢ã¥â, 2-© íâ ¯ ¯à®¯ã᪠¥¬)
|
||||
@ -988,7 +1005,6 @@ coord_x:dword,coord_y:dword,coord_z:dword,k_scale:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
;
|
||||
;output:
|
||||
; eax - à §¬¥à ¢ ¡ ©â å § ¨¬ ¥¬ë© ®¡ê¥ªâ®¬ v_obj
|
||||
align 4
|
||||
@ -1080,8 +1096,9 @@ proc but_run uses eax ebx edi, mode_add:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
;¯à¥ªà â¨âì ᮧ¤ ¨¥ ®¡ê¥ªâ
|
||||
align 4
|
||||
but_5:
|
||||
but_stop:
|
||||
cmp byte[calc],0
|
||||
je @f
|
||||
call draw_object
|
||||
@ -1131,6 +1148,9 @@ proc open_image_in_buf, buf:dword
|
||||
stdcall dword[img_decode], dword[open_file_img],ebx,0
|
||||
or eax,eax
|
||||
jz .end_0 ;¥á«¨ àãè¥ ä®à¬ â ä ©«
|
||||
mov ebx,[eax+4] ;+4 = image width
|
||||
cmp ebx,[eax+8] ;+8 = image height
|
||||
jne .err_s0
|
||||
mov ebx,eax
|
||||
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb
|
||||
stdcall dword[img_to_rgb2], ebx,dword[open_file_img]
|
||||
@ -1139,11 +1159,11 @@ proc open_image_in_buf, buf:dword
|
||||
cmp buf2d_data,0
|
||||
jne @f
|
||||
m2m buf2d_w,dword[ebx+4] ;+4 = image width
|
||||
m2m buf2d_h,dword[ebx+8] ;+8 = image heihht
|
||||
m2m buf2d_h,dword[ebx+8] ;+8 = image height
|
||||
stdcall [buf2d_create_f_img], edi,[open_file_img]
|
||||
jmp .end_1
|
||||
@@:
|
||||
mov ecx,dword[ebx+8]
|
||||
mov ecx,[ebx+8]
|
||||
stdcall [buf2d_resize], edi, [ebx+4],ecx,1 ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à
|
||||
imul ecx,[ebx+4]
|
||||
lea ecx,[ecx+ecx*2]
|
||||
@ -1151,8 +1171,11 @@ proc open_image_in_buf, buf:dword
|
||||
mov esi,[open_file_img]
|
||||
cld
|
||||
rep movsb ;copy image
|
||||
jmp .end_1
|
||||
.err_s0: ;®è¨¡ª , ¨§®¡à ¦¥¨¥ ¤«ï ¯à¥®¡à §®¢ ¨ï ¥ ¯®¤å®¤¨â (¥ ª¢ ¤à ⮥)
|
||||
mov ebx,eax
|
||||
notify_window_run txt_img_not_square
|
||||
.end_1:
|
||||
|
||||
;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à ¢ ebx
|
||||
stdcall dword[img_destroy], ebx
|
||||
.end_0:
|
||||
@ -1199,6 +1222,8 @@ msgbox_4:
|
||||
db '‡ ªàëâì',0
|
||||
db 0
|
||||
|
||||
txt_img_not_square db '"‚¨¬ ¨¥',13,10,'Žâªàë¢ ¥¬®¥ ¨§®¡à ¦¥¨¥ ¥ ª¢ ¤à ⮥" -tW',0
|
||||
|
||||
;¤ ë¥ ¤«ï ¤¨ «®£ ®âªàëâ¨ï ä ©«®¢
|
||||
align 4
|
||||
OpenDialog_data:
|
||||
@ -1244,29 +1269,40 @@ db 0
|
||||
|
||||
|
||||
|
||||
head_f_i:
|
||||
head_f_l db '‘¨á⥬ ï ®è¨¡ª ',0
|
||||
|
||||
system_dir_0 db '/sys/lib/'
|
||||
lib_name_0 db 'proc_lib.obj',0
|
||||
err_message_found_lib_0 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0
|
||||
err_message_import_0 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
|
||||
|
||||
system_dir_1 db '/sys/lib/'
|
||||
lib_name_1 db 'libimg.obj',0
|
||||
err_message_found_lib_1 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0
|
||||
err_message_import_1 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
|
||||
|
||||
system_dir_2 db '/sys/lib/'
|
||||
lib_name_2 db 'buf2d.obj',0
|
||||
err_msg_found_lib_2 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0
|
||||
err_msg_import_2 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0
|
||||
|
||||
system_dir_3 db '/sys/lib/'
|
||||
lib_name_3 db 'msgbox.obj',0
|
||||
err_msg_found_lib_3 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'msgbox.obj',39,0
|
||||
err_msg_import_3 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox',39,0
|
||||
|
||||
align 4
|
||||
head_f_i:
|
||||
if lang eq ru
|
||||
head_f_l db '"‘¨á⥬ ï ®è¨¡ª ',0
|
||||
err_message_found_lib_0 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_import_0 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_found_lib_1 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,'" -tE',0
|
||||
err_message_import_1 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tE',0
|
||||
err_msg_found_lib_2 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,'" -tE',0
|
||||
err_msg_import_2 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tE',0
|
||||
err_msg_found_lib_3 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'msgbox.obj',39,'" -tE',0
|
||||
err_msg_import_3 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox',39,'" -tE',0
|
||||
else
|
||||
head_f_l db '"System error',0
|
||||
err_message_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
|
||||
err_message_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
|
||||
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0
|
||||
err_msg_import_2 db 'Error on load import library ',39,'buf2d',39,'" -tE',0
|
||||
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'msgbox.obj',39,'" -tE',0
|
||||
err_msg_import_3 db 'Error on load import library ',39,'msgbox',39,'" -tE',0
|
||||
end if
|
||||
|
||||
align 4
|
||||
l_libs_start:
|
||||
lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
|
||||
err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i
|
||||
@ -1419,7 +1455,7 @@ dd 0,0
|
||||
; amb_reinit db 'mb_reinit',0
|
||||
; amb_setfunctions db 'mb_setfunctions',0
|
||||
|
||||
mouse_dd dd 0x0
|
||||
mouse_dd dd 0
|
||||
sc system_colors
|
||||
last_time dd 0
|
||||
|
||||
@ -1444,6 +1480,7 @@ buf_0z: dd 0
|
||||
.color: dd 0 ;+16 color
|
||||
db 32 ;+20 bit in pixel
|
||||
|
||||
;⥪áâãà 1 (¢¥àåïï)
|
||||
align 4
|
||||
buf_i0: dd 0
|
||||
dw 5 ;+4 left
|
||||
@ -1453,6 +1490,7 @@ buf_i0: dd 0
|
||||
.color: dd 0 ;+16 color
|
||||
db 24 ;+20 bit in pixel
|
||||
|
||||
;⥪áâãà 2
|
||||
align 4
|
||||
buf_i1: dd 0
|
||||
dw 105 ;+4 left
|
||||
@ -1462,6 +1500,7 @@ buf_i1: dd 0
|
||||
.color: dd 0 ;+16 color
|
||||
db 24 ;+20 bit in pixel
|
||||
|
||||
;⥪áâãà 3
|
||||
align 4
|
||||
buf_i2: dd 0
|
||||
dw 205 ;+4 left
|
||||
@ -1471,6 +1510,10 @@ buf_i2: dd 0
|
||||
.color: dd 0 ;+16 color
|
||||
db 24 ;+20 bit in pixel
|
||||
|
||||
; «£®à¨â¬ ᮧ¤ ¨ï ¬®¤¥«¨ ¨á¯®«ì§ã¥â 3 á¥ç¥¨ï:
|
||||
; ¯à¥¤ë¤ã饥, ⥪ã饥, ¯®á«¥¤ãî饥 (íâ® ¥®¡å®¤¨¬® ¤«ï ®âᥨ¢ ¨ï ¢®ªá¥«¥© ¢ãâਠ®¡ê¥ªâ )
|
||||
|
||||
;¯à¥¤ë¤ã饥 á¥ç¥¨¥
|
||||
align 4
|
||||
buf_npl_p: dd 0
|
||||
dw 0 ;+4 left
|
||||
@ -1480,6 +1523,7 @@ buf_npl_p: dd 0
|
||||
.color: dd 0 ;+16 color
|
||||
db 24 ;+20 bit in pixel
|
||||
|
||||
;⥪ã饥 á¥ç¥¨¥
|
||||
align 4
|
||||
buf_npl: dd 0
|
||||
dw 5 ;+4 left
|
||||
@ -1489,6 +1533,7 @@ buf_npl: dd 0
|
||||
.color: dd 0 ;+16 color
|
||||
db 24 ;+20 bit in pixel
|
||||
|
||||
;¯®á«¥¤ãî饥 á¥ç¥¨¥
|
||||
align 4
|
||||
buf_npl_n: dd 0
|
||||
dw 0 ;+4 left
|
||||
|
@ -10,9 +10,14 @@ include '../../../../programs/load_img.inc'
|
||||
include '../trunk/vox_draw.inc'
|
||||
include '../trunk/vox_rotate.inc'
|
||||
include '../trunk/str.inc'
|
||||
include 'lang.inc'
|
||||
|
||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||||
caption db 'Voxel mover 22.03.18',0 ;¯®¤¯¨áì ®ª
|
||||
if lang eq ru
|
||||
caption db '<27>¥à¥¬¥é¥¨¥ ¢®ªá¥«¥© 04.05.20',0 ;¯®¤¯¨áì ®ª
|
||||
else
|
||||
caption db 'Voxel mover 04.05.20',0
|
||||
end if
|
||||
|
||||
run_file_70 FileInfoBlock
|
||||
|
||||
@ -518,80 +523,98 @@ button:
|
||||
stdcall but_new_file, [open_file_vox]
|
||||
call draw_objects
|
||||
call draw_pok
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,4
|
||||
jne @f
|
||||
call but_open_file
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,5
|
||||
jne @f
|
||||
call but_save_file
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,6
|
||||
jne @f
|
||||
call but_zoom_p
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,7
|
||||
jne @f
|
||||
call but_zoom_m
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,8
|
||||
jne @f
|
||||
call but_3
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,9
|
||||
jne @f
|
||||
call but_4
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,10
|
||||
jne @f
|
||||
call but_plane_inc
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,11
|
||||
jne @f
|
||||
call but_plane_dec
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,12
|
||||
jne @f
|
||||
call but_light
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,13
|
||||
jne @f
|
||||
call but_rend_2_2
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,14
|
||||
jne @f
|
||||
call but_move
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,15
|
||||
jne @f
|
||||
dec dword[mov_x]
|
||||
call draw_pok
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,16
|
||||
jne @f
|
||||
inc dword[mov_x]
|
||||
call draw_pok
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,17
|
||||
jne @f
|
||||
dec dword[mov_y]
|
||||
call draw_pok
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,18
|
||||
jne @f
|
||||
inc dword[mov_y]
|
||||
call draw_pok
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,19
|
||||
jne @f
|
||||
dec dword[mov_z]
|
||||
call draw_pok
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,20
|
||||
jne @f
|
||||
inc dword[mov_z]
|
||||
call draw_pok
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,1
|
||||
jne still
|
||||
@ -633,8 +656,8 @@ moved_file_vox dd 0
|
||||
|
||||
align 4
|
||||
but_open_file:
|
||||
pushad
|
||||
copy_path open_dialog_name,communication_area_default_path,file_name,0
|
||||
pushad
|
||||
mov [OpenDialog_data.type],0
|
||||
stdcall [OpenDialog_Start],OpenDialog_data
|
||||
cmp [OpenDialog_data.status],2
|
||||
@ -676,8 +699,8 @@ popad
|
||||
|
||||
align 4
|
||||
but_save_file:
|
||||
pushad
|
||||
copy_path open_dialog_name,communication_area_default_path,file_name,0
|
||||
pushad
|
||||
mov [OpenDialog_data.type],1
|
||||
stdcall [OpenDialog_Start],OpenDialog_data
|
||||
cmp [OpenDialog_data.status],2
|
||||
@ -1133,12 +1156,21 @@ dd 1 shl 30,1 shl 30,1 shl 30,1 shl 30,1 shl 30
|
||||
dd 1 shl 31,1 shl 30,1 shl 30,1 shl 30,1 shl 31
|
||||
rd 999 ;32*32-25
|
||||
|
||||
if lang eq ru
|
||||
txt_zoom db 'Ś áčâ ˇ:',0
|
||||
txt_curor: db 'Šăŕá®ŕ: '
|
||||
.size: rb 10
|
||||
txt_n_plane db '‘ĄçĄ¨Ą:',0
|
||||
txt_color db '–˘Ąâ:',0
|
||||
txt_mov_offs: db '‘¬ĄéĄ¨Ą: '
|
||||
else
|
||||
txt_zoom db 'Scale:',0
|
||||
txt_curor: db 'Cursor: '
|
||||
.size: rb 10
|
||||
txt_n_plane db 'Section:',0
|
||||
txt_color db 'Color:',0
|
||||
txt_mov_offs: db 'Offset: '
|
||||
end if
|
||||
.size: rb 30
|
||||
txt_mull db '*',0
|
||||
txt_space db ' ',0
|
||||
@ -1292,29 +1324,38 @@ db 'VOX',0
|
||||
db 0
|
||||
|
||||
|
||||
|
||||
head_f_i:
|
||||
head_f_l db '‘¨á⥬ ï ®è¨¡ª ',0
|
||||
|
||||
system_dir_0 db '/sys/lib/'
|
||||
lib_name_0 db 'proc_lib.obj',0
|
||||
err_message_found_lib_0 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0
|
||||
err_message_import_0 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
|
||||
|
||||
system_dir_1 db '/sys/lib/'
|
||||
lib_name_1 db 'libimg.obj',0
|
||||
err_message_found_lib_1 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0
|
||||
err_message_import_1 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
|
||||
|
||||
system_dir_2 db '/sys/lib/'
|
||||
lib_name_2 db 'buf2d.obj',0
|
||||
err_msg_found_lib_2 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0
|
||||
err_msg_import_2 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0
|
||||
|
||||
system_dir_3 db '/sys/lib/'
|
||||
lib_name_3 db 'libini.obj',0
|
||||
err_msg_found_lib_3 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,0
|
||||
err_msg_import_3 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0
|
||||
|
||||
align 4
|
||||
head_f_i:
|
||||
if lang eq ru
|
||||
head_f_l db '"‘¨á⥬ ï ®è¨¡ª ',0
|
||||
err_message_found_lib_0 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_import_0 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_found_lib_1 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,'" -tE',0
|
||||
err_message_import_1 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tE',0
|
||||
err_msg_found_lib_2 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,'" -tE',0
|
||||
err_msg_import_2 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tE',0
|
||||
err_msg_found_lib_3 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,'" -tE',0
|
||||
err_msg_import_3 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,'" -tE',0
|
||||
else
|
||||
head_f_l db '"System error',0
|
||||
err_message_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
|
||||
err_message_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
|
||||
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0
|
||||
err_msg_import_2 db 'Error on load import library ',39,'buf2d',39,'" -tE',0
|
||||
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0
|
||||
err_msg_import_3 db 'Error on load import library ',39,'libini',39,'" -tE',0
|
||||
end if
|
||||
|
||||
l_libs_start:
|
||||
lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
|
||||
@ -1469,7 +1510,7 @@ dd 0,0
|
||||
aini_get_int db 'ini_get_int',0
|
||||
aini_get_color db 'ini_get_color',0
|
||||
|
||||
mouse_dd dd 0x0
|
||||
mouse_dd dd 0
|
||||
sc system_colors
|
||||
|
||||
align 16
|
||||
|
@ -10,9 +10,14 @@ include '../../../../programs/load_img.inc'
|
||||
include '../../../../programs/develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
||||
include 'vox_3d.inc'
|
||||
include '../trunk/str.inc'
|
||||
include 'lang.inc'
|
||||
|
||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||||
caption db 'Voxel viewer 22.03.18',0 ;¯®¤¯¨áì ®ª
|
||||
if lang eq ru
|
||||
caption db '<27>à®á¬®âà ¢®ªá¥«¥© 04.05.20',0 ;¯®¤¯¨áì ®ª
|
||||
else
|
||||
caption db 'Voxel viewer 04.05.20',0
|
||||
end if
|
||||
|
||||
3d_wnd_l equ 5 ;®âáâ㯠¤«ï tinygl ¡ãä¥à á«¥¢
|
||||
3d_wnd_t equ 30 ;®âáâ㯠¤«ï tinygl ¡ãä¥à ᢥàåã
|
||||
@ -355,42 +360,52 @@ button:
|
||||
cmp ah,3
|
||||
jne @f
|
||||
call but_new_file
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,4
|
||||
jne @f
|
||||
call but_open_file
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,5
|
||||
jne @f
|
||||
call but_save_file
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,6
|
||||
jne @f
|
||||
call but_zoom_p
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,7
|
||||
jne @f
|
||||
call but_zoom_m
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,8
|
||||
jne @f
|
||||
call but_3
|
||||
call but_light
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,9
|
||||
jne @f
|
||||
call but_4
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,10
|
||||
jne @f
|
||||
call but_5
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,11
|
||||
jne @f
|
||||
call but_6
|
||||
call but_info
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,12
|
||||
jne @f
|
||||
call but_draw_cadr
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,1
|
||||
jne still
|
||||
@ -417,8 +432,8 @@ v_zoom dd 0
|
||||
|
||||
align 4
|
||||
but_open_file:
|
||||
pushad
|
||||
copy_path open_dialog_name,communication_area_default_path,file_name,0
|
||||
pushad
|
||||
mov [OpenDialog_data.type],0
|
||||
stdcall [OpenDialog_Start],OpenDialog_data
|
||||
cmp [OpenDialog_data.status],2
|
||||
@ -564,8 +579,8 @@ draw_cadr:
|
||||
|
||||
align 4
|
||||
but_save_file:
|
||||
pushad
|
||||
copy_path open_dialog_name,communication_area_default_path,file_name,0
|
||||
pushad
|
||||
mov [OpenDialog_data.type],1
|
||||
stdcall [OpenDialog_Start],OpenDialog_data
|
||||
cmp [OpenDialog_data.status],2
|
||||
@ -618,7 +633,7 @@ proc but_zoom_m uses eax
|
||||
endp
|
||||
|
||||
align 4
|
||||
proc but_3 uses eax ebx ecx edx
|
||||
proc but_light uses eax ebx ecx edx
|
||||
xor word[opt_light],1
|
||||
cmp word[opt_light],0
|
||||
je @f
|
||||
@ -652,7 +667,7 @@ proc but_5 uses eax ebx ecx edx
|
||||
endp
|
||||
|
||||
align 4
|
||||
proc but_6 uses eax ebx ecx edx edi
|
||||
proc but_info uses eax ebx ecx edx edi
|
||||
;¢ëç¨á«¥¨¥ áâ â¨á⨪¨ ¯® ¢®ªá¥«ï¬
|
||||
mov eax,[open_file_ogl]
|
||||
or eax,eax
|
||||
@ -707,10 +722,17 @@ endp
|
||||
|
||||
align 4
|
||||
txt_stat_m1:
|
||||
if lang eq ru
|
||||
db '‘â â¨á⨪ ',13,10,'‚®ªá¥«¥©: '
|
||||
.v: rb 70
|
||||
txt_stat_m2:
|
||||
db 13,10,'Žâ®¡à ¦ ¥¬ëå £à ¥©: '
|
||||
else
|
||||
db 'Statistics',13,10,'Voxels: '
|
||||
.v: rb 70
|
||||
txt_stat_m2:
|
||||
db 13,10,'Facets displayed: '
|
||||
end if
|
||||
.v: rb 20
|
||||
|
||||
align 4
|
||||
@ -842,28 +864,38 @@ db 0
|
||||
|
||||
|
||||
|
||||
head_f_i:
|
||||
head_f_l db '‘¨á⥬ ï ®è¨¡ª ',0
|
||||
|
||||
system_dir_0 db '/sys/lib/'
|
||||
lib_name_0 db 'proc_lib.obj',0
|
||||
err_message_found_lib_0 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0
|
||||
err_message_import_0 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
|
||||
|
||||
system_dir_1 db '/sys/lib/'
|
||||
lib_name_1 db 'libimg.obj',0
|
||||
err_message_found_lib_1 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0
|
||||
err_message_import_1 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
|
||||
|
||||
system_dir_2 db '/sys/lib/'
|
||||
lib_name_2 db 'buf2d.obj',0
|
||||
err_msg_found_lib_2 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0
|
||||
err_msg_import_2 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0
|
||||
|
||||
system_dir_3 db '/sys/lib/'
|
||||
lib_name_3 db 'tinygl.obj',0
|
||||
err_msg_found_lib_3 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,0
|
||||
err_msg_import_3 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
|
||||
|
||||
align 4
|
||||
head_f_i:
|
||||
if lang eq ru
|
||||
head_f_l db '"‘¨á⥬ ï ®è¨¡ª ',0
|
||||
err_message_found_lib_0 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_import_0 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_found_lib_1 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,'" -tE',0
|
||||
err_message_import_1 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tE',0
|
||||
err_msg_found_lib_2 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,'" -tE',0
|
||||
err_msg_import_2 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tE',0
|
||||
err_msg_found_lib_3 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,'" -tE',0
|
||||
err_msg_import_3 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,'" -tE',0
|
||||
else
|
||||
head_f_l db '"System error',0
|
||||
err_message_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tE',0
|
||||
err_message_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0
|
||||
err_message_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
|
||||
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0
|
||||
err_msg_import_2 db 'Error on load import library ',39,'buf2d',39,'" -tE',0
|
||||
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'tinygl.obj',39,'" -tE',0
|
||||
err_msg_import_3 db 'Error on load import library ',39,'tinygl',39,'" -tE',0
|
||||
end if
|
||||
|
||||
l_libs_start:
|
||||
lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
|
||||
|
@ -267,8 +267,12 @@ align 4
|
||||
;conv_tabl rb 128 ;â ¡«¨æ ¤«ï ª®¢¥àâ¨à®¢ ¨ï scan-ª®¤ ¢ ascii-ª®¤
|
||||
buf db BUF_SIZE dup(0) ;¡ãä¥à ¤«ï ª®¯¨à®¢ ¨ï | ¢áâ ¢ª¨
|
||||
|
||||
capt_header db 'macro wo txt,f1,p1,p2,p3{',13
|
||||
db '@@: db txt',13,'rb @b+40-$',13,'dd f1+0',13,'db p1',13,'dw p2+0',13,'db p3',13,'}',13
|
||||
capt_header db 'macro wo txt,lf1,p1,p2,p3{',13
|
||||
db '@@: db txt',13,'rb @b+40-$',13
|
||||
db 'if lf1 eq',13,'dd 0',13 ;¥á«¨ áá뫪 f1 ¯ãáâ ï
|
||||
db 'else if lf1 eq 0',13,'dd 0',13 ;¥á«¨ áá뫪 f1 à ¢ 0
|
||||
db 'else',13,'dd f1.#lf1-f1',13,'end if',13 ;¥á«¨ áá뫪 f1 § ¤ ¬¥âª®©
|
||||
db 'db p1',13,'dw p2+0',13,'db p3',13,'}',13
|
||||
db 'count_colors_text dd (text-color_wnd_text)/4',13
|
||||
db 'count_key_words dd (f1-text)/48',13,0
|
||||
col_1 db 'color_cursor dd ',0 ;+ 98 梥⠪ãàá®à
|
||||
@ -286,9 +290,7 @@ capt_end_word db 39,'>,',0
|
||||
capt_type_dd db 9,'dd ',0
|
||||
capt_lbl_f1 db 'f1: db 0',13,0
|
||||
capt_end_word_f1 db 39,',0',13,0
|
||||
capt_calc_f1 db 'f1'
|
||||
capt_point db '.',0
|
||||
capt_lbl_f1_use db '-f1',0
|
||||
capt_null db '0',0
|
||||
|
||||
KM_SHIFT equ 0x00010000
|
||||
|
@ -56,8 +56,13 @@ start:
|
||||
copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ á¨â ªá¨á
|
||||
mcall SF_FILE,tree_file_struct
|
||||
|
||||
cmp ebx,0
|
||||
jle .end_dir_init
|
||||
cmp ebx,2
|
||||
jg @f
|
||||
notify_window_run file_name ;á®®¡é¥¨¥ ¥á«¨ ¥ 㤠«®áì ®âªàëâì ä ©«ë
|
||||
jmp .end_dir_init
|
||||
@@:
|
||||
;cmp ebx,0
|
||||
;jle .end_dir_init
|
||||
mov eax,dir_mem+32+40
|
||||
mov ecx,ebx
|
||||
@@:
|
||||
@ -353,7 +358,7 @@ get_wnd_in_focus:
|
||||
;@@:
|
||||
ret
|
||||
|
||||
hed db 'TextEditor syntax file converter 29.01.19',0 ;¯®¤¯¨áì ®ª
|
||||
hed db 'TextEditor syntax file converter 06.02.20',0 ;¯®¤¯¨áì ®ª
|
||||
conv_tabl rb 128 ; â ¡«¨æ ¤«ï ª®¢¥àâ¨à®¢ ¨ï scan-ª®¤ ¢ ascii-ª®¤
|
||||
|
||||
txt_load_f db '‡ £à. ä ©«',0
|
||||
|
@ -246,9 +246,7 @@ proc print_word, text:dword, index:dword
|
||||
|
||||
cmp dword[ecx+TexColViv.f1],0
|
||||
je @f
|
||||
stdcall str_cat,edi,capt_calc_f1
|
||||
stdcall str_cat_value,edi,[index]
|
||||
stdcall str_cat,edi,capt_lbl_f1_use
|
||||
@@:
|
||||
|
||||
stdcall str_len,edi
|
||||
@ -322,6 +320,8 @@ proc code_string, text:dword, out_text:dword
|
||||
stdcall str_len,esi
|
||||
mov ecx,eax
|
||||
mov edi,[out_text]
|
||||
or ecx,ecx
|
||||
jz .end_copy ;если строка со справкой пустаЯ
|
||||
|
||||
.copy:
|
||||
mov al,byte[esi]
|
||||
|
Loading…
Reference in New Issue
Block a user