Subversion Repositories Kolibri OS

Rev

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