forked from KolibriOS/kolibrios
update: add vertical and horizontal lines for align image
git-svn-id: svn://kolibrios.org@8090 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
bf38c73d0a
commit
02edd3949b
@ -1,8 +1,8 @@
|
|||||||
<html>
|
<html lang=ru>
|
||||||
<head>
|
<head>
|
||||||
<title>Image transform</title>
|
<title>Image transform</title>
|
||||||
<meta charset="WINDOWS-1251">
|
<meta charset="WINDOWS-1251">
|
||||||
<style>
|
<style type="text/css">
|
||||||
body
|
body
|
||||||
{
|
{
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
@ -45,7 +45,7 @@ table { font-size: 15px; }
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>Image transform 26.05.20</h1>
|
<h1>Image transform 02.10.20</h1>
|
||||||
|
|
||||||
<h2>Оглавление</h2>
|
<h2>Оглавление</h2>
|
||||||
<ul>
|
<ul>
|
||||||
@ -81,8 +81,9 @@ table { font-size: 15px; }
|
|||||||
<h2>Клавиатура</h2>
|
<h2>Клавиатура</h2>
|
||||||
<p><b>Ctrl+O</b> - открытие файла.</p>
|
<p><b>Ctrl+O</b> - открытие файла.</p>
|
||||||
<p><b>Ctrl+S</b> - сохранение файла.</p>
|
<p><b>Ctrl+S</b> - сохранение файла.</p>
|
||||||
<p><b>1, 2, 3, 4</b> - установка координат указанной точки.</p>
|
<p><b>1</b>, <b>2</b>, <b>3</b>, <b>4</b> - установка координат указанной точки.</p>
|
||||||
<p><b>↑</b>, <b>↓</b>, <b>←</b>, <b>→</b> - навигация по изображению или пермещение выделенной точки.</p>
|
<p><b>↑</b>, <b>↓</b>, <b>←</b>, <b>→</b> - навигация по изображению или пермещение выделенной точки.</p>
|
||||||
|
<p><b>V</b>, <b>H</b> - поставить/убрать вертикальную/горизонтальную линию. Эти линии нужны для измерения точности выравнивания изображения и в итоговый файл не сохраняються.</p>
|
||||||
|
|
||||||
<h2>Алгоритм работы программы</h2>
|
<h2>Алгоритм работы программы</h2>
|
||||||
<p>Открывается изображение и из него делается текстура для библиотеки TinyGL. (Если ширина изображения не кратна 2-м в какой-либо степени то оно дополняется пустыми полями с двух сторон до нужной ширины).
|
<p>Открывается изображение и из него делается текстура для библиотеки TinyGL. (Если ширина изображения не кратна 2-м в какой-либо степени то оно дополняется пустыми полями с двух сторон до нужной ширины).
|
||||||
|
@ -4,18 +4,17 @@ use32
|
|||||||
dd 1,start,i_end,mem,stacktop,openfile_path,sys_path
|
dd 1,start,i_end,mem,stacktop,openfile_path,sys_path
|
||||||
|
|
||||||
include 'lang.inc'
|
include 'lang.inc'
|
||||||
include '../../../programs/macros.inc'
|
include '../../macros.inc'
|
||||||
include '../../../programs/proc32.inc'
|
include '../../proc32.inc'
|
||||||
include '../../../programs/KOSfuncs.inc'
|
include '../../KOSfuncs.inc'
|
||||||
include '../../../programs/load_img.inc'
|
include '../../load_img.inc'
|
||||||
include '../../../programs/develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
|
||||||
include '../../../programs/develop/libraries/libs-dev/libimg/libimg.inc'
|
include '../../develop/libraries/TinyGL/asm_fork/zbuffer.inc'
|
||||||
include '../../../programs/develop/info3ds/info_fun_float.inc'
|
include '../../develop/libraries/libs-dev/libimg/libimg.inc'
|
||||||
|
include '../../develop/info3ds/info_fun_float.inc'
|
||||||
|
|
||||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||||||
caption db 'Image transform 10.06.20',0 ;¯®¤¯¨áì ®ª
|
caption db 'Image transform 02.10.20',0 ;¯®¤¯¨áì ®ª
|
||||||
|
|
||||||
offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc'
|
|
||||||
|
|
||||||
BUF_STRUCT_SIZE equ 21
|
BUF_STRUCT_SIZE equ 21
|
||||||
buf2d_data equ dword[edi] ;¤ ë¥ ¡ãä¥à ¨§®¡à ¦¥¨ï
|
buf2d_data equ dword[edi] ;¤ ë¥ ¡ãä¥à ¨§®¡à ¦¥¨ï
|
||||||
@ -266,6 +265,24 @@ pushad
|
|||||||
stdcall [buf2d_bit_blt], buf_0, [nav_x],[nav_y] ;,...
|
stdcall [buf2d_bit_blt], buf_0, [nav_x],[nav_y] ;,...
|
||||||
|
|
||||||
call points_draw
|
call points_draw
|
||||||
|
xor eax,eax
|
||||||
|
cmp [u_line_v],eax
|
||||||
|
je @f
|
||||||
|
mov eax,[u_line_v]
|
||||||
|
add eax,[nav_x]
|
||||||
|
stdcall [buf2d_line], buf_0, eax,0, eax,[buf_0.h], 0xffffff
|
||||||
|
inc eax
|
||||||
|
stdcall [buf2d_line], buf_0, eax,0, eax,[buf_0.h], 0
|
||||||
|
@@:
|
||||||
|
xor eax,eax
|
||||||
|
cmp [u_line_h],eax
|
||||||
|
je @f
|
||||||
|
mov eax,[u_line_h]
|
||||||
|
add eax,[nav_y]
|
||||||
|
stdcall [buf2d_line], buf_0, 0,eax, [buf_0.w],eax, 0xffffff
|
||||||
|
inc eax
|
||||||
|
stdcall [buf2d_line], buf_0, 0,eax, [buf_0.w],eax, 0
|
||||||
|
@@:
|
||||||
|
|
||||||
; *** ®¡®¢«¥¨¥ ¯®¤¯¨á¨ à §¬¥à ä ©« ***
|
; *** ®¡®¢«¥¨¥ ¯®¤¯¨á¨ à §¬¥à ä ©« ***
|
||||||
mov edi,txt_f_size.size
|
mov edi,txt_f_size.size
|
||||||
@ -357,6 +374,18 @@ key:
|
|||||||
call but_img_move_right
|
call but_img_move_right
|
||||||
jmp .end0
|
jmp .end0
|
||||||
@@:
|
@@:
|
||||||
|
cmp ah,104 ;H
|
||||||
|
jne @f
|
||||||
|
call set_user_line_h
|
||||||
|
mov byte[calc],1
|
||||||
|
jmp .end0
|
||||||
|
@@:
|
||||||
|
cmp ah,118 ;V
|
||||||
|
jne @f
|
||||||
|
call set_user_line_w
|
||||||
|
mov byte[calc],1
|
||||||
|
jmp .end0
|
||||||
|
@@:
|
||||||
|
|
||||||
mov ecx,eax
|
mov ecx,eax
|
||||||
mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS
|
mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS
|
||||||
@ -660,6 +689,48 @@ proc mouse_left_u uses eax ebx
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
align 4
|
||||||
|
set_user_line_h:
|
||||||
|
pushad
|
||||||
|
call buf_get_mouse_coord
|
||||||
|
cmp eax,-1
|
||||||
|
je .end0
|
||||||
|
mov [mouse_down_y],ebx
|
||||||
|
sub ebx,[nav_y]
|
||||||
|
cmp eax,[buf_i0.h]
|
||||||
|
jle @f
|
||||||
|
mov eax,[buf_i0.h]
|
||||||
|
@@:
|
||||||
|
cmp [u_line_h],ebx
|
||||||
|
jne @f
|
||||||
|
xor ebx,ebx ;line on/off
|
||||||
|
@@:
|
||||||
|
mov [u_line_h],ebx
|
||||||
|
.end0:
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
align 4
|
||||||
|
set_user_line_w:
|
||||||
|
pushad
|
||||||
|
call buf_get_mouse_coord
|
||||||
|
cmp eax,-1
|
||||||
|
je .end0
|
||||||
|
mov [mouse_down_x],eax
|
||||||
|
sub eax,[nav_x]
|
||||||
|
cmp eax,[buf_i0.w]
|
||||||
|
jle @f
|
||||||
|
mov eax,[buf_i0.w]
|
||||||
|
@@:
|
||||||
|
cmp [u_line_v],eax
|
||||||
|
jne @f
|
||||||
|
xor eax,eax ;line on/off
|
||||||
|
@@:
|
||||||
|
mov [u_line_v],eax
|
||||||
|
.end0:
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
proc but_new_file uses eax edi esi
|
proc but_new_file uses eax edi esi
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
@ -715,6 +786,7 @@ proc calc_nav_params uses eax ecx edi
|
|||||||
shr dword[nav_sy],1
|
shr dword[nav_sy],1
|
||||||
|
|
||||||
xor ecx,ecx
|
xor ecx,ecx
|
||||||
|
mov [u_line_v],ecx
|
||||||
mov eax,[buf_i0.w]
|
mov eax,[buf_i0.w]
|
||||||
@@:
|
@@:
|
||||||
inc ecx
|
inc ecx
|
||||||
@ -723,6 +795,7 @@ proc calc_nav_params uses eax ecx edi
|
|||||||
jg @b
|
jg @b
|
||||||
mov [nav_wnd_zoom],ecx
|
mov [nav_wnd_zoom],ecx
|
||||||
xor ecx,ecx
|
xor ecx,ecx
|
||||||
|
mov [u_line_h],ecx
|
||||||
mov eax,[buf_i0.h]
|
mov eax,[buf_i0.h]
|
||||||
@@:
|
@@:
|
||||||
inc ecx
|
inc ecx
|
||||||
@ -878,10 +951,8 @@ proc but_open_file
|
|||||||
;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¯à¥®¡à §®¢ ®£® ¨§®¡à ¦¥¨ï
|
;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¯à¥®¡à §®¢ ®£® ¨§®¡à ¦¥¨ï
|
||||||
mov edi,buf_ogl
|
mov edi,buf_ogl
|
||||||
mov eax,[buf_i0.w]
|
mov eax,[buf_i0.w]
|
||||||
and eax, not 3
|
|
||||||
mov buf2d_w,eax
|
mov buf2d_w,eax
|
||||||
mov eax,[buf_i0.h]
|
mov eax,[buf_i0.h]
|
||||||
and eax, not 3
|
|
||||||
mov buf2d_h,eax
|
mov buf2d_h,eax
|
||||||
cmp buf2d_data,0
|
cmp buf2d_data,0
|
||||||
jne @f
|
jne @f
|
||||||
@ -897,7 +968,7 @@ proc but_open_file
|
|||||||
.end_2:
|
.end_2:
|
||||||
mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
|
mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
|
||||||
mov eax,[eax] ;eax -> ZBuffer
|
mov eax,[eax] ;eax -> ZBuffer
|
||||||
mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf
|
mov eax,[eax+ZBuffer.pbuf]
|
||||||
mov buf2d_data,eax
|
mov buf2d_data,eax
|
||||||
|
|
||||||
stdcall [buf2d_bit_blt], edi, 0,0, buf_i0 ;ª®¯¨à㥬 ¨§®¡à ¦¥¨¥ ¤«ï ¢®áâ ®¢«¥¨ï
|
stdcall [buf2d_bit_blt], edi, 0,0, buf_i0 ;ª®¯¨à㥬 ¨§®¡à ¦¥¨¥ ¤«ï ¢®áâ ®¢«¥¨ï
|
||||||
@ -1115,7 +1186,7 @@ but_about:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
calc db 0
|
calc db 0 ;0 - ¥ ¯¥à¥áç¨âë¢ âì ¡ãä¥à, 1 - ¯¥à¥áç¨â âì ¨ ®¡®¢¨âì ¡ãä¥à
|
||||||
view_b db 0 ;0 - ¨áå®¤ë© ¡ãä¥à, 1 - ¯à®á¬®âà १ã«ìâ â
|
view_b db 0 ;0 - ¨áå®¤ë© ¡ãä¥à, 1 - ¯à®á¬®âà १ã«ìâ â
|
||||||
trans_a db 0 ;0 - ¯à¥®¡à §®¢ âì ¯® § ¤ ®¬ã à §¬¥àã, 1 - ¯à¥®¡à §®¢ âì ¢¥áì ¡ãä¥à
|
trans_a db 0 ;0 - ¯à¥®¡à §®¢ âì ¯® § ¤ ®¬ã à §¬¥àã, 1 - ¯à¥®¡à §®¢ âì ¢¥áì ¡ãä¥à
|
||||||
|
|
||||||
@ -1557,8 +1628,7 @@ buf_ogl: dd 0,0
|
|||||||
|
|
||||||
align 16
|
align 16
|
||||||
i_end:
|
i_end:
|
||||||
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
|
ctx1 rb 28 ;sizeof.TinyGLContext = 28
|
||||||
;sizeof.TinyGLContext = 28
|
|
||||||
TexObj dd 0 ;¬ áᨢ 㪠§ ⥫¥© ⥪áâãàë (¢ ¤ ®¬ á«ãç ¥ 1 èâ.)
|
TexObj dd 0 ;¬ áᨢ 㪠§ ⥫¥© ⥪áâãàë (¢ ¤ ®¬ á«ãç ¥ 1 èâ.)
|
||||||
nav_x_min dd 0 ;¬¨. ª®®à¤. x ¤«ï ¢¨£ 樨
|
nav_x_min dd 0 ;¬¨. ª®®à¤. x ¤«ï ¢¨£ 樨
|
||||||
nav_y_min dd 0 ;¬¨. ª®®à¤. y ¤«ï ¢¨£ 樨
|
nav_y_min dd 0 ;¬¨. ª®®à¤. y ¤«ï ¢¨£ 樨
|
||||||
@ -1576,6 +1646,8 @@ mouse_down_y dd ?
|
|||||||
sel_act dd ? ;â®çª ¢ë¡à ï ¤«ï । ªâ¨à®¢ ¨ï á ª« ¢¨ âãàë
|
sel_act dd ? ;â®çª ¢ë¡à ï ¤«ï । ªâ¨à®¢ ¨ï á ª« ¢¨ âãàë
|
||||||
sel_pt rb 8*sizeof.point2d ;â®çª¨ ¤«ï ¢ë¡®à 4-å 㣫®¢
|
sel_pt rb 8*sizeof.point2d ;â®çª¨ ¤«ï ¢ë¡®à 4-å 㣫®¢
|
||||||
last_time dd 0
|
last_time dd 0
|
||||||
|
u_line_v dd 0 ;¢¥à⨪ «ì ï «¨¨ï
|
||||||
|
u_line_h dd 0 ;£®à¨§®â «ì ï «¨¨ï
|
||||||
txt_buf rb 8
|
txt_buf rb 8
|
||||||
procinfo process_information
|
procinfo process_information
|
||||||
sc system_colors
|
sc system_colors
|
||||||
|
Loading…
Reference in New Issue
Block a user