Comment copier le buffer vidéo dans un sprite?
-
- Messages : 333
- Inscription : sam. 25/juin/2005 11:18
- Localisation : Laon (02)
- Contact :
Comment copier le buffer vidéo dans un sprite?
Alor voila je voudrais savoir comment copier le buffer vidéo dans un sprite (ou une image) car je chercher un commande comme BackBuffer() comme dans Blitz3D mais j'ai pas trouver alor si quelqu'un a la réponse sa m'arangerais.
THX d'avance
THX d'avance
-
- Messages : 333
- Inscription : sam. 25/juin/2005 11:18
- Localisation : Laon (02)
- Contact :
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Bah avant chaque flipBuffer(), tu sauvegarde le sprite. et tu le réaffiche deux boucles après, et tu rajoute par dessus ce que tu veux ...
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
en prenant une "photo"
rien ne t'empeche de copier le sprite dans une image buffer
rien ne t'empeche de copier le sprite dans une image buffer

; Code par DRAC !
Procedure CopySpriteToImage(Sprite, ImageID )
Hdc= StartDrawing ( SpriteOutput (Sprite))
bmp.BITMAP\bmWidth= SpriteWidth (Sprite)
bmp\bmHeight= SpriteHeight (Sprite)
bmp\bmPlanes=1
bmp\bmBitsPixel= GetDeviceCaps_ (Hdc, #BITSPIXEL )
bmp\bmBits= DrawingBuffer ()
bmp\bmWidthBytes= DrawingBufferPitch ()
hBmp= CreateBitmapIndirect_ (bmp)
StopDrawing ()
UseImage ( ImageID )
StartDrawing ( ImageOutput ())
DrawImage (hBmp,0,0)
StopDrawing ()
DeleteObject_ (hBmp)
EndProcedure
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Oula
Juste avec un :
ca suffit pas ??
Juste avec un :
Code : Tout sélectionner
grabiteSprite(#Pb_Any, 0, 0, ScreenWidth(), ScreenHeight())
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 333
- Inscription : sam. 25/juin/2005 11:18
- Localisation : Laon (02)
- Contact :
- Mindphazer
- Messages : 694
- Inscription : mer. 24/août/2005 10:42
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
@CameleonTH :
as tu un code de tes réussites, cela m'interesserait vivement !
as tu un code de tes réussites, cela m'interesserait vivement !
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
-
- Messages : 333
- Inscription : sam. 25/juin/2005 11:18
- Localisation : Laon (02)
- Contact :
Tient j'ai penser a toi ! en regardant sur Purearea je suis tombé sur un truc de BackBuffer... je me demande si ce n'est pas ça que tu voulais.
Voilà le lien:
http://www.purearea.net/pb/CodeArchiv/G ... ndering.pb
Voilà le lien:
http://www.purearea.net/pb/CodeArchiv/G ... ndering.pb
Je viens de jeter un oeil sur ce truc.
C'est pas vraiment cela.
Mon objectif est en faite de faire une capture du bureau.
Cela sans passer par PrintEcran. En gros recréer une nouvelle fonction printscreen.
Mais je pense etre sur la bonne voix
GetDesktopWindow
GetDC
BitBlt
ReleaseDC
je pense que ces api sont la clé.
Des que je trouve, je poste.
C'est pas vraiment cela.
Mon objectif est en faite de faire une capture du bureau.
Cela sans passer par PrintEcran. En gros recréer une nouvelle fonction printscreen.
Mais je pense etre sur la bonne voix
GetDesktopWindow
GetDC
BitBlt
ReleaseDC
je pense que ces api sont la clé.
Des que je trouve, je poste.
Une procédure qui date un peu, je ne l'ai pas tester avec la V4.00.
Et pour les dimensions de la résolution de l'écran :
Si ça peut aider quelqu'un
A+
Guimauve
Code : Tout sélectionner
Procedure ScreenShots(ImageID.l, Screenshot$, ScreenW.w, ScreenH.w)
; On capture les informations de l'écran actuelle
srcDC = CreateDC_("DISPLAY", "", "", dm.DEVMODE)
trgDC = CreateCompatibleDC_(srcDC)
BMPHandle.l = CreateCompatibleBitmap_(srcDC, ScreenW, ScreenH)
SelectObject_(trgDC, BMPHandle)
BitBlt_(trgDC, 0, 0, ScreenW, ScreenH, srcDC, 0,0, #SRCCOPY)
DeleteDC_(trgDC)
ReleaseDC_(BMPHandle, srcDC)
; On dessine l'image
CreateImage(ImageID, ScreenW, ScreenH)
StartDrawing(ImageOutput(ImageID))
DrawImage(BMPHandle, 0, 0)
StopDrawing()
SaveImage(ImageID, Screenshot$)
EndProcedure
Code : Tout sélectionner
ScreenW = GetSystemMetrics_(#SM_CXSCREEN)
ScreenH = GetSystemMetrics_(#SM_CYSCREEN)
A+
Guimauve