Мне нужно нарисовать динамическое наложение на QImage
. Составные части наложения определены в XML и разбираются на QHash<QString, QPicture>
, где QString - это имя (например, "перекрестие"), а QPicture
- это независимый от разрешения чертеж. Затем я рисую компоненты наложения по мере необходимости в позиции, определенной во время выполнения.
Пример: у меня в QHash 10 картинок, составляющих все возможные элементы в HUD. Во время определенного кадра видео мне нужно нарисовать 6 из них в разных местах на изображении. В следующем кадре что-то изменилось, и теперь мне нужно нарисовать только 4 из них, но 2 из этих позиций изменились.
Теперь к моему вопросу: если я пытаюсь сделать это быстро, я должен переопределить свой QHash как QHash<int, QPicture>
и перечислить ключи, чтобы нейтрализовать издержки, вызванные сравнением строк; или сравнения не окажут большого влияния на производительность? Я легко могу выполнить преобразование в целочисленные ключи, так как синтаксический анализатор XML и оверлейный компоновщик являются полностью отдельными классами; но я хотел бы использовать согласованную структуру данных в приложении.
Должен ли я преодолеть свое стремление к последовательности и повторному использованию для повышения производительности? Будет ли это иметь большое значение, если я это сделаю?