Re: [UFO-devel] Hallo Wieder - Clarification of my problem - I will pay $ for your consulting!
Status: Beta
Brought to you by:
schmidtjf
From: Johannes S. <sch...@us...> - 2007-05-20 16:14:32
|
Hi Andrew, On Sunday 20 May 2007, Andrew Hvatum wrote: > Gruss Johannes, > > Thanks for all the help! The program is working really well. It's still > a way from completion, but I'll send > you the source and a copy when it's finished. > > I'd like to statically link the final executable with libUFO, sorry if > this is a dumb question, but how do I > get it to produce a libUFO.a file that I can link with? If this is hard > to do, how else could I go about > setting up the program so it runs on platforms where people don't have > libUFO installed? You could still deliver the dynamic library and add the directory to the dll/so search path, e.g. setting the LD_LIBRARY_PATH environment variable under unix like systems. To create static libraries, run configure with ./configure --enable-static (see also ./configure --help) Regards, Johannes > > Hi again, > > > > Just to make clear that the image is correctly displayed: > > I have attached the openclipart.org logo (which is public domain) as C > > header file (char array), again named "fuzzy.h". > > > > The previous one was just random painting with the GIMP and looked like > > some screwed up memory ... > > > > > > I hope I have the time on weekend to describe the UFO architecture > > a little bit. > > > > > > Regards, > > Johannes > > > > Am Freitag, 11. Mai 2007 14:28 schrieb Johannes Schmidt: > >> Hi Andrew, > >> > >> I have to admit, that it isn't really outlined in detail, > >> how to use images in LibUFO. > >> > >> If you want to pipe an array of chars representing an image, you can use > >> UImageIO to create the basic image software buffer used in UFO. > >> > >> To get a hardware image (i.e. OpenGL image) usable in UFO, > >> you need a UImage object. > >> Usually, you shouldn't need to use the UGL_Image class directly. > >> > >> In short: > >> Use the display image to convert the UImageIO object (the software > >> buffer) to a UImage object (the hardware surface). > >> UImage * UDisplay::createImage(UImageIO *); > >> > >> Longer version: > >> Several backends handle hardware data differently (especially, how > >> hardware surfaces are shared between contexts) > >> > >> The display object handles the whole connection to the underlying system > >> and controls all data acquired by the system (for instance an OpenGL > >> texture encapsulated in a UImage object). > >> > >> Therefore, the display object is responsible for all data/memory > >> allocated by the system, as video devices, images, fonts, events etc. > >> (this has changed a little bit over time, so this is usually done by the > >> UXDisplay class, whereas the UDisplay class is still a bit limited). > >> > >> I have attached two files: > >> A modified version of test/base.cpp, which reads in a char array, > >> creates a UImageIO object, then a UImage object and uses this as Icon > >> for a label. > >> > >> A header file called fuzzy.h which contains the image array (created > >> with the GIMP). > >> > >> Compile it via: > >> g++ -o base base.cpp `pkg-config --cflags --libs ufo` > >> > >> If you have the GIMP, you can create another image and save it as C > >> header under the name "fuzzy.h", then recompile. > >> > >> If there are any problems understanding the code, please ask. > >> > >> > >> Best regards, > >> Johannes > >> > >> Am Freitag, 11. Mai 2007 03:43 schrieb hv...@st...: > >>> Hi again, > >>> > >>> I'm having some serious trouble trying to figure out how to pass an > >>> image so that libUFO displays it. I'm trying to follow the directions > >>> which you outlined on this email that I found archived on the mailing > >>> list, but I can't for the life of me get it to work. > >>> > >>> I'm really panicking, because I need to have this functionality working > >>> soon. As far as I can tell from the specifications on sourceforge, > >>> UGL_Image must be passed as an argument to UImage, and then you can > >>> pass UImageIO as an argument to UGL_Image? (And UGL_Image can take a > >>> flat array of unsigned char, each representing one color of a pixel). > >>> > >>> If you could write out a quick example which reads in an image from an > >>> array or something (not a file, I can do that with UIcon) and explain a > >>> bit how it functions I'd be happy to Paypal you $25 for all the time > >>> you've spent helping me. Consider it a "donation" for all the hard work > >>> you've put into this great toolkit! > >>> > >>> Mit sehr Freundlichen Grussen, > >>> Andrew > >>> > >>> "It is not that trivial but it is possible. > >>> > >>> If you do not care about performance too much (at least in the > >>> beginning), you can use the built-in image class (UImage) and assign > >>> this as icon of a label (or button). > >>> > >>> That means, you create your own image buffer and feed it as RGB(A) data > >>> to an UImageIO class, create an image and so on. I have attached a > >>> small example (image.cpp) which shows how to do that (based on the > >>> base.cpp example). Compile it via: > >>> g++ -o image image.cpp `pkg-config --cflags --libs ufo` > >>> > >>> Otherwise you can draw the image yourself using OpenGL methods. To do > >>> this, you have to subclass UWidget and override > >>> UWidget::paintWidget(UGraphics*) with your own code (set up matrices > >>> and OpenGL state, draw image, revert OpenGL matrices and states). " |