David Pilling |
Main »
Ovation Pro How It WorksWhy It Works How it Works RISC OS has idiosyncrasies, you could call them bugs, to make the program work, things have to be done in what is not the simplest way, the way one would expect from the documentation. At the time there was no viable C++ compiler, Ovation Pro is written in C. As a long time RISC OS programmer I have little experience of C++, but object oriented programming was popular at the time. The word "object" will be thrown about below, whether the rest of the world would use the word in the context I cannot say. The Object Manager To ensure object location is rapid, the objects are stored in a balance binary tree, an AVL tree to be precise. Below the user area of the object there is space for the internal tree data (pointers to the next nodes) and a magic number to check for corruption. As with flex there is scope for programming errors to write data outside the allocated space, the consequences of which will depend on history (where are nearby objects) and may take time to appear (if a nearby object is corrupted the corruption will not be immediately apparent). This explains why Ovation Pro can offer to check documents for corruption before saving to disc or after loading - the tree can be walked and the magic numbers inspected. I could not leave it at looking up objects by id, it is also possible to tell the object manager to maintain the address of an object in a variable - this is called "locking an object", and there is an "abandon all hope" error message which occasionally appears "can't find lock object". Go with the flow vlines can be computed, here's the text now go through it generating vlines. What vlines you generate depend on how big the area for the text to flow into is. If the width of the text area on a page is six inches, then you can have a 200 page document where every vline is six inches wide. It might take many minutes to calculate all the vlines for a 200 page document. Ah but we only need vlines for what we're looking at, we're looking at page one, the vlines for the other 199 pages can be calculated in the background. There is a queuing system for flows (calculating vlines). Documents have many chains of text frames with associated stories/sources.
|
David Pilling's Wiki Set view |
Page last modified on September 12, 2022, at 02:32 PM - Powered by PmWiki pmwiki-2.3.31 (pmwiki-2.3.31) |