Subversion Repositories Kolibri OS

Rev

Rev 910 | Rev 912 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 910 Rev 911
Line 53... Line 53...
53
;;
53
;;
54
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
54
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 55... Line 55...
55
 
55
 
Line 56... Line 56...
56
include 'macros.inc'
56
include 'macros.inc'
Line 57... Line 57...
57
 
57
 
Line 58... Line 58...
58
$Revision: 910 $
58
$Revision: 911 $
Line 4207... Line 4207...
4207
	add	dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.top]
4207
	add	dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.top]
4208
	rol	edx, 16
4208
	rol	edx, 16
4209
	add	dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.left]
4209
	add	dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.left]
4210
	rol	edx, 16
4210
	rol	edx, 16
4211
.forced:
4211
.forced:
-
 
4212
	cmp	esi, 1
-
 
4213
	jnz	@f
-
 
4214
	push	edi
-
 
4215
	mov	eax, [edi+4]
-
 
4216
	sub	eax, [edi]
-
 
4217
	push	eax
-
 
4218
	push	dword [edi]
-
 
4219
	push	0ffffff80h
-
 
4220
	mov	edi, esp
-
 
4221
	call	put_mono_image
-
 
4222
	add	esp, 12
-
 
4223
	pop	edi
-
 
4224
	ret
-
 
4225
@@:
-
 
4226
	cmp	esi, 4
-
 
4227
	jnz	@f
-
 
4228
	push	edi
-
 
4229
	push	0ffffff80h
-
 
4230
	mov	edi, esp
-
 
4231
	call	put_4bit_image
-
 
4232
	pop	eax
-
 
4233
	pop	edi
-
 
4234
	ret
-
 
4235
@@:
4212
	push	ebp esi ebp
4236
	push	ebp esi ebp
4213
	cmp	esi, 8
4237
	cmp	esi, 8
4214
	jnz	@f
4238
	jnz	@f
4215
	mov	ebp, putimage_get8bpp
4239
	mov	ebp, putimage_get8bpp
4216
	mov	esi, putimage_init8bpp
4240
	mov	esi, putimage_init8bpp
Line 4241... Line 4265...
4241
	jmp	sys_putimage_bpp
4265
	jmp	sys_putimage_bpp
4242
@@:
4266
@@:
4243
	pop	ebp esi ebp
4267
	pop	ebp esi ebp
4244
	ret
4268
	ret
Line -... Line 4269...
-
 
4269
 
-
 
4270
put_mono_image:
-
 
4271
	push	ebp esi ebp
-
 
4272
	mov	ebp, putimage_get1bpp
-
 
4273
	mov	esi, putimage_init1bpp
-
 
4274
	jmp	sys_putimage_bpp
-
 
4275
put_4bit_image:
-
 
4276
	push	ebp esi ebp
-
 
4277
	mov	ebp, putimage_get4bpp
-
 
4278
	mov	esi, putimage_init4bpp
-
 
4279
	jmp	sys_putimage_bpp
4245
 
4280
 
4246
putimage_init24bpp:
4281
putimage_init24bpp:
4247
	lea	eax, [eax*3]
4282
	lea	eax, [eax*3]
4248
putimage_init8bpp:
4283
putimage_init8bpp:
Line -... Line 4284...
-
 
4284
	ret
4249
	ret
4285
 
4250
 
4286
align 16
4251
putimage_get24bpp:
4287
putimage_get24bpp:
4252
	mov	eax, [esi]
4288
	mov	eax, [esi]
-
 
4289
	add	esi, 3
4253
	add	esi, 3
4290
	ret	4
4254
	ret	4
4291
align 16
4255
putimage_get8bpp:
4292
putimage_get8bpp:
4256
	movzx	eax, byte [esi]
4293
	movzx	eax, byte [esi]
4257
	push	edx
4294
	push	edx
4258
	mov	edx, [esp+8]
4295
	mov	edx, [esp+8]
4259
	mov	eax, [edx+eax*4]
4296
	mov	eax, [edx+eax*4]
4260
	pop	edx
4297
	pop	edx
Line -... Line 4298...
-
 
4298
	inc	esi
-
 
4299
	ret	4
-
 
4300
 
-
 
4301
putimage_init1bpp:
-
 
4302
	add	eax, ecx
-
 
4303
	push	ecx
-
 
4304
	add	eax, 7
-
 
4305
	add	ecx, 7
-
 
4306
	shr	eax, 3
-
 
4307
	shr	ecx, 3
-
 
4308
	sub	eax, ecx
-
 
4309
	pop	ecx
-
 
4310
	ret
-
 
4311
align 16
-
 
4312
putimage_get1bpp:
-
 
4313
	push	edx
-
 
4314
	mov	edx, [esp+8]
-
 
4315
	mov	al, [edx]
-
 
4316
	adc	al, al
-
 
4317
	jnz	@f
-
 
4318
	lodsb
-
 
4319
	adc	al, al
-
 
4320
@@:
-
 
4321
	mov	[edx], al
-
 
4322
	sbb	eax, eax
-
 
4323
	and	eax, [edx+8]
-
 
4324
	add	eax, [edx+4]
-
 
4325
	pop	edx
-
 
4326
	ret	4
-
 
4327
 
-
 
4328
putimage_init4bpp:
-
 
4329
	add	eax, ecx
-
 
4330
	push	ecx
-
 
4331
	add	ecx, 1
-
 
4332
	add	eax, 1
-
 
4333
	shr	ecx, 1
-
 
4334
	shr	eax, 1
-
 
4335
	sub	eax, ecx
-
 
4336
	pop	ecx
-
 
4337
	ret
-
 
4338
align 16
-
 
4339
putimage_get4bpp:
-
 
4340
	push	edx
-
 
4341
	mov	edx, [esp+8]
-
 
4342
	add	byte [edx], 80h
-
 
4343
	jc	@f
-
 
4344
	movzx	eax, byte [edx+1]
-
 
4345
	mov	edx, [edx+4]
-
 
4346
	and	eax, 0x0F
-
 
4347
	mov	eax, [edx+eax*4]
-
 
4348
	pop	edx
-
 
4349
	ret	4
-
 
4350
@@:
-
 
4351
	movzx	eax, byte [esi]
-
 
4352
	add	esi, 1
-
 
4353
	mov	[edx+1], al
-
 
4354
	shr	eax, 4
-
 
4355
	mov	edx, [edx+4]
-
 
4356
	mov	eax, [edx+eax*4]
4261
	inc	esi
4357
	pop	edx
4262
	ret	4
4358
	ret	4
4263
 
4359
 
-
 
4360
putimage_init32bpp:
4264
putimage_init32bpp:
4361
	shl	eax, 2
4265
	shl	eax, 2
4362
	ret
4266
	ret
4363
align 16
Line 4267... Line 4364...
4267
putimage_get32bpp:
4364
putimage_get32bpp:
-
 
4365
	lodsd
4268
	lodsd
4366
	ret	4
4269
	ret	4
4367
 
-
 
4368
putimage_init15bpp:
4270
 
4369
putimage_init16bpp:
4271
putimage_init15bpp:
4370
        add     eax, eax
4272
        add     eax, eax
4371
        ret
4273
        ret
4372
align 16
4274
putimage_get15bpp:
4373
putimage_get15bpp:
Line 4287... Line 4386...
4287
        or      eax, ecx
4386
        or      eax, ecx
4288
        or      eax, edx
4387
        or      eax, edx
4289
        pop     edx ecx
4388
        pop     edx ecx
4290
        ret     4
4389
        ret     4
Line 4291... Line -...
4291
 
-
 
4292
putimage_init16bpp:
-
 
4293
        add     eax, eax
4390
 
4294
        ret
4391
align 16
4295
putimage_get16bpp:
4392
putimage_get16bpp:
4296
; RRRRRGGGGGGBBBBB -> 00000000RRRRR000GGGGGG00BBBBB000
4393
; RRRRRGGGGGGBBBBB -> 00000000RRRRR000GGGGGG00BBBBB000
4297
        push    ecx edx
4394
        push    ecx edx
4298
        movzx   eax, word [esi]
4395
        movzx   eax, word [esi]