|
sdl2_impl 0.1.0
Vendor SDL2 2.32 : IGraphic2Module / IAudioModule
|
Une fenetre SDL et son renderer, implemente IWindow2. More...
#include <SdlWindow.hpp>


Public Member Functions | |
| SdlWindow (int32_t screenWidth, int32_t screenHeight, std::string title) | |
| ~SdlWindow () | |
| bool | isOpen () override |
| void | close () override |
| Vector2f | getPosition () override |
| void | setPosition (Vector2f position) override |
| Vector2f | getSize () override |
| void | setSize (Vector2f size) override |
| void | setFrameLimit (int32_t limit) override |
| void | setMouseVisibility (bool visible) override |
| Cache ou montre le pointeur SUR CETTE FENETRE. | |
| int32_t | getDelta () override |
| bool | pollEvent () override |
| Vide la file SDL une fois, puis rend l'etat de CETTE fenetre. | |
| void | eventClose () override |
| void | beginDraw () override |
| void | endDraw () override |
| void | drawPoly (graphic::IPolygon *polygon) override |
| void | drawSprite (graphic::ISprite *sprite) override |
| void | drawText (graphic::IText *text) override |
Friends | |
| class | SdlKeyboard |
| class | SdlMouse |
| class | SdlGamepad |
Une fenetre SDL et son renderer, implemente IWindow2.
SDL n'a PAS de file par fenetre : SDL_PollEvent vide une file unique pour tout le processus. Une borne et un jeu qui appelleraient chacun SDL_PollEvent se voleraient donc les evenements de l'autre, et le premier servi gagnerait.
D'ou pump() : UNE lecture de la file SDL, et chaque evenement est range dans la fenetre que son windowID designe. Ceux qui n'en ont pas - SDL_QUIT, la manette - vont a tout le monde. Chaque fenetre lit ensuite SA file, et personne ne prive personne.
Entre pollEvent() et endDraw(), toute lecture est idempotente : c'est la norme du contrat, celle qui laisse une borne et son invite lire la meme touche dans la meme frame.
|
inline |
|
inline |
|
inlineoverride |
|
inlineoverride |
|
inlineoverride |
|
inlineoverride |
|
inlineoverride |
|
inlineoverride |
|
inlineoverride |
|
inlineoverride |
|
inlineoverride |
Vide la file SDL une fois, puis rend l'etat de CETTE fenetre.
Rappele dans la meme frame, il trouve la file SDL vide, n'ajoute rien, et repond la meme chose.
|
inlineoverride |
|
inlineoverride |
Cache ou montre le pointeur SUR CETTE FENETRE.
SDL n'a pas de curseur par fenetre : ShowCursor agit sur le processus entier. Cacher le pointeur pour le jeu le cachait donc aussi sur la borne, la ou sfml - qui pose un curseur sur la fenetre - se comportait correctement.
On ne fait donc qu'ENREGISTRER le souhait ici. C'est pump() qui l'applique, et seulement celui de la fenetre que la souris survole : le pointeur disparait en entrant dans le jeu et revient en le quittant, ce qui est exactement ce qu'un curseur par fenetre donnerait.
|
inlineoverride |
|
inlineoverride |
|
friend |
|
friend |
|
friend |