Hi Tom, the trick is not to use the register_images() function at all and use
'jpegImage' instead of 'SharedImage' to load a JPEG picture.
Here's the full source code for a splash screen that show in the middle for 3
seconds:
#include <fltk/SharedImage.h>
#include <fltk/Monitor.h>
#include <fltk/Window.h>
#include <fltk/run.h>
fltk::Window* splash_screen() {
fltk::Window* o = new fltk::Window(550, 400, "splash screen");
o->type(241);
o->begin();
fltk::Group* g = new fltk::Group(0, 0, 550, 400);
g->image(fltk::jpegImage::get("data/splash.jpg"));
g->resizable(o);
o->end();
o->set_non_modal();
o->clear_border();
o->resizable(o);
o->border(false);
o->Rectangle::set(fltk::Monitor::find(0,0),o->w(),o->h(),fltk::ALIGN_CENTER);
o->show();
o->flush();
do {
fltk::check();
} while (!o->visible());
return o;
}
int main(int argc, char** argv) {
const bool show_splash = true;
// open splash screen
fltk::Window* splash_window = 0;
double splash_start = fltk::get_time_secs();
splash_window = splash_screen();
splash_window->show();
// hide splash screen after 3 seconds
while(splash_window->visible() && fltk::get_time_secs() -
splash_start < 3.0)
fltk::check();
splash_window->hide();
delete splash_window;
return fltk::run();
}
> I have working code similar to yours ie. code that displays a texture on a
> widget, but referencing fltk::register_images() gives me a link error that I
> am avoiding by putting xpmFileImage.cxx in my source.
>
> What libraries are you linking with in order to avoid the following error?
>
> /usr/local/lib/libfltk2_images.a(xpmFileImage.o): In function
> `fltk::xpmFileImage::fetch()':
> xpmFileImage.cxx:(.text+0x85): undefined reference to
> `fltk::xpmImage::fetch(fltk::Image&, char const* const*)'
> xpmFileImage.cxx:(.text+0x2e1): undefined reference to
> `fltk::xpmImage::fetch(fltk::Image&, char const* const*)'
> xpmFileImage.cxx:(.text+0x3af): undefined reference to
> `fltk::xpmImage::fetch(fltk::Image&, char const* const*)'
>
>
> Thanks much.
>
> tm
>
> > This works for me; shows the image in a borderless window.
> > Code based on the buttons.cxx example.
> >
> > #include <fltk/run.h>
> > #include <fltk/Window.h>
> > #include <fltk/SharedImage.h>
> > int main() {
> > fltk::register_images();
> > fltk::Window win(720,486);
> > win.border(0); // borderless window
> > win.image(*fltk::SharedImage::get("/var/tmp/foo.jpg"));
> > win.end();
> > win.show();
> > return(fltk::run());
> > }
>
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk