Clipping graphique
Clipping graphique
Bonsoir
Est-il possible de copier une zone graphique rectangulaire en mémoire, représentée par ses coordonnées et ses dimensions, afin de la restituer ensuite, suite par exemple à l'affichage d'un objet graphique de façon temporaire ?
Je suppose que dans PureBasic, comme dans certains autres langages, l'affichage d'une petite partie graphique est plus rapide que de de ré-afficher tout l'écran (ou la fenêtre)... j'ai vu quelques trucs dans mes recherches, mais pas clairs pour moi.
Est-il possible de copier une zone graphique rectangulaire en mémoire, représentée par ses coordonnées et ses dimensions, afin de la restituer ensuite, suite par exemple à l'affichage d'un objet graphique de façon temporaire ?
Je suppose que dans PureBasic, comme dans certains autres langages, l'affichage d'une petite partie graphique est plus rapide que de de ré-afficher tout l'écran (ou la fenêtre)... j'ai vu quelques trucs dans mes recherches, mais pas clairs pour moi.
Re: Clipping graphique
regarde du coté de
GrabDrawingImage()
GrabImage()
si j'ai bien compris ce que tu recherche
GrabDrawingImage()
GrabImage()
si j'ai bien compris ce que tu recherche
Re: Clipping graphique
Je vais regarder ça.
Merci de ta réponse.
Merci de ta réponse.
Re: Clipping graphique
note : Et si tu fais de la 2D, l'équivalent est GrabSprite()
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Clipping graphique
Ce serait plus ça effectivement, je sauvegarde ma partie d'écran, j'affiche la boite d'info, une fois terminé, j'affiche le sprite au même endroit.
J'étais du coup partie pour mettre mes pixels dans un tableau pour les mémoriser et les réafficher. Mais inutile de réinventer la roue.
Merci beaucoup
J'étais du coup partie pour mettre mes pixels dans un tableau pour les mémoriser et les réafficher. Mais inutile de réinventer la roue.
Merci beaucoup
Re: Clipping graphique
GrabDrawingImage() semble avoir un bug sur W10 DirectX. Pour l'utiliser sans bug, il faut provisoirement faire appel au sous-système opengl.
https://www.purebasic.fr/english/viewto ... =4&t=77209
Re: Clipping graphique
Merci de ta réponse, je vais essayer.
Il faut que je regarde au niveau l'openGL, j'ai tenté d'utiliser des script dans les exemples OpenGL, et je n'ai que des messages d'erreurs.
Je n'ai pas poussé pour le moment plus loin les investigations de ce côté par manque de temps.
Je n'ai pas la version enregistré de PureBasic, même si je compte l'acheté, est-ce lié ???
Encore merci pour ta réponse, je garde ça sous le coude.
Il faut que je regarde au niveau l'openGL, j'ai tenté d'utiliser des script dans les exemples OpenGL, et je n'ai que des messages d'erreurs.
Je n'ai pas poussé pour le moment plus loin les investigations de ce côté par manque de temps.
Je n'ai pas la version enregistré de PureBasic, même si je compte l'acheté, est-ce lié ???
Encore merci pour ta réponse, je garde ça sous le coude.
Re: Clipping graphique
Il y a un discernement à faire pour opengl.pasbel a écrit : ↑sam. 08/mai/2021 22:09 Merci de ta réponse, je vais essayer.
Il faut que je regarde au niveau l'openGL, j'ai tenté d'utiliser des script dans les exemples OpenGL, et je n'ai que des messages d'erreurs.
Je n'ai pas poussé pour le moment plus loin les investigations de ce côté par manque de temps.
Je n'ai pas la version enregistré de PureBasic, même si je compte l'acheté, est-ce lié ???
Encore merci pour ta réponse, je garde ça sous le coude.
Du plus simple au plus compliqué
1) utiliser le sous-système opengl. C'est transparent et ça ne change rien au langage à utiliser. C'est juste une option à rajouter dans le menu de l'éditeur.
Menu [Compiler]
Sous-menu [Options de compilation]
Saisie [Sous-système] : taper 'opengl' et cliquer [Ok]
Résultat : la compilation utilisera opengl au lieu de Microsoft DirectX pour afficher les graphiques accélérés.
La version démo de Purebasic autorise ça, et ça permet de ne pas voir GrabDrawingImage() buguer.
2) utiliser les fonctions opengl. Là, ce n'est plus dispo en démo sauf via la librairie Library (LoadLibrary() etc...) mais la syntaxe est lourde. En version licenciée, toutes les fonctions disponibles de l'OS sont directement exécutables juste en rajoutant un tiret '_' à la fin du nom.
Code : Tout sélectionner
JeSuisUneFonctionExterne_()
; Appelle la fonction JeSuisUneFonctionExterne si elle existe.
3) Il y a enfin les script OpenGL, pour les programmeurs chevronnés en OpenGL. C'est du langage C stocké dans des chaînes, et que certaines fonctions OpenGL (donc des fonctions externes) vont compiler et faire exécuter via le GPU (processeur graphique). Ça libère le CPU, vu que c'est la carte graphique qui s'en charge, et c'est spécifique au texturing : les images déformées en temps réel sur les faces 3D. Il n'y a pas d'exemple de script OpenGL dans la doc : seuls quelques rares tests d'utilisation sur le forum anglais. Les codes, pour des résultats rudimentaires sont très lourds, vu que du C apparait cloisonné entre des guillemets de chaîne, et qu'il faut l'interfacer (rajouter une routine pour transmettre les informations de PureBasic vers ce code en C). Et il n'y a pas de retour possible d'information : on transmet au GPU, et il exécute, sans pouvoir retouner de valeurs d'échecs ou de succès. C'est donc vraiment difficile à mettre en oeuvre, et à étudier.
Re: Clipping graphique
Cool, je pensais qu'il manquait un truc sur l'installation ou la configuration de ma carte graphique, après je ne m'inquiétais pas, je voulais juste voir l'affichage avec OpenGL.
Je compte acquérir la licence sous peu de toute façon. Pour l'instant je teste les fonctionnalités que j'aimerai avoir dans mon futur programme, ça me permet de prendre des repères.
Merci pour toutes ces infos.
Je compte acquérir la licence sous peu de toute façon. Pour l'instant je teste les fonctionnalités que j'aimerai avoir dans mon futur programme, ça me permet de prendre des repères.
Merci pour toutes ces infos.