ZXNet эхоконференция «code.zx»
тема: Про маску
от: Slavik Tretiak
кому: All
дата: 22 Feb 2006
Hello, Soplik
смотря как определять.
если заранее раздекрянчить выводилку спрайта, то можно ускорится сильно.
а если выводить спрайт познакоместово, беря из таблички "по маске" или "не по
маске" то может и тормознее станет.
на самом деле имеет смысл если спрайты достаточно большие и мест "не по маске"
больше чем "по маске"
от: Виктор Иванов
кому: All
дата: 22 Feb 2006
Hello, All
Hасколько можно ускориться,
если заранее определить, какие знакоместа выводятся по маске,
а какие просто так?
Спасибо.
от: Виктор Иванов
кому: All
дата: 24 Feb 2006
Hello, Sinus
Файтинги, то есть.
И гоночки - если бы под Спек писали гоночки.
А, и попиксельно по горизонтали так не повыводишь.
от: Гаврилов Виталий
кому: All
дата: 24 Feb 2006
Hello, Soplik
Обычная выводилка:
;hl->de
spr:
ld c,height
push de
ld b,width
row:
call putzn
inc e
jr z,$+6
ld a,d
sub 8
ld d,a
djnz row
pop de
call d_de_zn
dec c
jr nz,spr
оптимизированная:
ld a,(hl)
inc hl
exx
ld c,a
ld b,8
exx
ld c,height
spr:
push de
ld b,width
row:
exx
rr c
djnz $+9
exx
ld a,(hl)
inc hl
exx
ld c,a
ld b,8
exx
call nc,put_zn
call c,put_zn_msk
inc e
jr z,$+6
ld a,d
sub 8
ld d,a
djnz row
pop de
call d_de_zn
dec c
jr nz,spr
put_zn:
dup 8
ld a,(hl)
ld (de),a
inc hl
inc d
edup
ret
put_zn_msk:
dup 8
ld a,(de)
and (hl)
inc hl
or (hl)
ld (de),a
inc hl
inc d
edup
ret
просьба не пинать если где накосячил или не соптимизировал, писалось на лету.
Общий принцип работы с битовой маской думаю понятен %)
|