The complete crash on second load probably - I don't get it on Windows - but I do get non-load and non-show errors with 8bit images and non-show on large 24bit images.
Yeah, I was referring specifically to Handoko's problem.
M/b - ASUS M5A97LE
CPU - AMD FX-6300 3.5GHz 6-core
RAM - 4Gb DDR3
Display - nVidia GeForce 9500 GT
That is a rather uncommon setup... 6-core AMD Vishera CPU with a graphics card from 2008? That being said, as the GPU does have 1 GB video memory and you have 4 GB system memory, you should technically be more than able to load any of the larger images from the collection you provided. The reason you can't could be caused by anything from shaky driver support on 64-bit Windows 7 for the old GPU, to conflicts between the CPU/GPU/Motherboard setup. (The latter would be somewhat rare, although it's highly unlikely that the BIOS of your motherboard was designed with any expectation of a DDR2-era graphics card being installed, so there could be some kind of compatibility issue there.)
One thing I should clarify though is, are you building the application as a 32-bit or 64-bit executable? If you're building it 32-bit, I'd strongly recommend trying 64, as 64-bit GPU drivers running under 64-bit operating systems are not optimized for 32-bit applications and tend to have a higher number of issues/bugs while running them.
Debug build mode did not help. I even turned all the checks on (io, range, overflow, stack, verify, assertion), it just exited immediately without any error/warning message.
Were you actually running the debug version under GDB, though? If so, there should have been at least some indication in the "Debug output" window of Lazarus as to where things failed...
I'm back with my test result.
Software: Lazarus 1.6.4 FPC 3.0.2 Linux64 cross compile to Win32
Source Codes: glSlideshow Handoko version and Akira (Debug mode) version
Hardware: Intel Core 2 Duo with integrated NVIDIA 7100 (drivers installed properly).
OS: WinXP Service Pack 3
The Nvidia 7100 only has 128
megabytes of video memory. You were also compiling the application as 32-bit and running it on a 32-bit operating system, meaning the application itself could only make use of a maximum 2 gigabytes system RAM. (As in, not enough to allow the graphics card to do any kind of sharing of the system memory when it begins to run out of video memory, which is a feature of some GPUs. I'm unsure if the NVidia 7100 is one of them, though.) Not that the application would generally need anywhere close to 2 gigabytes overall, it's just that it almost certainly wouldn't be deemed as enough "extra" system memory by the GPU driver to consider the sharing operation safe.
Those are, overall, what I would call "expected results." It's not reasonable to assume that the hardware you outlined there
should be able to load images that are as large and high-DPI as the ones J-G provided (as they pretty much all take up more than 128 megabytes of video memory when uncompressed and uploaded as OpenGL textures.) Again, I tested
all of the images on J-Gs website, and the only two that didn't work for me were "Falls of Dochart 1A.tif" and "Canova Tomb.tif" (because of the limitations of the FPReadTiff unit I described in my last post).
If the image fails to load, nothing will happen (no crash). The program will still run correctly.
That is very much on purpose/exactly how I wrote it to behave.
- When exiting the program a memory error message will show up
The heaptrc window is not an error. It's just the window that always shows when you close any application built with the heaptrc memory logging unit activated. On top of that the window in your screenshot actually confirms what I already knew, which is that there are no memory leaks in my version (not that anyone was assuming a leak was specifically the cause of any issues).
- Viewport not update, when starting the program
Not sure what you mean. When you're first starting the program, there's nothing
to show as you haven't loaded any images yet, so it's blank. If you're referring to the garbled window in your second screenshot, that's almost certainly some kind of hardware issue/Windows XP issue. It should just be entirely white. Something seems to have gone wrong with the character encoding at some point in your cross-compilation process as well, as there's a bunch of characters displaying as squares when they should be actual letters.
Lastly, I was really far more interested in the issues you were having with my version running on your native Ubuntu installation, as any bugs that might be found there aren't ones I would come across myself running it on Windows. I'm unsure as to why exactly you thought cross compiling from Linux to Windows
XP of all things would be useful or relevant...