Je suis en train de crée un petit éditeur de map pour un jeu que je crée en C/C++ , mais j'ai un probléme au niveau des chargements de chipsets ! Je ne peux ouvrir qu'un chipset ( image ) et je n'arrive pas à libérer la derniére image utilisé de la mémoire !
J'ai essayé d'utiliser freeImage() mais ca n'as pas l'air de marcher !
Voici le bout de code que j'utilise pour ouvrir un chipset ! Pour infos j'utilise UsePNGImageDecoder() et UseJPEGImageDecoder() .
Code : Tout sélectionner
; - Chargement des chipsets par clic sur le bouton charger chipset de la toolbar
ElseIf MenuID = #ToolBarChargerChipset
Chipset$ = OpenFileRequester("Choisissez un chipset à charger :","","Fichiers Chipsets|*.png;*.bmp;*.jpg",0)
If Chipset$
#position_scrolling = 0
case_chipset = LoadImage(#ChipsetPNG,Chipset$)
UseImage(#ChipsetPNG)
Dim image(10000)
l_image = ImageWidth()
h_image = ImageHeight()
cal_l_image = l_image
cal_h_image = h_image
If l_image >= 32 And h_image >= 32
Repeat
image(i) = GrabImage(#ChipsetPNG,#PB_Any, x, y,32,32)
UseImage(image(i))
OpenGadgetList(#AREACHIP)
ImageGadget(#PB_Any, x, y, 36, 36, UseImage(image(i)), #PB_Image_Border)
CloseGadgetList()
cal_chipset = i%5
If cal_chipset = 0
case_chipset_x = 0
case_chipset_y+36
Else
case_chipset_x+36
EndIf
cal_l_image-32
x+32
If cal_l_image = 0
cal_l_image = l_image
cal_h_image-32
x = 0
y+32
EndIf
i + 1
Until i = 1000
SendMessage_(GadgetID(#AREACHIP), #WM_VSCROLL, #SB_THUMBTRACK | (#position_scrolling << 16), 0)
EndIf
EndIf
Je m'explique car je sent que je m'explique assez mal

L'utilisateur veut ouvrir un chipset !
Il clic sur un menu "Ouvrir un chipset"
Un OpenFileRequester apparaît en lui disant de choisir son chipset .
Il le choisie et l'ouvre
Le chipset est placer dans le ScrollAreaGadget en case de 32 * 32
Il veut en ouvrir un autre car il s'est tromper !
Il reouvre un chipset
Et normalement ca devraît se mettre à la place de l'autre d'avant en case de 32 *32 comme l'autre mais en changeant de chipset quoi !
Mais la ca faît un gros bug de mon app vue que je libére pas l'ancienne image et je ne vois pas comment je peux la libérer !
J'ai faît un effort sur l'orthographe

@++