Rev 5337 | Rev 5380 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5337 | Rev 5353 | ||
---|---|---|---|
Line 172... | Line 172... | ||
172 | imul esi,[idx] ;esi = i |
172 | imul esi,[idx] ;esi = i |
173 | shl esi,2 |
173 | shl esi,2 |
174 | add esi,[edx+offs_cont_color_array] ;esi = &context.color_array[i] |
174 | add esi,[edx+offs_cont_color_array] ;esi = &context.color_array[i] |
175 | mov edi,ebp |
175 | mov edi,ebp |
176 | sub edi,28 ;edi = &p[1] |
176 | sub edi,28 ;edi = &p[1] |
- | 177 | mov ebx,[esi+8] |
|
177 | movsd ;p[1].f = context.color_array[i] |
178 | mov [edi],ebx ;p[1].f = context.color_array[i+2] |
- | 179 | mov ebx,[esi+4] |
|
- | 180 | mov [edi+4],ebx ;p[2].f = context.color_array[i+1] |
|
178 | movsd |
181 | mov ebx,[esi] |
- | 182 | mov [edi+8],ebx ;p[3].f = context.color_array[i] |
|
179 | movsd |
183 | add edi,12 |
180 | cmp dword[size],3 |
184 | cmp dword[size],3 |
181 | jle .e1 |
185 | jle .e1 |
- | 186 | add esi,12 |
|
182 | movsd |
187 | movsd |
183 | sub edi,20 ;&p[0] |
- | |
184 | jmp .e2 |
188 | jmp .e2 |
185 | .e1: |
189 | .e1: |
186 | mov dword[edi],1.0 ;если задано 3 параметра, то 4-й ставим по умолчанию 1.0 |
190 | mov dword[edi],1.0 ;если задано 3 параметра, то 4-й ставим по умолчанию 1.0 |
187 | sub edi,16 ;&p[0] |
- | |
188 | .e2: |
191 | .e2: |
- | 192 | mov edi,ebp |
|
- | 193 | sub edi,32 ;edi = &p[0] |
|
189 | mov ebx,ebp |
194 | mov ebx,ebp |
190 | sub ebx,12 ;ebp-12 = &p[5] |
195 | sub ebx,12 ;ebp-12 = &p[5] |
191 | push ebx |
196 | push ebx |
192 | add ebx,4 ;ebp-8 = &p[6] |
197 | add ebx,4 ;ebp-8 = &p[6] |
193 | push ebx |
198 | push ebx |
Line 254... | Line 259... | ||
254 | movsd |
259 | movsd |
255 | jmp .e7 |
260 | jmp .e7 |
256 | .e6: |
261 | .e6: |
257 | mov dword[edi],0.0 ;если задано 2 параметра, то 3-й ставим по умолчанию 0.0 |
262 | mov dword[edi],0.0 ;если задано 2 параметра, то 3-й ставим по умолчанию 0.0 |
258 | add edi,4 |
263 | add edi,4 |
- | 264 | jmp .e8 ;и 4-й тоже ставим по умолчанию |
|
259 | .e7: |
265 | .e7: |
260 | cmp dword[size],3 |
266 | cmp dword[size],3 |
261 | jle .e8 |
267 | jle .e8 |
262 | movsd |
268 | movsd |
263 | sub edi,20 ;edi=&p[0] |
269 | sub edi,20 ;edi=&p[0] |
Line 300... | Line 306... | ||
300 | endp |
306 | endp |
Line 301... | Line 307... | ||
301 | 307 | ||
302 | align 4 |
308 | align 4 |
303 | proc glopDrawElements uses eax ebx edx, context:dword, param:dword |
309 | proc glopDrawElements uses eax ebx edx, context:dword, param:dword |
304 | locals |
310 | locals |
305 | p rd 5 |
311 | p rd 8 |
Line 306... | Line 312... | ||
306 | endl |
312 | endl |
307 | 313 | ||
308 | mov edx,[context] |
314 | mov edx,[context] |
Line 316... | Line 322... | ||
316 | ;unsigned short *indices_u16 = (unsigned short*)indices_u32; |
322 | ;unsigned short *indices_u16 = (unsigned short*)indices_u32; |
Line 317... | Line 323... | ||
317 | 323 | ||
318 | mov eax,[ebx+4] |
324 | mov eax,[ebx+4] |
319 | mov [p+4],eax ;p[1].i = param[1].i |
325 | mov [p+4],eax ;p[1].i = param[1].i |
320 | mov eax,ebp |
326 | mov eax,ebp |
321 | sub eax,20 ;=sizeof(dd)*5 |
327 | sub eax,32 ;=sizeof(dd)*8 |
Line 322... | Line 328... | ||
322 | stdcall glopBegin, edx,eax |
328 | stdcall glopBegin, edx,eax |
323 | 329 | ||
324 | ; for (int ii=0; ii |
330 | ; for (int ii=0; ii |
Line 358... | Line 364... | ||
358 | ; p[4].f = size > 3 ? c->vertex_array[i+3] : 1.0f; |
364 | ; p[4].f = size > 3 ? c->vertex_array[i+3] : 1.0f; |
359 | ; glopVertex(c, p); |
365 | ; glopVertex(c, p); |
360 | ; } |
366 | ; } |
361 | ; } |
367 | ; } |
362 | mov eax,ebp |
368 | mov eax,ebp |
363 | sub eax,20 ;=sizeof(dd)*5 |
369 | sub eax,32 ;=sizeof(dd)*8 |
364 | stdcall glopEnd, edx,eax |
370 | stdcall glopEnd, edx,eax |
365 | ret |
371 | ret |
366 | endp |
372 | endp |
Line 367... | Line 373... | ||
367 | 373 |