Перейти к содержимому


Фотография

[OC] DoubleBuffering или мощная графическая библиотека

Буферизация Двойная Графика Окна Гуи Интерфейс

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 28

#1 Оффлайн   ECS

ECS

    Пользователь

  • Пользователи
  • PipPipPip
  • 92 сообщений
  • ГородСанкт-Петербург

Награды

4               

Отправлено 26 Октябрь 2015 - 04:26

*
Популярное сообщение!

4c72bfcbe8fbee5993bfd7a058a5f88a.png

 

Всем известно, что видеокарты в OpenComputers, мягко говоря, не торт. Чем больше вы обращаетесь к ней с различными командами, будь то установка цвета или символа, тем больше ваш компьютер будет тормозить при отрисовке. Собственно, пришла идея сделать оптимальный вариант отрисовки графики, используя так называемую двойную буферизацию, а также несколько алгоритмов ускорения местных GPU. Ну, а заодно и сделать несколько приятных функций, которых нет у стандартной OpenOS.

 

Собственно, надеюсь, эта библиотека найдет свое применение в ваших творениях и послужит вам на славу. В ближайшем времени планирую добавить еще несколько полезных функций, а также сделать защиту от дурака.

 

Команда для установки всех библиотек:

pastebin run vTM8nbSZ

После установки рекомендую запустить BufferDemo.lua для ознакомления с возможностями библиотеки.

 

Демо скорости работы:

Спойлер

 

Описание алгоритма:

Спойлер

 

Методы:

Спойлер
 

Примеры работы с библиотекой:

Спойлер

 

Исходники:

 

Библиотека ColorLib, необходимая для некоторых функций данной библиотеки:

https://github.com/I...ib/colorlib.lua

 

Библиотека Image, необходимая для использования метода image():

https://github.com/I...r/lib/image.lua

 

Основная библиотека:

https://github.com/I...leBuffering.lua

 

Программа-демонстратор возможностей буфера:

https://github.com/I...fferingDemo.lua


Сообщение отредактировал ECS: 26 Март 2016 - 20:27


#2 С мобильного устройства Онлайн   Zer0Galaxy

Zer0Galaxy

    The Lord of the Pings

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 100 сообщений

Награды

4                                 

Отправлено 26 Октябрь 2015 - 10:55

Проводилось ли какое либо тестирование на предмет эффективности предлагаемой библиотеки по сравнению со стандартным выводом на экран?

 

ECS? Такое ощущение, что давно знакомый человек сменил ник и аву.


Сообщение отредактировал Zer0Galaxy: 21 Март 2016 - 11:19


#3 Оффлайн   ECS

ECS

    Пользователь

  • Автор темы
  • Пользователи
  • PipPipPip
  • 92 сообщений
  • ГородСанкт-Петербург

Награды

4               

Отправлено 26 Октябрь 2015 - 11:04

Проводилось ли какое либо тестирование на предмет эффективности предлагаемой библиотеки по сравнению со стандартным выводом на экран?

 

Ясен красен производилась. Собственно, для этого и писалась сама либа - во славу прироста скорости. Отдельные замеры проводить дико лень, ибо смысла убеждать себя в очевидных вещах нет, однако вон тут на 3:45 быстродействие будет четко заметно:

 


Сообщение отредактировал ECS: 26 Октябрь 2015 - 11:09

  • Mecopy6ka и krovyaka это нравится

#4 Оффлайн   cyber01

cyber01

    Техническая поддержка

  • Администраторы
  • 840 сообщений

Награды

   2         

Отправлено 26 Октябрь 2015 - 11:29

@Zer0Galaxy, это EliteClubSessions 



#5 Оффлайн   ECS

ECS

    Пользователь

  • Автор темы
  • Пользователи
  • PipPipPip
  • 92 сообщений
  • ГородСанкт-Петербург

Награды

4               

Отправлено 27 Октябрь 2015 - 14:49

Если кому интересно, то добавил новый метод image, позволяющий вставлять изображения, созданные в фотошопе. Пикча прилагается:

 

4003a7bc65402317eba3600c758f4f7b.png


  • Alex, Fingercomp, Mecopy6ka и 2 другим это нравится

#6 Оффлайн   evgkul

evgkul

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 364 сообщений

Награды

     

Отправлено 27 Октябрь 2015 - 15:20

Вот теперь есть повод его использовать :)



#7 Оффлайн   ECS

ECS

    Пользователь

  • Автор темы
  • Пользователи
  • PipPipPip
  • 92 сообщений
  • ГородСанкт-Петербург

Награды

4               

Отправлено 28 Октябрь 2015 - 00:02

Добавил программку-демонстратор в установщик либы. Запускайте BufferDemo.lua, если надо.

 

383b39575822a142c67408a7a9de2d68.png


Сообщение отредактировал ECS: 28 Октябрь 2015 - 09:12

  • Alex, Fingercomp, Mecopy6ka и 3 другим это нравится

#8 Оффлайн   davial

davial

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 433 сообщений
  • ГородТроон в системе Канопуса.

Награды

                    

Отправлено 28 Октябрь 2015 - 13:37

Чёрт. До боли напоминает другое время и другие компы. Бейсик на ZX в 80-х - 90-х. :)


  • Saintmare это нравится

#9 Оффлайн   ECS

ECS

    Пользователь

  • Автор темы
  • Пользователи
  • PipPipPip
  • 92 сообщений
  • ГородСанкт-Петербург

Награды

4               

Отправлено 28 Октябрь 2015 - 14:55

Чёрт. До боли напоминает другое время и другие компы. Бейсик на ZX в 80-х - 90-х.

 

Кстати, алгоритм смешивания цветов (тени, прозрачность) мы сперли именно из QBasic IDE :D


  • Mecopy6ka и davial это нравится

#10 Оффлайн   mishaor2005

mishaor2005

    Почетный гость

  • Пользователи
  • 1 сообщений

Отправлено 26 Ноябрь 2015 - 20:52

Прекрасно! У меня вообще библиотека не устанавливается. Точнее, я не могу скачать файл Wallpapers.pic. А без него я не могу протестировать библиотеку файлом BufferDemo.lua. Помогите, пожалуйста.

 

P.S Если сто, скорость интернета 2 MB/s



#11 Оффлайн   ECS

ECS

    Пользователь

  • Автор темы
  • Пользователи
  • PipPipPip
  • 92 сообщений
  • ГородСанкт-Петербург

Награды

4               

Отправлено 21 Март 2016 - 11:02

Небольшое, но крайне емкое обновление:

  • Увеличена скорость отрисовки в 1.5 - 2 раза посредством добавления третьего промежуточного буфера
  • Уменьшено количество обращений к CPU, уменьшено число операций сложения/вычитания
  • Улучшена система конвертации индексов
  • Добавлено больше благодарных комментариев в коде, славящих Krutoy за помощь в разработке.

Ну, и, собственно, демонстрация скорости работы:

 


Сообщение отредактировал ECS: 22 Март 2016 - 00:11


#12 Оффлайн   SDV

SDV

    #!/usr/bin/env python

  • Пользователи
  • PipPipPipPipPipPipPip
  • 568 сообщений
  • ГородO.R.E.N.B.U.R.G.

Награды

     

Отправлено 21 Март 2016 - 16:19

Молодец, Krutoy!

Помог человеку и засветился на его канале :D

А либа просто шикарная!



#13 Оффлайн   qwertyMAN

qwertyMAN

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 257 сообщений
  • ГородCity17

Награды

                          

Отправлено 21 Март 2016 - 16:43

Теперь в каждом новом видео светится моя прога  :)


Сообщение отредактировал qwertyMAN: 21 Март 2016 - 16:43


#14 Оффлайн   ECS

ECS

    Пользователь

  • Автор темы
  • Пользователи
  • PipPipPip
  • 92 сообщений
  • ГородСанкт-Петербург

Награды

4               

Отправлено 26 Март 2016 - 20:22

В описание добавлены новые и не указанные ранее методы:

 

Спойлер

Сообщение отредактировал ECS: 26 Март 2016 - 20:27


#15 Оффлайн   unknown

unknown

    Пользователь

  • Пользователи
  • PipPipPip
  • 63 сообщений

Награды

     

Отправлено 29 Март 2016 - 19:44

В описание добавлены новые и не указанные ранее методы...
 


А кнопки и скроллбары возвращают что-нибудь? (Есть хендлер по клику? Текущее положение скроллбара? и т. д.)

#16 Оффлайн   Jet

Jet

    Пользователь

  • Пользователи
  • PipPipPip
  • 80 сообщений
  • ГородМосква

Отправлено 12 Май 2016 - 19:45

Идею для оптимизации надо? Или нет пределу совершенства.

GP2UiybfhpM.jpg

С символом "F" так вобще не 8 будет а 4.


Сообщение отредактировал Jet: 12 Май 2016 - 19:46


#17 Оффлайн   Seryoga

Seryoga

    Пользователь

  • Пользователи
  • PipPipPip
  • 88 сообщений
  • ГородSaint-Petersburg

Награды

     

Отправлено 12 Май 2016 - 20:11

Мне казалось, что у него так рисует:
b09bed391c0dc4502549de8f529d55d6.png



#18 Оффлайн   qwertyMAN

qwertyMAN

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 257 сообщений
  • ГородCity17

Награды

                          

Отправлено 12 Май 2016 - 20:12

Идею для оптимизации надо? Или нет пределу совершенства.

GP2UiybfhpM.jpg

С символом "F" так вобще не 8 будет а 4.

Ну вообще то ты зря отписывался сюда. ECS давно забанили перманентно и по идее надо бы все его посты посносить давно. А то как то не хорошо получается.

Забанили автора - должны и закрыть все его проги. Чтобы никто не мог ими пользоваться. Так будет правильно!



#19 Оффлайн   Jet

Jet

    Пользователь

  • Пользователи
  • PipPipPip
  • 80 сообщений
  • ГородМосква

Отправлено 12 Май 2016 - 20:50

Мне казалось, что у него так рисует:
b09bed391c0dc4502549de8f529d55d6.png

Ну рекурсивное заполнение буфера именно так выглядит. А рисование (само рисование) по строчкам, хотя можно отпимизировать.



#20 Оффлайн   Pofigist

Pofigist

    Пользователь

  • Пользователи
  • PipPipPip
  • 51 сообщений
  • ГородМосква

Отправлено 12 Май 2016 - 22:05

Ну вообще то ты зря отписывался сюда. ECS давно забанили перманентно и по идее надо бы все его посты посносить давно. А то как то не хорошо получается.

Забанили автора - должны и закрыть все его проги. Чтобы никто не мог ими пользоваться. Так будет правильно!

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


  • Krutoy и Saintmare это нравится

#21 Оффлайн   qwertyMAN

qwertyMAN

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 257 сообщений
  • ГородCity17

Награды

                          

Отправлено 13 Май 2016 - 08:40

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

Вообще то в то время так и было. Их убили же не просто так, а за то что теории их не нравились. Да и сколько книг сжигали религиозные деятели в надежде что наука не раскроет их шарлатанских высказываний.

И сравнивать нас с тем диким религиозным племенем, которое жило по правилу "не понимаешь - убей", как то неправильно. Мы же не убиваем музыкантов только потому что нам их музыка не нравится. Тот же Гуф спокойно себе поживает и врятли испытывает притеснения со стороны хейтеров в реальной жизни.

А вообще это переходит в какой то оффтоп. Хочешь поговорить, пиши в лс.


  • Fingercomp это нравится

#22 Оффлайн   Zucker

Zucker

    Читатель

  • Пользователи
  • PipPip
  • 48 сообщений

Отправлено 15 Май 2016 - 17:01

Вообще то в то время так и было. Их убили же не просто так, а за то что теории их не нравились. Да и сколько книг сжигали религиозные деятели в надежде что наука не раскроет их шарлатанских высказываний.

И сравнивать нас с тем диким религиозным племенем, которое жило по правилу "не понимаешь - убей", как то неправильно. Мы же не убиваем музыкантов только потому что нам их музыка не нравится. Тот же Гуф спокойно себе поживает и врятли испытывает притеснения со стороны хейтеров в реальной жизни.

А вообще это переходит в какой то оффтоп. Хочешь поговорить, пиши в лс.

В чем причина бана?


  • Saintmare это нравится

#23 Оффлайн   DarthWirthe

DarthWirthe

    Почетный гость

  • Пользователи
  • 9 сообщений

Награды

        

Отправлено 22 Июнь 2016 - 17:15

Крутая библиотека.

Экран 160х50

На нижнем видно фпс (новая версия игры)

0G2dk.png

 

IhlKA.png

Просто пользуюсь ей часто)

 

Кстати, максимальный возможный фпс - 19 (пустой экран)


Сообщение отредактировал DarthWirthe: 23 Июнь 2016 - 14:27


#24 Оффлайн   Asummonster

Asummonster

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 568 сообщений
  • ГородОдесса

Награды

                    

Отправлено 22 Июнь 2016 - 18:23

Крутая библиотека.

Экран 160х50

На нижнем видно фпс (новая версия игры)

0G2dk.png

 

IhlKA.png

Просто пользуюсь ей часто)

Ого, что это на экране? Посмотреть исходники можно?



#25 Оффлайн   qwertyMAN

qwertyMAN

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 257 сообщений
  • ГородCity17

Награды

                          

Отправлено 22 Июнь 2016 - 19:01

Круто конечно, но ОС изначально не планировался для создание на ней игр. И 2 FPS тому свидетельство.

Не вижу смысла делать полноценные сложные игры на ОС. Для этого есть луа движки. Вон например я что накатал на love2D: атака бактерий и относительный космос.



#26 Оффлайн   Doob

Doob

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 636 сообщений

Награды

                                   

Отправлено 22 Июнь 2016 - 19:26

Для экшон-шутеров OC не приспособлен, но какая-нибудь пиксельная казуальщина или продвинутые настолки работают прекрасно.

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


  • LeshaInc, davial и Kid это нравится

#27 Оффлайн   DarthWirthe

DarthWirthe

    Почетный гость

  • Пользователи
  • 9 сообщений

Награды

        

Отправлено 22 Июнь 2016 - 19:29

Ого, что это на экране? Посмотреть исходники можно?

Это порт моей старой игрули с CC на OC

Топик:

http://computercraft...ft-2d-rpg-game/

 

И еще OCEmu немного модифицированный мной


Сообщение отредактировал DarthWirthe: 22 Июнь 2016 - 19:38

  • Asummonster это нравится

#28 С мобильного устройства Онлайн   Zer0Galaxy

Zer0Galaxy

    The Lord of the Pings

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 100 сообщений

Награды

4                                 

Отправлено 23 Июнь 2016 - 10:57

И еще OCEmu немного модифицированный мной
Вау! Мне нравится этот эмулятор. Вот только почему то  основная файловая система readonly

#29 Оффлайн   qwertyMAN

qwertyMAN

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 257 сообщений
  • ГородCity17

Награды

                          

Отправлено 23 Июнь 2016 - 12:34

Для экшон-шутеров OC не приспособлен, но какая-нибудь пиксельная казуальщина или продвинутые настолки работают прекрасно.

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

Ну вот например, отличная игра, Сапёр!

Или Lava runner от electronic_steve в которой очень круто можно бегать убегать.

 

Кто то говорит что у меня много рекламы своих игр. А я говорю что не только своих =)

 

Если вы заметили, это сообщение номер 666. Совпадение? Не думаю.


Сообщение отредактировал qwertyMAN: 23 Июнь 2016 - 16:20

  • electronic_steve это нравится





Темы с аналогичным тегами Буферизация, Двойная, Графика, Окна, Гуи, Интерфейс

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Яндекс.Метрика