![]() So a viewer program must poll these three sources of events and do the right thing whenever one occurs. They might started things in the background whose progress is reported by a message queue.īasically, a viewer program has to deal with three sources of asynchronous events: All API functions are designed to be called from a single thread. The new interface looks not so clear to me. > compile ddjvuapi.cpp under Windows and got a lot of compiler errors. There are many functions that no longer make sense to me. Then Lizardtech did many changes but they had no time to update the comments. They come from the version sold by AT&T to Lizardtech. Part of the problem is that the comments are not up-to-date. > I don't fully understand the internals of DjVuLibre It works on most documents but can stall on certain multipage documents. In fact, last year I was platform-independent because I worked with HTML, JavaScript and Java :) I never wrote anything for Linux, so I can't tell you if it's similar to Windows. Still, I'm quite reluctant to use it because I like the current object-oriented interface, and the new interface looks not so clear to me, and it works with structures, not objects :) But that's just my personal opinion. When ddjvuapi will work under Windows, I can try to look at it. I didn't have a close look at them, but I'll send the list of errors to you if you like. And I don't know why, so I thought perhaps this could give you a clue, because you know much more about the library than I do.īTW, I tried to compile ddjvuapi.cpp under Windows and got a lot of compiler errors. So I've just found out that this particular combination of changes seems to solve the problems. I don't fully understand the internals of DjVuLibre, and that's why I tried to make only small harmless changes, to make multithreading more safe. So I needed to come up with a way to fix there bugs. First of all, it crashed from time to time somewhere inside DataPool, and secondly, sometimes it just stalled and stopped decoding pages because one of GMonitors entered a waiting state forever. I started to play with this and make all these changes because I had problems with WinDjView. But with NOTHREADS GMonitors do nothing, that's why I need this WIN32_MONITOR to re-enable GMonitor. At the same time, my program starts a few threads itself, so I want to be able to access the djvu document safely. The reason I need WIN32_MONITOR is that I don't want the library to use threads to do decoding jobs, so I define THREADMODEL to be NOTHREADS. ![]() Then I will be able to refactor the library internals.īut I'll look at your cvs as soon as I get a chance. I am starting to rewrite djview with this api only. This is why I am defining a semantically clear api (ddjvuapi). Short of being able to determine what is the correct behavior of a function, I rather pick the form that works with the other djvu programs. Second, with time the libdjvu code has lost its semantic clarity. First setting THREADMODEL=WINTHREADS should already use windows CriticalSections. Regarding threaded code, I am reluctant to change anything. Fortunately the problem is masked because most distributions have switched to the utf-8 locale. On the other hand, unicode support under unix is quite broken in my opinion. I might have introduced little bugs when prepping it for djvulibre, but no big changes should be necessary. Libdjvu has compiled under windows with full unicode support. So it is not easy for me to check your CVS right away. An up-to-date version of the C++ DjVu Reference Library.I am in the country side with a slow modem connection. A set of decoders to convert DjVu to a number of other formats. A full set of utilities to manipulate and assemble DjVu images and documents. A compressor for palettized images (a la GIF/PNG). A very simple compressor for scanned color pages. A simple compressor for bitonal (black and white) scanned pages. A full-fledged wavelet-based compressor for pictures. A browser plugin that works with most Unix browsers, including: Netscape-4.x, Netscape-6.x, Mozilla, Galeon, Konqueror, and Opera. A standalone DjVu viewer for Unix under X11 (based on the Qt library). It is compatible with version 3.5 of LizardTech's DjVu software suite. DjVuLibre (pronounced like the French "déjà vu libre", which means free DjVu), is an enhanced version of that code maintained by the original inventors of DjVu. In an effort to promote DjVu as a Web standard, LizardTech's management was enlightened enough to release the reference implementation of DjVu under the GNU GPL in October 2000. ![]() DjVuLibre is an application that allows you to open and print DjVu documents both in Windows and Mac computers. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |