Важная информация

User Tag List

Показано с 1 по 4 из 4

Тема: Про маску

  1. #1
    Activist Аватар для Soplik
    Регистрация
    02.04.2005
    Адрес
    Минск
    Сообщений
    378
    Благодарностей: 8
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Про маску

    Насколько можно ускориться,
    если заранее определить, какие знакоместа выводятся по маске,
    а какие просто так?
    Спасибо.
    Сферический ламер в вакууме

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,270
    Благодарностей: 190
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    смотря как определять.
    если заранее раздекрянчить выводилку спрайта, то можно ускорится сильно.

    а если выводить спрайт познакоместово, беря из таблички "по маске" или "не по маске" то может и тормознее станет.

    на самом деле имеет смысл если спрайты достаточно большие и мест "не по маске" больше чем "по маске"
    [target] [zemu] [js8x] [pouet 1, 2]
    KAY-1024, 5''FDD, 3''FDD, HDD

  4. #3
    Activist Аватар для Soplik
    Регистрация
    02.04.2005
    Адрес
    Минск
    Сообщений
    378
    Благодарностей: 8
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Файтинги, то есть.
    И гоночки - если бы под Спек писали гоночки.

    А, и попиксельно по горизонтали так не повыводишь.
    Сферический ламер в вакууме

  5. #4
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обычная выводилка:
    ;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

    просьба не пинать если где накосячил или не соптимизировал, писалось на лету. Общий принцип работы с битовой маской думаю понятен %)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •