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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: вывод буковочек шириной точечек

  1. #1
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Благодарностей: 2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию вывод буковочек шириной точечек

    Известно, что их RRA: RRA: RRA: RLCA, сдвигать нужно. И маску
    ещё. Потом XOR: AND: XOR. Всё это отнимает кучу тактов.
    Некоторые умники сдвигают весь шрифт целиком. 2048*4=8КБайт,
    а то и все 16. Жуть.

    Имеется решение в 512 байт: таблица, где для каждого возможного
    байта из шрифта будет храниться два байта сдвинутых на нужное расстояние. 4 инструкции в примерно 22 такта заменяют несколько
    операций сдвига. Экономия. Но, наверное, небольшая.

  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
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus
    типа "а" - точки одной ширины "б" - другой а "в" - третьей ?
    судя по всему, да %) пропорциональный шрифт типа.
    я, например, делал по-другому. в 7 регистров считываем данные, потом 7 процедур, скроллирующих сколько надо и насколько надо. примерно так же быстро, как и табличный метод, памяти кушает примерно столько же. проверял на опыте.

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

    По умолчанию

    Цитата Сообщение от Знахарь
    А классика жанра просто немного ускоряется и все Т.е. проверяем смещение, которое в А если оно >4 то дергаем такую же печать, но с прокруткой влево. Т.е. если смещение 6-7 то это +1 знакоместо и 2-1 ротации.
    угу. плюс если вывод идет строго по границе байта, выводить можно один байт, а не два (хвост). плюс оптимизация вывода двухбайтовых сдвиговых составляющих- первый байт по OR, следующий по PUT.
    мне алко както "нафукал" про мой баян из процедур и ветвления. попробовал таблицу- еще хуже стало! как по памяти, так и по быстродействию. так что....

  6. #5
    Activist
    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    405
    Благодарностей: 6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    PUT это имеется ввиду просто байтик вывел и всё ?

    М-да... Так что, выходит только классика ???

  7. #6
    Activist Аватар для captain cobalt
    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Благодарностей: 4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если у отрезанных букв много элементов повторяется, то почему бы при отрисовке одной буквы её наиболее частый элемент не положить в регистр и писать из регистра?...

  8. #7
    Activist
    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    405
    Благодарностей: 6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Увы, регистров тут фонарь... Это на амиге 16 штук Были попытки делать типа кеширование или умную печать и другие страшно умные слова... Т.е. при после ротации байты сохраняются и сохраняется код полосочки. Дальше все печатается и тп. а при следующем цикле проверяем, не повторяется ли эта полосочка. Для того, чтоб не ротировать, а просто взять сохраненное.

    Ну дык тоже в итоге медленнее

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

    По умолчанию

    Цитата Сообщение от Знахарь
    PUT это имеется ввиду просто байтик вывел и всё ?

    М-да... Так что, выходит только классика ???
    выходит так (с) Винни Пух %)

    ну я так делал у себя в QHTV. довольно шустро летает все. особенно если учесть, что сначала печать идет в буфер, а потом выводится на экран. притом что буфер еще предварительно очищается (не полностью правда)

  10. #9
    Activist Аватар для captain cobalt
    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Благодарностей: 4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Буквы -- это в некотором смысле чанки.

    В чанковых демах изображение сначала рендерится в чанковый буфер, а потом перерисовывается в пиксели на экран.

    Наиболее злые c2p способны отрисовать экран менее чем за 2 инта. Может быть некоторые идеи оттуда будут полезны?

  11. #10

    По умолчанию

    Цитата Сообщение от Знахарь
    Увы, регистров тут фонарь... Это на амиге 16 штук
    Таки у Z80 16 тоже регистров! А если индексы на половинки разбить то и вообще 18 =)
    --- Кто съел всю уху?

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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