Look here http://wiki.eclipse.org/Equinox_Launcher
for some details on the -showsplash argument which controls the initial
displaying of the splash screen in the launcher.
There are really three phases to the splash screen when eclipse starts:
1) Native code, before java starts
2) Java calling out to Native code from Main, before OSGi starts
3) Java code working through SWT, after workbench starts
For (1) and (2) some platforms may be able to display png, but not all.
Each plaform has different native implementations, you'll need to see which
ones support png:
- win32 - uses LoadImage with IMAGE_BITMAP
- gtk - uses gdk_pixbuf_new_from_file, gdk_image_new_from_pixbuf.
- cocoa - uses NSImage
- carbon - uses CGImageSourceRef (or custom bmp code on older systems)
- motif uses custom bmp code
If the platform(s) you are developing for can show png, then you might just
be able to name your png as "splash.bmp" and be happy.
Otherwise, you will need to wait until SWT is up and running for part (3)
and do your magic with SWT code.