[CREATE] Multiple viewports (for MyPaint, but Gimp/Krita/whoever too?)
Boudewijn Rempt
boud at valdyas.org
Thu Jul 21 00:52:52 PDT 2011
On Wednesday 20 July 2011 Jul, Andrew Chadwick wrote:
> I can think of some places where MyPaint does things strangely in
> general, in all branches:
>
> - View rotation is a number of radians ranging from 0 to 2*pi. It might
> be better to express as degrees or a float from 0 to 1.
I'm actually not sure how our view rotation is expressed -- but we don't save it either to .kra or to .ora yet. We also don't store the zoom settings or the mirror settings. It's a good idea, though.
> - View mirroring is a concept which may not be used in all other editors.
Krita supports that as well.
Krita also has split-view, but limited, like I said in another mail -- and I'm thinking of removing it. We used to have an overview widget, but that wasn't implemented as a low-zoom view -- it's something we want to revive.
Maybe this is a good moment to start thinking of what split view really should look like for Krita :-).
>
>
> Both of these affect the notion of what a view of the document is, but
> the split-screen implementation on my branch is somewhat funky too:
>
> - It's structured as a binary tree dividing space, which is horrible
> for other programs which might want to do this as multiple windows but
> fast to dump and recreate in terms of two-panel HPaneds and VPaneds.
> Leaf nodes are the views themselves. There's no reason this can't be
> made into a flat list that's more convenient for other ORA-consumers
> though, provided we can store the tree path to each viewport in a path
> or name field.
>
> - Each split is saved along with the position of the divider, expressed
> as a proportion of the total width (or height) of the screen. This gains
> us some window size-independence. Other implementations may want to save
> the sizes of their windows, or even their positions.
>
> - I use an enforced maximum number of viewports right now. Likely
> that's a fairly irrelevant implementation detail.
>
> The nasty JSON dump inside the .ora will *almost certainly* go away as a
> result of this discussion; that's just a stopgap implementation and I
> don't intend to integrate it into the MyPaint master :)
>
I'd be tempted to just save the rect of each subview with its rotation, mirror and zoom parameters. Going with the dividers is a bit implementation specific, I think.
--
Boudewijn Rempt
http://www.valdyas.org, http://www.krita.org, http://www.boudewijnrempt.nl
More information about the CREATE
mailing list