Bonjour,
j'utilise la librairie openCV pour convertir chaque frame en SDL_texture et l'afficher dans une fenêtre via un Renderer.
j'aimerai maintenant pouvoir gérer la transparence avec la vidéo comme avec une texture.
sans entrer dans les détail, mon problème est que pour gérer la transparence d'une texture on ne peux le faire que a partir d'une surface via SDL_SetColorKey et ensuite créer une texture a partir de cette surface.
lors de la création de la texture celle-ci est automatiquement en accès : SDL_TEXTUREACCESS_STATIC
mais pour convertir une frame de la vidéo en texture l’accès de la texture doit être SDL_TEXTUREACCESS_STREAMING sinon la copie est interdite.
pour l'instant a l'ouverture de la vidéo:
je crée une surface en fonction de la vidéo,
j'utilise SDL_SetColorKey pour fixer la couleur de transparence
a chaque frame a afficher:
je détruit la texture si elle existe déjà
je convertis la frame de la vidéo et la charge dans la surface,
je crée la texture avec SDL_CreateTextureFromSurface
cela fonctionne bien mais si je pouvais modifié l’accès de la structure en SDL_TEXTUREACCESS_STREAMING
je pourrais directement chargé la frame dans la texture sans devoir la détruire et la recréer a chaque frame.
avez vous une autre idée ?
Partager