Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: Alundra le Mai 22, 2013, 05:36:26 pm

Titre: Resize du framebuffer
Posté par: Alundra le Mai 22, 2013, 05:36:26 pm
Salut,
Dans Direct3D11 il faut resize les buffers quand la fenetre change de taille.
Dans sfml je vois pas de fonction pour resize le framebuffer de la fenêtre.
Si cela est fait automatiquement, je pourrais avoir des informations sur le fonctionnement ?
Si cela est fait automatiquement, est-ce une bonne méthode de gérer ca dans WM_SIZE pour D3D11 ?

Merci
Titre: Re : Resize du framebuffer
Posté par: Laurent le Mai 22, 2013, 06:19:28 pm
Tu veux savoir quoi exactement ? Y a vraiment rien de spécial à ce niveau, que ce soit côté utilisateur ou dans SFML.
Titre: Re : Resize du framebuffer
Posté par: Alundra le Mai 22, 2013, 10:05:26 pm
dans Direct3D11 faut faire :
Citer
m_SwapChain->ResizeBuffers( 1, Width, Height, DXGI_FORMAT_R8G8B8A8_UNORM, 0 );
dans le resize event, pour resize le backbuffer.
Ensuite faut recréer la texture de depth stencil view a la bonne taille.
Pour OpenGL comment ca se passe ? car je vois pas de fonction explicite dans SFML.
Si je demande ca c'est pour avoir une concordance entre les 2 systems.
Faut-il gérer le resize des targets dans WM_SIZE ?
Titre: Re : Resize du framebuffer
Posté par: Laurent le Mai 22, 2013, 11:27:06 pm
Comme je l'ai dit, y a rien à faire. Si c'était le cas ce serait documenté. De toute façon tu as deux exemples SFML/OpenGL à potasser pour t'en convaincre. Faut pas chercher compliqué, suis la documentation et les exemples et tout ira bien.
Titre: Re : Resize du framebuffer
Posté par: Alundra le Mai 23, 2013, 12:47:05 am
C'est marrant que OpenGL gère ca automatiquement alors que Direct3D11 faut le faire manuellement.
Je ne mettais pas en doute ta lib, elle fonctionne très bien, la preuve en image :
http://uppix.com/f-ScreenShot_29_12519d49a70012eb11.png
Je voulais juste des précision sur comment OpenGL gère le resize du framebuffer 0.
Si tout se fait automatiquement et que seul un glViewport est nécessaire alors la question est réglé.