Comment puis-je redimensionner texture existante pièces jointes à mes framebuffer?

Quand je redimensionner ma fenêtre, j'ai besoin de redimensionner mes textures qui sont attachés à mon framebuffer. J'ai essayé d'appeler glTexStorage2D encore une fois, avec différents paramètres de taille. Cependant cela ne fonctionne pas.

Comment puis-je redimensionner les textures attaché à mon framebuffer? (Y compris la profondeur de l'attachement)

MODIFIER

Code que j'ai essayé:

glBindTexture(m_target, m_name);
glTexStorage2D(m_target, 1, m_format, m_width, m_height);
glBindTexture(m_target, 0);

où m_name, m_target et m_format sont sauvés de la texture originale et m_width et m_height sont les nouvelles dimensions.

EDIT2

S'il vous plaît dites-moi pourquoi cela a été downvoted afin que je puisse corriger la question.

EDIT3

Ici, quelqu'un d'autre avait le même problème.

J'ai trouvé que la texture était rendu correctement à la FBO, mais qu'il a été affichée à la bonne taille. C'était comme si la première fois, la texture a été envoyé à la valeur par défaut framebuffer la taille de la texture a été fixé de façon permanente, et puis quand le redimensionnement de la texture a été envoyé il était traitée comme si elle était de la taille d'origine. Par exemple, si la première texture était 100x100 et la deuxième texture était 50x50 alors la totalité de la texture serait affiché dans le coin inférieur gauche de l'écran. A l'inverse, si la texture originale a été 50x50 et la nouvelle texture 100x100 alors le résultat serait le bas gauche de l'image affichée sur l'écran entier.

Cependant, il utilise un shader pour résoudre ce problème. Ce n'est pas la façon dont je veux faire. Il y a une autre solution, non?

Vous devrez re-créer la texture de la poignée.

OriginalL'auteur gartenriese | 2014-04-29