Skvoznjak
> А тут какая-то невозможность найти свои файлы в консоли вылезает.
там выползает информация, что надо проверить проект и закомментировать строку, если проект подготовлен. )))
Mirrel
>там выползает информация, что надо проверить проект и закомментировать строку, если проект подготовлен. )))
И тут вспоминаем знаменитый афоризм про стену и транслит. А инглиш, это транслит в квадрате:)
Ты про падения на больших данных упоминал. Вполне возможно, что с отключенной проверкой на переполнение ты проспал в коде локальный зомбиапокалипсис. На сложных эмиттерах он случается. Но может и не только там. В файл zgl_particles_2d.pas добавил вывод отладочной инфы:
parCount := Round((Time - LastSecond) * (Params.Emission / 1000) - parCreated); writeln('-uuu-------------- ',parCreated,' ',parCount,' ',Particles); if Particles + parCount > EMITTER_MAX_PARTICLES Then parCount := EMITTER_MAX_PARTICLES - (Particles + parCount); writeln('-qqq-------------- ',parCreated,' ',parCount); parCreated := parCreated + parCount; for i := 0 to parCount - 1 do
Что тебе нравится в этом древнем коде? Лично мне, что в заумных формулах проверяется количество положительных частиц, а вот количество их зомбей никто не проверяет! А они на сложном эмиттере неплохо так плодятся:
-uuu-------------- 73 0 120 -qqq-------------- 73 0 -uuu-------------- -1571145137 1571145532 1015 -qqq-------------- -1571145137 -1571145523 -uuu-------------- 1 0 2 -qqq-------------- 1 0 -uuu-------------- 182 0 249 -qqq-------------- 182 0
А когда в лонгинт два раза запихивается по полтора миллиарда отрицательных частиц, то переменная трещит по швам, и только выключенная проверка до поры, до времени, спасает от звиздеца. Не разбирался, сколько зомбей надо оставить 0 или 500 миллионов, пока выбрал второе. Если здесь такая проверка, то и в других местах надо к проверкам на положительные величины добавить и проверки на отрицательные.
Skvoznjak, помечу, пока не вникал сильно что там происходит. Благодарю!
Творю эмулятор потихоньку. Получилось реализовать основу видеоадаптера. Технология полностью своя (пока подобных не видел ни где).
Исходный код пока не прилагаю (хотя есть здесь первоначальные зачатки, но в основном процессор эмулируется и там точно много ошибок даже в процессоре). Как минимум надо будет ещё выкладывать исходники ZenGL.
Очередное обновление ZenGL до версии 4.18. Ссылка.
Из основных изменений:
- Устранена утечка памяти для LCL/VCL приложений.
- Возвращены старые процедуры pr2d_Circle и pr2d_Ellipse. И "добавлены" новые pr2d_CircleEx и pr2d_EllipseEx - несут небольшое расширение для стандартных процедур, это возможность заливки разным цветом от центра к краям.
- Корректирован код для LightEngine2d.
- добавлены функции: u_ByteToHex, u_WordToHex, u_LWordToHex, u_ByteToBin, u_WordToBin и u_LWordToBin. В большинстве своём они нужны только для отладки.
- исправлены проблемы совместимости кода для OpenGL с кодом для OpenGL ES.
- добавлена процедура wnd_SetAutocenter - указывающая что дальшение изменения окна должны автоматически центрировать окно.
И прочие мелкие изменения.
Выпущена новая версия --> ZenGL 4.19. <--
Изменения произошли достаточно глобальные и возможно версия не стабильна. Потому, если что, используйте предыдущую версию.
Основные изменения:
- изменена работа с загрузкой файлов. Теперь за счёт флага можно указать, что путь указан глобальный. Необходимо для LCL/VCL приложений, где используются OpenDialog и что-нибудь подобное.
- частицы: добавлены процедура и функция для передачи координат излучателя. В дальнейшем могут быть изменение их работы.
- изменена работа рендера. Исключена вся функциональность glBegin, glEnd, glVertex и другие из функциональности ZenGL. Теперь всё работает посредством использования glDrawArrays - кроссплатформенно по умолчанию.
- изменена работа с цветом. Теперь основа для цвета это zglTColor (zglPColor), ранее было LongWord.
- добавлены расширенные функции для рисования линии, в них можно задавать начальный и конечный цвет.
- множественные изменения согласно изменений выше.
Просьба сообщать о всех проблемах работы с библиотекой! Очень сложно всё протестировать. По возможности проверил всё что возможно, но наверняка что-то упустил.