Bonjour, je souhaite réaliser une classe Image et Texture qui respectent les conditions suivantes:
- Les textures utilisent une image.
- Lorsque l'image est modifiée, les textures qui utilisent l'image sont notifiées.
- Lorsque l'image est détruire, les textures doivent être notifiées.
Le soucis, c'est le troisième point. Pour les deux premiers j'ai utilisé le pattern Observer, et j'ai donc les classes suivantes:
- ImageEvent : interface pour les evenements générés par une image.
- ImageChangedEvent: Evenement pour indiquer que l'image a changé.
- ImageErasedEvent: Evenement pour indiquer que l'image a été supprimé.
- ImageListener: Interface qui représente un Observateur d'Image.
- Image: ma classe Image.
- Texture: ma classe Texture.
[Note: Texture hérite de ImageListener]
[Note2: ImageChangedEvent & ImageErasedEvent héritent de ImageEvent]
Donc mon soucis comme je le disais, c'est le troisième point, je n'arrive pas à trouver de méthode élégante qui fait que lorsque mon image est détruire, ma texture se place en état "sécurisé".
Ce que j'avais pensé, c'était que lorsque j'appellerai la fonction "maTexture.bind()", si jamais l'attribut "Image* image" (qui représente l'image associé) est à NULL, alors envoyer un tableau de pixel représentant une image 1x1 de couleur blanche à OpenGL. (Ne pas re-créer d'image donc)
Vous pensez que c'est une bonne approche ?
J'ai remarqué que la SFML avait ce système (enfin, ce que j'aimerai faire) avec la relation Image et Sprite. Quelqu'un pourrait m'en dire plus ? Merci d'avance à ceux qui prendront la peine de me répondre, et joyeuses fêtes de fin d'années
(J'avais déjà posé une question similaire mais j'avais arrêté de m'y pencher, donc désolé pour la nouvelle question ^^')
Partager