На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Быстрый вывод графики
    Решил сделать на Turbo Pascal (да, именно Borland Pascal 7.0) мини 3D - движок (программный, естессно). До этого уже ни один такой создал, правда на нормальных языках и средах (C++, DirectX). Цель создания на Pascal - спортивный интерес + показать некоторым, что можно из этого досовского старья выжать (с турбо-подхватом :)). Конечно, ограничение в 500 с хвостом КБ ОЗУ накладывает серьезный отчечаток, да и 16 цветов... Тем ни менее, всеб и ни чего, даже текстуру можно натянуть (про освещение лучше вообще не вспоминать :D). Да вот вывод пикселя через PutPixel уж больно медленный, получиться слайд-шоу с FPS < 1. Задача - наименьшими усилиями создать систему быстрого вывода пикселей. В идеале, конечно, это была б система, базирующаяся на graph.tpu режимах с возможностью линейной записью в видеопамять (построчно). Варианты с использованием ASM хуже, но на крайний случай подойдут. Знатоки Pascal, подскажите, как сие дело реализовать! Через Get/Put Image, или где-то подшаманить? Если можно, то с ссылками на примеры. Заранее спасибо.
      Может, поможет: Програмирование графики без модуля GRAPH (сообщение #121212)

      Добавлено
      А вообще, в книжке Немнюгина есть описание быстрого вывода.
        Да мне б наоборот, лучше б с GRAPH совместить, тут можно и шрифты выводить не парясь, и примитивы легко рисовать. Да и заморачиватья с прерываниями неохота. Может кто знает, в каком формате храниться GetImage/PutImage? Теоретически, можно былоб писать память в массиве, а потом его установить через PutImage.
          Цитата AlexanderV @
          Да мне б наоборот, лучше б с GRAPH совместить, тут можно и шрифты выводить не парясь, и примитивы легко рисовать.

          Согласен на 100%. Прочитать об GetImage можно по-моему с сайта в разделе исходников, т.е. sources.ru
            AlexanderV
            Люблю Borland Pascal 7.0
            Для быстрого вывода лучше всего использовать прямой вывод в видео память по адресу $A000:0
            address:=320*y+x
            Mem[$A000:address]:=color;
            Дальше только алгоритмы для быстрого вывода.

            Насчет ассемблера, можно обходиться без него но лучше оптимизировать часть выода на нем.
            Лучше всего для графики подходит режим 320*200*8бит
            Я вобще предпочитаю через ассемблер выставлять режим, можно и стандартыми средствами паскаля.
            asm
            mov ax,13h ; Графический режим
            int 10h
            end;

            asm
            mov ax,03h ; Текстовый
            int 10h
            end;


            Еще для того чтобы не было морганий нужно бы выводить графику сначало в буфер, а затем его копировать.
            move - достаточно быстро скопирует.
              Цитата AlexanderV @
              Может кто знает, в каком формате храниться GetImage/PutImage?

              Отсюда: Работа с картинками (сообщение #448892)
              ExpandedWrap disabled
                tBitmap    = Record {растровая картинка (стандартное представление BitMap в модуле Graph)}
                               xSize,              {горизонтальный размер (- 1)}
                               ySize :Word;        {вертикальный размер (- 1)}
                               data  :Array[0..0]  {цвета точек}
                                          Of Byte;
                             End;
                AlexanderV, поищи в инете либу Xlib. Она заточена под игровые 256-ти цветные видеорежимы(от 320x200 до 360x480), поддерживает мышь и вывод текста, имеет в своем составе функции для вывода полигонов, насколько помню даже по Guro, естественно подерживает многостраничность и split-screen. Есть версии как под Cи так и под паскаль. Написана на асме, и очень шустрая.
                Если не найдешь, пиши, вышлю.
                  Надо очень сильно постараться, чтобы НЕ найти XLib, тем более что лежит она на сайте Сурсов: http://pascal.sources.ru/graph/xlibp202.htm
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0268 ]   [ 15 queries used ]   [ Generated: 12.12.24, 22:34 GMT ]