evseev53319 , намеком на проблемы с GPU это не является. Лечится это поднятием качества теней в настройках игры. Соответственно, поднятие качества сильно отразится на отзывчивости игры.
Gokilla , ты так долго ответа ждать будешь. Что самое интересное, твои действия сейчас немного напоминают попытку троллинга. :)
Я тебе советую найти все каналы по отдельности. Сперва найти красный, потом зеленый, потом - синий, альфа сама найдется. Когда ищешь канал - все остальные каналы в 255, так проще.
Есть подозрение, что ты вообще не с того места начинаешь читать цвета, в результате чего у тебя просто мешанина в каналах.
Михаил Усоцкий , упаковка каналов может быть любой. RGBA, BGRA, ARGB, ABGR. Еще может быть черезрядная и поканальная упаковка.
Зеленый цвет в центре доски имеет RGB значение: 4, 142, 4. Альфа, очевидно: 255.
После рендеринга в том же месте RGB уже такой: 142, 255, 4. Альфа, очевидно: 4.
Какие каналы где находятся - очевидно. Это действительно ARGB.
Gokilla , чтобы у тебя был RGBA, тебе надо поменять порядок каналов в момент вычитки картинки.
Дмитрий Иванов , мнеб не хотелось, откровенно говоря, быть автором такого ответа. :)
Сможешь подправить ссылку с меня на Adamos-а в своем ответе?
Кстати, советую еще решением отметить ответ Виталия, т.к. он более подходит в обобщенном смысле.
Дмитрий Иванов , а давай еще напишем причину такой необходимости. Обычно такие выкрутасы бывают нужны только в двух случаях: 1- когда есть проблемы с организацией класса; 2- когда хочется быть злобным буратиной и сильно испортить себе(или другим) жизнь.
Варианты решения вопроса есть, но чтобы с ними определиться, сперва надо понять его исподнюю.
ведь производительность упадет, по сравнению с обычными указателями
Для поддержки этого утверждения требуется детальное обоснование с приведением расчетов, разработкой методологии тестирования и доказательством через тестирование.
Иначе утверждение является голословным.
Артем , полиморфизм в плюсах делается так же. Но есть одно важное отличие.
В плюсах объекты могут храниться и передаваться по значению. В твоем Strategy[N] по своему значению будут лежать именно объекты типа Strategy, но не другого типа. Если хранить по ссылке или по указателю, то уже можно реализовать паттерн интерфейса.
Этот вопрос уже относится к самым базовым навыкам владения языком. С полиморфизмом, наследованием и виртуальностью тебе стоит разобраться самому.
Не рассмотрите вариант кратковременной платной консультации?
Точно не рассмотрю. :) Я вижу что времени потребуется очень много, а мое время само по себе дорого. Т.е. сумма выйдет неподъемная и того она не стоит.
Это базовый материал, он довольно легко осваивается в личном порядке. :)
Артем , ну да, мышление ты себе после PHP еще долго ломать будешь. :)
Но это если тебе хочется нормально писать на плюсах. А если не хочется, то с тонкостями плюсов лучше и не париться.
Strategy - это, я так понимаю, ты просто назвал сущность по имени паттерна? Не самая лучшая мысль, слово слишком абстрактное и ничего не отражает. Хотя, в целом, не суть.
А для чего тебе две активных стратегии в одно время? Почему не одна разединственная?
Артем , смотри, давай загоним весь этот код в спойлеры, он не так интересен, как описание твоего вопроса.
А следом давай более внятно распишем, для чего тебе эти стратегии нужны, зачем их сохранять в персистентную память и какой толк держать их в массиве.
Сейчас на твой вопрос не получится дать ответ. Понятность вопроса под большим сомнением.
shmelevka , основная загвоздка в том, что нет Jun/Mid/Chif C++ Developer, есть Jun/Mid/Chif Software Engineer.
Плюсы - это инструмент. Джун для работы на плюсах уже должен знать стандарт.
UE/Qt/и.т.д. - это тоже инструменты.
Дело в том, что знание инструментов никак не характеризует уровень профессионализма человека.
Все эти карты освоения - это странные штуки для узкозашоренных "специалистов".
Инженер решает задачи с помощью разных инструментов. Инструментом нужно уметь владеть. Знание документации инструмента никак не означает владение инструментом, это лишь базовая ступень на пути владения. Инструментом владеть мало, надо еще уметь выбирать инструмент. Теория выбора инструмента для решения задач - это тоже лишь малая часть пути к способности выбирать инструмент.
А основным инструментом для любого инженера всегда были расчеты.
Kalombyr , ты ведь понимаешь, какой набор из самых экстраординарных ошибок и самых замысловатых трудностей ты для себя откроешь после добавления подобного механизма?
Армен , буквально? Черную магию! :)
Это называется SFINAE.
Аргумент функции в третьем варианте - это зануленный по умолчанию массив из указателей на функцию, один из путей SFINAE.
В случае если этот массив имеет нулевую длину, вывод шаблона проваливается, но сама компиляция продолжится только если есть перегруженная функция, удовлетворяющая условиям вызова.
SFINAE сработает тогда, когда список параметров будет пустым, это оборвет вывод шаблона и оставит только один вариант для вызова mapClasses<U>().