Qual é o idioma comum para redimensionar um widget com uma imagem grande no Qt?

Isso pode parecer otimização prematura, mas quero entender o que acontece por dentro e como isso geralmente é programado usando a biblioteca Qt.

Imagine um aplicativo que produz constantemente uma imagem que preenche toda a janela, por exemplo um renderizador em tempo real 3D. (Um editor de fotos parece não ter esse problema, pois visa preservar o tamanho da imagem de saída, adicionando barras de rolagem quando a imagem não se encaixa.) Obviamente, a imagem de saída (buffer) deve ser redimensionada quando a janela é redimensionada .

Agora, no Qt, parece não haver maneira de redimensionar umQImage, em vez disso, é necessário desalocar a imagem atual e alocar uma nova. Uma imagem com resolução de 1280x1024 e 3 canais de 8 bits ocupa 3,75 Mb. Os eventos de redimensionamento chegam (eu testei isso) com muita frequência, ou seja, a cada poucos pixels do canto do movimento da janela (que está usando o Qt5 no X11 no Linux de 64 bits). Portanto, as perguntas:

Em uma CPU de desktop moderna (considerando toda a plataforma, ou seja, a RAM, o barramento e outros aspectos), há alguma carga significativa para realocar alguns Mb algumas vezes por segundo?No tipo de plataforma descrita acima, quando a realocação ocorre, ela ocorre no cache ou na RAM, se possível dizer?Qual é o idioma comum no Qt para lidar com esse tipo de problema? Há compactação de eventos, mas mesmo com a aplicação, os eventos chegam algumas vezes por segundo (consulte a introdução). Está usando um tiro únicoQTimer com um tempo limite de 100-200 ms para aguardar que os eventos de redimensionamento parem de fluir em uma boa idéia?

Familiarizado com a possível resposta de "a máquina vai lidar com isso muito bem", mas se eu a tratasse dessa maneira, consideraria-me um programador analfabeto. Independentemente de quão fortes sejam os hoje em dia, eu gostaria de entender como isso funciona.

questionAnswers(1)

yourAnswerToTheQuestion