Trace: » gi » shortwave » maya_rendering_intermediate » pgregory » todo » release_cycle » piqsl
Piqsl
Introduction
Piqsl is an advanced display driver that provides all the combined functionality of the standard displays and more. It is a standalone application capable of managing images from various sources. The sources currently include images/image sequences and image data piped into Piqsl directly from Aqsis (or any other compatible renderer that conforms to the same display interface). It can organise images into conceptual groupings, called books. It allows multiple images to remain open simultaneously, allowing such useful operations as image comparison, and eventually basic image compositing.
While Piqsl is currently already a very much improved tool to replace the current stable of display drivers, the intention is for it to grow into more functionality as time goes on. Additionally, it's clear separation from the main Aqsis core means it, as a project, serves as a very useful introduction to the Aqsis way of developing for potential new developers, without the steep learning curve of the main Aqsis code.
How it Works
Piqsl consists of 2 parts
- A standard Dspy based display server ([lib]piqsldisplay.[so|dll|dylib])
- A standalone executable (piqsl[.exe])
The piqsl application can be run as a standalone application for managing and viewing images in any of it's various supported formats. It provides such useful functionality as zooming/panning and color information display. It can open and manage any number of images at a time, and open any number of views onto those images. This means it's entirely possible to have multiple windows open, each looking at a different image from the open books.
However, piqsl comes into it's own when it works alongside Aqsis or another compliant renderer. Piqsl will accept any number of socket connections from the Dspy display server. Piqsl will take all responsibility for images sent to it via this mechanism, saving them with the book when requested to do so. Piqsl can have any number of books open concurrently, and maintains a concept of the current book. Socket connections from the Dspy server will by default create new images in the current book, this behaviour can be overridden by an option to the “Display” RI request, allowing the user to place images into any chosen book (books will be created automatically by eqshibit if they don't exist).
The new Dspy based display server communicates with Aqsis via the standard mechanism that all display servers use, and in turn opens communication with the piqsl application and forwards the render data to it via a sockets based IPC mechanism, using XML as the message format. It will launch pqisl if it isn't already running, open a socket on a predefined port to the application, and then redirect all data from Aqsis through that socket to the application.
Saving and Loading Books
Piqsl can save both images and books for later retrieval. If an image in a book is a direct reference to a disk based image, the reference will be stored verbatim. Managed images will be saved to an automatically generated unique name in the same folder as the book. If a managed image appears in multiple books, it will only be stored to disk once, all references will refer to the serialised copy. The managed nature of the image is recorded in the book.
In addition to saving single books, piqsl will save entire configurations of books (and potentially other data) into a single configuration file.