себе будет хранить массив значений пикселей, и может быть параметризован как размерностью (1D/2D/3D/Array), так и типом хранимых данных (как минимум, f32/Vec3/Vec4). Если делать все отдельными типами, то как-то слишком много пермутаций получается, и код структуры, внутри которой могут храниться произвольные текстуры, превращается в помойку. Думал про trait Texture с associated типом хранимого значения и методом sample(&self) -> PixelType, но трейты с разными associated типами нельзя хранить в одном контейнере, так что по сути, это то же самое, что и не связанные типы. Думал про енамы (по аналогии с DynamicImage из крейта image), но тогда в помойку превращается код, который читает из текстур, потому что надо все время матчиться. Подскажите, пожалуйста, как лучше такое оформить? Спасибо.
Накидай прототип на плейграунде
Хкт в расте нет, так что вполне возможно, что будет много бойлерплейта
Обсуждают сегодня