Rev 5159 | Rev 5175 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5153 | IgorA | 1 | format MS COFF |
2 | public EXPORTS |
||
3 | section '.flat' code readable align 16 |
||
4 | |||
5 | include '../../../../../programs/proc32.inc' |
||
6 | include '../../../../../programs/macros.inc' |
||
7 | |||
8 | DEBUG equ 0 |
||
9 | |||
10 | include 'zgl.inc' |
||
11 | include 'zmath.asm' |
||
12 | include 'clip.asm' |
||
13 | include 'vertex.asm' |
||
14 | include 'api.asm' |
||
15 | include 'list.asm' |
||
16 | include 'init.asm' |
||
17 | include 'matrix.asm' |
||
18 | include 'texture.asm' |
||
19 | include 'misc.asm' |
||
20 | include 'clear.asm' |
||
21 | include 'light.asm' |
||
22 | include 'select.asm' |
||
23 | ;include 'get.asm' |
||
24 | ;include 'error.asm' |
||
25 | include 'zbuffer.asm' |
||
26 | include 'zline.asm' |
||
27 | ;include 'zdither.asm' |
||
28 | include 'ztriangle.asm' |
||
29 | ;include 'image_util.asm' |
||
30 | ;include 'msghandling.asm' |
||
31 | include 'arrays.asm' |
||
32 | |||
33 | include 'kosgl.asm' |
||
34 | |||
35 | if DEBUG |
||
36 | include 'info_fun_float.inc' |
||
37 | end if |
||
38 | |||
39 | ; *** |
||
40 | glVertex2d: ;(double ,double) |
||
41 | glVertex2fv: ;(float *) |
||
42 | glVertex2dv: ;(double *) |
||
43 | glVertex3d: ;(double ,double ,double) |
||
44 | glVertex3dv: ;(double *) |
||
45 | glVertex4d: ;(double ,double ,double, double ) |
||
46 | glVertex4fv: ;(float *) |
||
47 | glVertex4dv: ;(double *) |
||
48 | glColor3d: ;(double ,double ,double) |
||
49 | glColor3dv: ;(double *) |
||
50 | glColor4d: ;(double ,double ,double, double ) |
||
51 | glColor4dv: ;(double *) |
||
52 | glNormal3d: ;(double ,double ,double) |
||
53 | glNormal3dv: ;(double *) |
||
54 | glTexCoord1f: ;(float) |
||
55 | glTexCoord1d: ;(double) |
||
56 | glTexCoord1fv: ;(float *) |
||
57 | glTexCoord1dv: ;(double *) |
||
58 | glTexCoord2d: ;(double ,double) |
||
59 | glTexCoord2dv: ;(double *) |
||
60 | glTexCoord3f: ;(float ,float ,float) |
||
61 | glTexCoord3d: ;(double ,double ,double) |
||
62 | glTexCoord3fv: ;(float *) |
||
63 | glTexCoord3dv: ;(double *) |
||
64 | glTexCoord4d: ;(double ,double ,double, double ) |
||
65 | glTexCoord4fv: ;(float *) |
||
66 | glTexCoord4dv: ;(double *) |
||
67 | glGenTextures: ;(int n, unsigned int *textures) |
||
68 | glDeleteTextures: ;(int n, const unsigned int *textures) |
||
69 | glGetIntegerv: ;(int pname,int *params) |
||
70 | glGetFloatv: ;(int pname, float *v) |
||
71 | |||
72 | ; *** |
||
73 | glopLight: |
||
74 | |||
75 | if DEBUG |
||
76 | align 4 |
||
77 | txt_nl db 13,10,0 |
||
78 | txt_sp db ' ',0 |
||
5171 | IgorA | 79 | txt_op db 'Op_code',0 |
5153 | IgorA | 80 | txt_zp_sp db ', ',0 |
81 | m_1 db '(1)',13,10,0 |
||
82 | m_2 db '(2)',13,10,0 |
||
83 | m_3 db '(3)',13,10,0 |
||
84 | m_4 db '(4)',13,10,0 |
||
85 | m_5 db '(5)',13,10,0 |
||
86 | |||
87 | buf_param rb 80 |
||
88 | |||
89 | align 4 |
||
90 | proc str_n_cat uses eax ecx edi esi, str1:dword, str2:dword, n:dword |
||
91 | mov esi,dword[str2] |
||
92 | mov ecx,dword[n] |
||
93 | mov edi,dword[str1] |
||
94 | stdcall str_len,edi |
||
95 | add edi,eax |
||
96 | cld |
||
97 | repne movsb |
||
98 | mov byte[edi],0 |
||
99 | ret |
||
100 | endp |
||
101 | |||
102 | ;input: |
||
103 | ; eax - число |
||
104 | ; edi - буфер для строки |
||
105 | ; len - длинна буфера |
||
106 | ;output: |
||
107 | align 4 |
||
108 | proc convert_int_to_str, len:dword |
||
109 | pushad |
||
110 | mov esi,[len] |
||
111 | add esi,edi |
||
112 | dec esi |
||
113 | call .str |
||
114 | popad |
||
115 | ret |
||
116 | endp |
||
117 | |||
118 | align 4 |
||
119 | .str: |
||
120 | mov ecx,0x0a ;задается система счисления изменяются регистры ebx,eax,ecx,edx входные параметры eax - число |
||
121 | ;преревод числа в ASCII строку взодные данные ecx=система счисленя edi адрес куда записывать, будем строку, причем конец переменной |
||
122 | cmp eax,ecx ;сравнить если в eax меньше чем в ecx то перейти на @@-1 т.е. на pop eax |
||
123 | jb @f |
||
124 | xor edx,edx ;очистить edx |
||
125 | div ecx ;разделить - остаток в edx |
||
126 | push edx ;положить в стек |
||
127 | ;dec edi ;смещение необходимое для записи с конца строки |
||
128 | call .str ;перейти на саму себя т.е. вызвать саму себя и так до того момента пока в eax не станет меньше чем в ecx |
||
129 | pop eax |
||
130 | @@: ;cmp al,10 ;проверить не меньше ли значение в al чем 10 (для системы счисленя 10 данная команда - лишная)) |
||
131 | cmp edi,esi |
||
132 | jge @f |
||
133 | or al,0x30 ;данная команда короче чем две выше |
||
134 | stosb ;записать элемент из регистра al в ячеку памяти es:edi |
||
135 | mov byte[edi],0 ;в конец строки ставим 0, что-бы не вылазил мусор |
||
136 | @@: |
||
137 | ret ;пока в стеке храниться кол-во вызовов то столько раз мы и будем вызываться |
||
138 | end if |
||
139 | |||
140 | align 4 |
||
141 | f_kosgl_1 db 'kosglMakeCurrent',0 |
||
142 | err_0 db 'Error while initializing Z buffer',13,10,0 |
||
143 | f_zb_opn db ' ZB_open',0 |
||
144 | err_1 db 'gl_malloc(sizeof.ZBuffer)==0',13,10,0 |
||
145 | err_2 db 'gl_malloc(xsize*ysize*4)==0',13,10,0 |
||
146 | err_3 db 'bit mode not correct',13,10,0 |
||
147 | f_vp db ' glViewport',0 |
||
148 | err_4 db 'error while resizing display',13,10,0 |
||
149 | err_5 db 'size too small',13,10,0 |
||
150 | f_clipcode db ' gl_clipcode',0 |
||
151 | f_ttv db ' gl_transform_to_viewport',0 |
||
152 | f_vt db ' gl_vertex_transform',0 |
||
153 | f_ev db ' gl_eval_viewport',0 |
||
154 | f_zbz db ' ZB_line_z',0 |
||
155 | f_zb db ' ZB_line',0 |
||
156 | f_cl1 db ' ClipLine1',0 |
||
157 | f_m4m db 'gl_M4_Mul',0 |
||
158 | f_m4ml db 'gl_M4_MulLeft',0 |
||
5171 | IgorA | 159 | f_find_l db 'find_list',0 |
160 | f_alloc_l db 'alloc_list',0 |
||
161 | f_is_l db 'glIsList',0 |
||
162 | f_gen_l db 'glGenLists',0 |
||
163 | f_end_l db 'glEndList',0 |
||
5153 | IgorA | 164 | |
165 | align 4 |
||
166 | proc dbg_print, fun:dword, mes:dword |
||
167 | pushad |
||
168 | mov eax,63 |
||
169 | mov ebx,1 |
||
170 | |||
171 | mov esi,[fun] |
||
172 | @@: |
||
173 | mov cl,byte[esi] |
||
174 | int 0x40 |
||
175 | inc esi |
||
176 | cmp byte[esi],0 |
||
177 | jne @b |
||
178 | mov cl,':' |
||
179 | int 0x40 |
||
180 | mov cl,' ' |
||
181 | int 0x40 |
||
182 | mov esi,[mes] |
||
183 | @@: |
||
184 | mov cl,byte[esi] |
||
185 | int 0x40 |
||
186 | inc esi |
||
187 | cmp byte[esi],0 |
||
188 | jne @b |
||
189 | popad |
||
190 | ret |
||
191 | endp |
||
192 | |||
193 | align 16 |
||
194 | EXPORTS: |
||
195 | macro E_LIB n |
||
196 | { |
||
197 | dd sz_#n, n |
||
198 | } |
||
199 | include 'export.inc' |
||
200 | dd 0,0 |
||
201 | macro E_LIB n |
||
202 | { |
||
203 | sz_#n db `n,0 |
||
204 | } |
||
205 | include 'export.inc' |