Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Посмотрите первое сообщение в этой ветке - там и текстом написано "файлы приложены" и файлы в аттаче лежат.
Аааааа! :)
Спасибо.
Ура, заработало !!!
Ренату:
Гы. У вас отрабатывается только "глобальный" (терминальный) альфа-канал.
// Кстати - с ошибкой. Чего-то там переполняется местами и цвет предыдущих слоёв искажается при некоторых значениях перекрывающего слоя. Гляньте на досуге. :)
А как-же собственный-канвасовский ?
--
Сделал предварительный (демо) вариант Canvas.mqh с отработкой обоих альфаканалов. Вставил обработку пока только в SetPixel и FillRect.
"Почувствуйте разницу" (с)
Разница на приведённом тесте, естественно, будет заметна если его замедлить, чтоб не мельтешил. :) Как-то вот так:
Вы используете сырой режим RAW без альфаканала.
Для включения альфаканала есть два типа формата цвета, включая режим нормализации, который как раз предназначен для борьбы с переполняющимися цветами.
Вы используете сырой режим RAW без альфаканала.
Для включения альфаканала есть два типа формата цвета, включая режим нормализации, который как раз предназначен для борьбы с переполняющимися цветами.
Угу. Это от недостатка документированности.
Поправил в скрипте. Теперь совсем хорошо.
"А всё таки она вертится". В смысле : два альфа-канала (терминальный и канвасовский) лучше чем один.
Добил инклюдник. Теперь все рисовальные функции выводят с учётом обоих альфа-каналов.
Исходник в прицепе. // При скачивании, удалить у инклудника автоматически добавленный постфикс "_1"
Кстати, вот именно в этом случае Update() оказалась совсем не лимитирующей скорость. Наверно, потому, что тут больно много MathRand(), да и примитивы сложные.
:)
Все рэндомы меркнут на фоне обработки альфа-канала для каждого пиксела. По хорошему это всё надо делать на SSExx :)
Но и даже так скорость приличная, даже мультики можно городить :)
А альфа-канал надо переписывать. Не нравится мне. На скорость это практически не повлияет, только качество.
Во первых надо разделить альфа каналы. Терминальный задавать для канваса целиком при создании. А родной канвасовский уже обсчитывать индивидуально.
Кстати, вот именно в этом случае Update() оказалась совсем не лимитирующей скорость. Наверно, потому, что тут больно много MathRand(), да и примитивы сложные.
Rand вообще ничего не стоят, а вот Update - самое дорогое, так как это отрисовка всего чарта со всеми объектами, условиями отображения всех торговых уровней и тд.
Кстати, альфаканал отрисовывается через функцию AlphaBlend, которая хорошо ускоряется с помощью видеокарты.
Если видеосистема слабая как у слабых/древних ноутбуков, то простой ChartRedraw будет сильно тормозить.
А почему бы не ввести в ChartRedraw() параметр, специфицирующий именно то, что надо обновлять?
Нельзя выбрать что обновлять - работа идет на одном полотне, объекты многократно перекрываются и их может быть пара сотен тысяч. Не говоря уже о частичной прозрачности некоторых объектов.
Поэтому обновления требует все окно.