Fri, 07 Jul 2006

Report 4

The passing week I've read up on the fundamentals of digital compositing as told by A. R. Smith himself. The series of memos he wrote at Microsoft to share his previous experiences and history were a good read. Even though I'm not working on the technical level of producing the illusion of translucency and sprites, it's good to know the theory, and concepts such as design space versus display space. I like recording the historical pieces in Wikipedia where they will hopefully last.

Regarding the Firefox extension, I have written down something general on the topic of extending Firefox. The result of my tests this far is the Hello world! extension combined with this important result of Googling:

var basewindow = window
    .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
    .getInterface(Components.interfaces.nsIWebNavigation)
    .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
    .treeOwner
    .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
    .getInterface(Components.interfaces.nsIBaseWindow);

After that beautiful piece of Javascript using XPCOM, basewindow is a reference to nsIBaseWindow, which I can use to move the top-level window with basewindow.setPosition(400,300); Totally useless, except that when I go over to C++, the same reference can give me the platform-specific native window, which seems to be in the form of GdkWindow *. It should be easy to set window properties from the extension, on the window, for the Compiz plugin. We'll see just how easy.

Posted at: 16:06 | Permanent link | Comment page


CC Some rights reserved

These weblog entries are licensed under a Creative Commons Attribution-ShareAlike 2.5 License