NeoKat 1 Опубликовано: 22 августа, 2015 (изменено) Описание: Графическая библиотека для OC Требования: Thread API Функции: --Neo2D NeoX.Neo2D.Text(x, y, текст, цвет, [GPU]) --Рисует заданный текст на заданных координатах NeoX.Neo2D.Box(x, y, ширина, высота, цвет, [GPU]) --Рисует квадрат указанного размера указанного цвета на указанных координатах NeoX.Neo2D.Point(x, y, цвет, [GPU]) --Рисует точку указанного цвета на указанных координатах Ведётся работа над: NeoInput NeoNetwork В будущем: Neo3D NeoAudio Скачать: http://pastebin.com/WkFtif35pastebin get WkFtif35 /lib/NeoX.lua P.S.'ки: P.S. Пока он поддерживает только рисование и только в 2D Изменено 29 августа, 2015 пользователем NeoKat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 22 августа, 2015 Во первых: "фууу-ник украл у НЕО, плахой!!!!111!1!одинодинодиню!!!!". Во вторых: и где твой DX, в Китае? В третьих: СС нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NeoKat Автор темы 1 Опубликовано: 22 августа, 2015 (изменено) Во первых: "фууу-ник украл у НЕО, плахой!!!!111!1!одинодинодиню!!!!".Я у него никнейм не тырил У меня много никнеймов: EnderKat, CyanKat, TechKat, NeoKat, NeoMeow, MewKat, DarkKat, SpyKat Во вторых: и где твой DX, в Китае?Уже выложил В третьих: СС нет.Всмысле ? Изменено 22 августа, 2015 пользователем NeoKat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Ktlo 789 Опубликовано: 22 августа, 2015 Всмысле ? На этом сервере нет. Смысла данной либы нет, т.к. параллельная отрисовка у тебя всё равно не выйдет. Параллельность сможет сработать только при использовании функций, приостанавливающих действие каждого потока: coroutine.yield(), sleep(), os.pullEvent(), os.pullEventRaw() и т. д. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NeoKat Автор темы 1 Опубликовано: 23 августа, 2015 (изменено) На этом сервере нет. Смысла данной либы нет, т.к. параллельная отрисовка у тебя всё равно не выйдет. Параллельность сможет сработать только при использовании функций, приостанавливающих действие каждого потока: coroutine.yield(), sleep(), os.pullEvent(), os.pullEventRaw() и т. д. Параллельная отрисовка у меня уже вышла... Изменено 23 августа, 2015 пользователем NeoKat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 23 августа, 2015 Норм, это может быть полезно. Но лучше делай кросс-платформенно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 23 августа, 2015 А не лучше ли будет смотреть на изменения элементов графики и если что-то изменилось не отрисовывать все, а отрисовывать только то что изменилось? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NeoKat Автор темы 1 Опубликовано: 23 августа, 2015 А не лучше ли будет смотреть на изменения элементов графики и если что-то изменилось не отрисовывать все, а отрисовывать только то что изменилось? Он затирает стек после каждой отрисовки Норм, это может быть полезно. Но лучше делай кросс-платформенно. У меня всё плохо с OC, но я сейчас и пытаюсь сделать NeoX кросс-платформенным Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 25 августа, 2015 Что то я не до конца понял смысла библиотеки. Зачем засовывать данные в рендер-стек, что бы другой поток занимался отрисовкой? Чем обычный print хуже NeoX.Neo2D.Text? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 25 августа, 2015 Что то я не до конца понял смысла библиотеки. Зачем засовывать данные в рендер-стек, что бы другой поток занимался отрисовкой? Чем обычный print хуже NeoX.Neo2D.Text? Я когда игрался с параллельАПИ, то при попытке принтить что-то и рисовать где-то разными функциями в разных даже окнах наступает полный анал-карнавал. Кто и в какой микро-момент дернет принт, или gpu.set, или начнет перемещать курсор, или поменяет бэкграунд и прочее, одному криперу известно. На экране может наступить каша и инфа принтанется совершенно в неожиданном месте или поменяется форэграунд внезапно на полстроки))) Я всегда делал с параллелью только одну функцию, которая отвечает за фрейм отрисовку, а уже что-то там в фоне что угодно меняется, значения стрингов, вычисления какие-то, ивенты, сеть работает и прочее. Так же как и с файлами. Если полезет писать в один файл функция, а он открыт для чтения уже другой функцией, тоже наступает бяка. Видимо автор и решил все хранить в стеке, как у нас в принципе и хранятся ивенты в пулах и прочее, и уже конкретно кто-то один, какой-то один конкретный процесс, занимается рендером. По идее, при параллели нужно все запросы на чтение, запись, рисование, команды какие-то, инструкции от параллельных процессов и прочее кидать в стэк, а уже конкретный обработчик быстренько обрабатывает буфер и чистит его. Нужно максимально все процессы разнести друг от друга, чтобы они нигде и никогда (!) не перехлестывались ни при каких обстоятельствах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NeoKat Автор темы 1 Опубликовано: 29 августа, 2015 (изменено) Почти сделал версию для OC (Больше не буду пользоваться CC :3)P.S. В OC больше функционала, больше стек не понадобится (но по моему библиотека всё-равно хорошая :3)P.P.S. Проблема с рендером текста... (но ошибка мне не о чём не говорит) Проблема исправлена (но я ничего не сделал :3)P.P.P.S. Уже работаю над NeoX.Neo3D :3 Я когда игрался с параллельАПИ, то при попытке принтить что-то и рисовать где-то разными функциями в разных даже окнах наступает полный анал-карнавал. Кто и в какой микро-момент дернет принт, или gpu.set, или начнет перемещать курсор, или поменяет бэкграунд и прочее, одному криперу известно. На экране может наступить каша и инфа принтанется совершенно в неожиданном месте или поменяется форэграунд внезапно на полстроки))) По этой причине я не мог сделать для своей лаборатории (в одиночке конечно) GUI для "Центрального компьютера", поэтому я и начал делать эту библиотеку :3 Изменено 29 августа, 2015 пользователем NeoKat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах