From: <po...@di...> - 2013-02-21 18:19:04
|
Hello Jan, First off, thanks for the comprehensive reply! I'm working on an application that frequently has to display fairly complex diagrams (schematic-like overviews with status indicators, graphs and the like) representing the current status or result of a process. The "boilerplate" for those diagrams has to be user-controllable, i.e. is defined by a superuser as part of the configuration for a particular site; the actual data (positions, numbers, data etc) is then filled in at run time. The GLE scripting language seemed quite ideally suited for that- and actually I already tried with some success what you described in (1), creating a GLE script from a template, running the GLE process on it, loading the generated image (PNG, say) and displaying it. That works, but it's unwieldy. There is the performance penalty, which verges on being prohibitive; also creating subprocesses is undesirable for various reasons. So what you suggested in (2) sounds good and that small sample you mentioned would indeed be very helpful. I won't completely get around temp files since I'll have to plot graphs now and then, but that shouldn't be a problem for now. thank you again, Best regards, Dietmar ----- Original Message ----- From: jan...@st... To: po...@di... Date: 19.02.2013 20:20:39 Subject: Re: [GLE-devel] Embedding GLE? > > Dear Dietmar, > > It depends on what you want to accomplish. Can you eleborate a > bit on that? > > If you want to create a GLE script dynamically and then renter it > to screen, then there are basically two possibilities. > > (1) Write the script to a temporary file and run the GLE > executable on this to produce a PNG. Next, show this PNG on > screen. For this, you will need some framework that can display > PNGs, such as QT. If you use the command line option -cairo, then > you don't need GhostScript for this. The advantage is that you > have a very simple interface. > > (2) Link to the GLE library and do the above with function calls > to the library. The advantage of this is that the temporary files > are avoided to some extend. But, if your script contains LaTeX > expressions (real LaTeX, not GLEs built in simple TeX), then GLE > will create temporary files anyway because latex can only work on > files. If your drawings use graphs with data sets, then you will > also need (temporary) files for the data sets. The advantage of > this approach is that it may be faster and that you don't have to > worry about creating temporary files and corresponding error > handling. > > In (2) you will also need to be able to show PNGs. GLE will write > the PNG to a memory buffer (not a file in this case) and then you > need some other library to show this PNG memory buffer on screen. > If you use Cairo in your application, then it would be possible > to get around this, but in QGLE we have used PNG as the > communication protocol between GLE and QT as it is easier than to > define our own (uncompressed) format. > > One problem with (2) is that I'm afraid that no one has tried it > so far. It has come up for discussion a couple of times, but I > don't know of any cases were it was done completely. > > If you are interested in (2), then please let me know and I will > write a small example program. > > Best Regards, > > Jan |