ECS 1 903 Опубликовано: 26 октября, 2015 (изменено) Всем известно, что видеокарты в OpenComputers, мягко говоря, не торт. Чем больше вы обращаетесь к ее методам, будь то установка цвета или символа, тем больше ваш компьютер будет тормозить при отрисовке. Поэтому ко мне пришла идея реализовать так называемую двойную буферизацию, а также несколько алгоритмов ускорения местных GPU. Подробная иллюстрированная документация, описание структуры, способы установки и несколько практических примеров доступны по ссылке: https://github.com/IgorTimofeev/DoubleBuffering Изменено 18 мая, 2018 пользователем ECS 20 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 26 октября, 2015 (изменено) Проводилось ли какое либо тестирование на предмет эффективности предлагаемой библиотеки по сравнению со стандартным выводом на экран? ECS? Такое ощущение, что давно знакомый человек сменил ник и аву. Изменено 21 марта, 2016 пользователем Zer0Galaxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 903 Опубликовано: 26 октября, 2015 (изменено) Проводилось ли какое либо тестирование на предмет эффективности предлагаемой библиотеки по сравнению со стандартным выводом на экран? Ясен красен производилась. Собственно, для этого и писалась сама либа - во славу прироста скорости. Отдельные замеры проводить дико лень, ибо смысла убеждать себя в очевидных вещах нет, однако вон тут на 3:45 быстродействие будет четко заметно: http://www.youtube.com/watch?v=U4VbTfhZDJc Изменено 26 октября, 2015 пользователем ECS 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
cyber01 1 704 Опубликовано: 26 октября, 2015 @@Zer0Galaxy, это EliteClubSessions Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 903 Опубликовано: 27 октября, 2015 Если кому интересно, то добавил новый метод image, позволяющий вставлять изображения, созданные в фотошопе. Пикча прилагается: 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 27 октября, 2015 Вот теперь есть повод его использовать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 903 Опубликовано: 27 октября, 2015 (изменено) Добавил программку-демонстратор в установщик либы. Запускайте BufferDemo.lua, если надо. Изменено 28 октября, 2015 пользователем ECS 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 28 октября, 2015 Чёрт. До боли напоминает другое время и другие компы. Бейсик на ZX в 80-х - 90-х. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 903 Опубликовано: 28 октября, 2015 Чёрт. До боли напоминает другое время и другие компы. Бейсик на ZX в 80-х - 90-х. Кстати, алгоритм смешивания цветов (тени, прозрачность) мы сперли именно из QBasic IDE 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 903 Опубликовано: 21 марта, 2016 (изменено) Небольшое, но крайне емкое обновление: Увеличена скорость отрисовки в 1.5 - 2 раза посредством добавления третьего промежуточного буфера Уменьшено количество обращений к CPU, уменьшено число операций сложения/вычитания Улучшена система конвертации индексов Добавлено больше благодарных комментариев в коде, славящих @Krutoy за помощь в разработке. Ну, и, собственно, демонстрация скорости работы: http://www.youtube.com/watch?v=HrIA9kMjQvg Изменено 21 марта, 2016 пользователем ECS 7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SDV 784 Опубликовано: 21 марта, 2016 Молодец, @Krutoy! Помог человеку и засветился на его канале А либа просто шикарная! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 21 марта, 2016 (изменено) Теперь в каждом новом видео светится моя прога Изменено 21 марта, 2016 пользователем qwertyMAN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS Автор темы 1 903 Опубликовано: 26 марта, 2016 (изменено) В описание добавлены новые и не указанные ранее методы: buffer.start( ) Данный метод инициализирует библиотеку, создавая массивы экрана с текущим разрешением, установленным видеокартой. По умолчанию он вызывается при запуске библиотеки, однако вы можете вызывать его в любое время, к примеру, после изменения размеров экрана. buffer.setDrawLimit( int x, int y, int ширина, int высота ) Устанавливает ограничивающую зону, вне которой отрисовка производиться не будет. Очень полезно при создании оконных интерфейсов, где информация не должна выходить за указанные границы. buffer.resetDrawLimit( ) Убирает ограничивающую зону, если она была установлена ранее. buffer.clear( int цвет ) Заполняет экран указанным цветом, вызывает метод square(). Функция сделана исключительно для удобства. buffer.button( int x, int y, int ширина, int высота, int цвет кнопки, int цвет текста кнопки, string текст ): table координаты кнопки Рисует на экране кнопку, автоматически размещая указанный текст по ее центру. Возвращает координаты начала и конца кнопки в массиве вида { x, y, x2, y2 } buffer.adaptiveButton( int x, int y, int отступ по ширине, int отступ по высоте, int цвет кнопки, int цвет текста кнопки, string текст ): table координаты кнопки Рисует на экране кнопку, автоматически рассчитывая ее размеры в зависимости от указанных отступов и длины текста. Возвращает координаты начала и конца кнопки в массиве вида { x, y, x2, y2 } buffer.scrollBar( int x, int y, int ширина, int высота, int количество элементов, int текущий элемент, int цвет фона, int цвет пимпочки ) Рисует на экране вертикальную полосу прокрутки. Под количеством элементов подразумевается, к примеру, количество строк в файле, а под текущим элементом текущая строка, с которой идет отображение файла. buffer.horizontalScrollBar( int x, int y, int ширина, int количество элементов, int текущий элемент, int цвет фона, int цвет пимпочки ) Аналогично вертикальному скроллбару, однако высоту указывать уже нельзя, скроллбар рисуется псевдографикой. Изменено 26 марта, 2016 пользователем ECS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
unknown 23 Опубликовано: 29 марта, 2016 В описание добавлены новые и не указанные ранее методы... А кнопки и скроллбары возвращают что-нибудь? (Есть хендлер по клику? Текущее положение скроллбара? и т. д.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Jet 30 Опубликовано: 12 мая, 2016 (изменено) Идею для оптимизации надо? Или нет пределу совершенства. С символом "F" так вобще не 8 будет а 4. Изменено 12 мая, 2016 пользователем Jet Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Seryoga 184 Опубликовано: 12 мая, 2016 Мне казалось, что у него так рисует: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Jet 30 Опубликовано: 12 мая, 2016 Мне казалось, что у него так рисует: Ну рекурсивное заполнение буфера именно так выглядит. А рисование (само рисование) по строчкам, хотя можно отпимизировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
DarthWirthe 61 Опубликовано: 22 июня, 2016 (изменено) Крутая библиотека. Экран 160х50 На нижнем видно фпс (новая версия игры) Просто пользуюсь ей часто) Кстати, максимальный возможный фпс - 19 (пустой экран) Изменено 23 июня, 2016 пользователем DarthWirthe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asummonster 592 Опубликовано: 22 июня, 2016 (изменено) На нижнем видно фпс (новая версия игры)Ого, что это на экране? Посмотреть исходники можно? Изменено 16 сентября, 2018 пользователем eu_tomat длинная цитата Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 22 июня, 2016 Круто конечно, но ОС изначально не планировался для создание на ней игр. И 2 FPS тому свидетельство. Не вижу смысла делать полноценные сложные игры на ОС. Для этого есть луа движки. Вон например я что накатал на love2D: атака бактерий и относительный космос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах