blitz3d bug
Blitz3D Forums/Blitz3D Programming/blitz3d bug
| ||
hello! i am actually working on a gui, which loads following image: this code doesn't work...i get a memory acces violation in "loadanimimage" app\Img_TabPage = LoadAnimImage("TabPage.png", 4, app\TabPage_Height, 0, 15): MaskImage app\Img_TabPage, 255, 0, 255 but if i replace this with: FreeImage LoadImage("TabPage.png") app\Img_TabPage = LoadAnimImage("TabPage.png", 4, app\TabPage_Height, 0, 15): MaskImage app\Img_TabPage, 255, 0, 255 everything works!?! with one image, it works without the freeimage loadimage("...") and with the other image it works, but both images are THE SAME! |
| ||
are you sure app\TabPage_Height is non-zero? and you should test if loadanimimage() succeeded, before calling maskimage... If app\Img_TabPage <> 0 Then MaskImage app\Img_TabPage, 255, 0, 255 |
| ||
i wouldn't make the height variable at all. If the height remains static always, then i would just enter a value for the height instead of a variable |
| ||
FreeImage is not used like that - (FreeImage LoadImage("TabPage.png")) You need to do FreeImage app\Img_TabPage, if app\Img_TabPage is > 0. |
| ||
app\TabPage_Height = XGui_ImageHeight2("TabPage.png") Function XGui_ImageHeight2(path$) img = LoadImage(path$) If img = 0 Then RuntimeError "Image " + path$ + " not found." h = ImageHeight(img) FreeImage img Return h End Function why does it work with the on image, and not with the other? |
| ||
Turn Debug on, and you'll get a more helpful error message than "memory access violation". |
| ||
my debugger was on, and in loadanimimage was "memory acces violation", too... |
| ||
Like John said this: FreeImage LoadImage("TabPage.png") doesn't make sense. It will load the image and free it immediately. Not sure why this makes the other command work. I guess there's something wrong with the last 2 parameters. |
| ||
As you know, LoadImage and LoadAnimImage are not the same command. |
| ||
it would be helpful when you post the image here. |
| ||
I would imagine that although your FreeImage statement is immediately freeing the image right after it's been loaded... that it's still in memory. This is, after all, just a convention of the Blitz3D engine. So when you immediately load the image again, it's probably not reloading the image, but simply removing a "free" flag. Maybe the LoadImage command loads the file differently or makes some sort of adjustment to it, so that when LoadAnimImage looks at it already in memory, there's no problem. I don't suppose your PNG image is interlaced, is it? |
| ||
with the png is everything ok... |
| ||
No, your png isn't ok.TabPage_Height = XGui_ImageHeight2("test.png") Print TabPage_Height WaitKey() Function XGui_ImageHeight2(path$) img = LoadImage(path$) If img = 0 Then RuntimeError "Image " + path$ + " not found." h = ImageHeight(img) FreeImage img Return h End Function Test this, it works with every Image. |
| ||
yes, it works... |
| ||
but this error appears very often... for example: everything works, and if i cange type XGui_Application field ... end type into: type XGui_Application field ... field abcd end type the error appears again... |
| ||
Sure, you habe enabled Debugger? Memory Access Violation isn't normal. Is a Function maybe called like that? |
| ||
yes, its really strange.... i change a thing that dont have to crash an other command, but it does... and my debugger is on, this must be a bug of bb marksibly? are u here? |
| ||
I don't think it's a bug of bb. Can you give a sample which shows the bug? |
| ||
Yes, show us some more code + the image , never had any issues with Blitz in this respect. Which version of Blitz are you using? I think there was a few issues with a recent version. Stevie |
| ||
if i show you the a bit of the code it dont work... everythig works, but if i change type XGui_Application field ... end type into: type XGui_Application field ... field abcd end type the error appears |
| ||
There is no way that simply adding a field into the type declaration would cause a MAV. Is it a different error you're getting? To me it seems that you must be doing something wrong elsewhere and it's very unlikely to be a BB bug. Can you post the code in it's entirety and e-mail the image or upload it? Help us help you. Stevie |
| ||
i am adding a field to a type which isnt needed anywhere and it causes a memory acces violation...that MUST BE a bug of bb.... |
| ||
i am adding a field to a type which isnt needed anywhere and it causes a memory acces violation...that MUST BE a bug of bb.... Nonsense, there is no way that this is causing a MAV. Like I said the issue must be elsewhere! You are not making it easy for anyone trying to help you. Unless you can provide more code ( a short working example of your issue ) and your image then you're on your own mate. Just a thought ... is it possible that you are using a floating point reference instead of an integer reference to your image? Stevie |
| ||
MAV usually comes up when you try to use a graphic file that isn't loaded into memory. Have you checked your load to see if you have a non-zero result (a zero result means your load failed). Also, maybe, for whatever reason, your TYPE field "app\Img_TabPage" isn't valid at the point in your prog where you are attempting to do the load (ie not initialized yet?). |
| ||
i'll give it up -.- |
| ||
I beleive you! Is it possible for you to email the entire project to me here at Blitz Research? If I can reproduce it here I'm sure Mr Sibly can take a look... |
| ||
ok, please give me your email... but don't use my project...its not ready yet:) thx |
| ||
.. double post |
| ||
@ DevilsChild .. check Skids signature for e-mail address. Hope you get it sorted .. whatever the problem is. Stevie p.s. Can you let us all know for future reference? |
| ||
yes, i'll let you know, i'm writing now to him... |