Cairo Graphics - Windows
Last published: October 28, 2007 by 'JoachimGeidel'
Defines 0 Classes
Extends 6 Classes
CairoGraphics-Windows is a feasibility study to investigate if it is possible to use CairoGraphics to render arbitrary VisualWorks user interfaces while still using the "old" GraphicsContext protocol. While the package CairoGraphics-Wrappers implements the basic compatibility layer and a CairoWrapper which can be used to render a single component of a Window with CairoGraphics, CairoGraphics-Windows lets you render the complete contents of an arbitrary Window with CairoGraphics. There are several ways to enable CairoGraphics output for a Window:
* Override ApplicationModel>>usesCairoGraphics to answer true. If the ApplicationModel is the application of an ApplicationWindow or the model of a ScheduledWindow or ApplicationWindow, the window will create a CairoGraphicsContext in its graphicsContext method, send renderOn: instead of displayOn: to its component, and send renderDamageList:in: instead of displayDamageList:in: to its damageRepairPolicy.
* For ScheduledWindows with a model which is not an ApplicationModel, implement usesCairoGraphics in the model's class such that it answers true.
* If you want to know how far you can go, evaluate
CairoGraphics.UseCairoForAllWindows := true.
Save your image before doing this!
DoubleBufferingWindowDisplayPolicy does not use double buffering when used with a Cairo based Window. This is intented, because DoubleBufferingWindowDisplayPolicy currently does not work with CairoGraphics, and double buffering should be done using CairoGraphicsContext>>groupWhile: anyway.
* CairoGraphics version 69 or later.
* CairoGraphics-Wrappers 12 or later.
If you want to contribute or fix bugs, please use version names like "n.xx.m", where n is the number of the version on which your changes are based, xx are your initials, and m is a sequential number. Please describe your changes in the blessing comment of your version.
If you want to reach the original author, send an email to joachim geidel acm org or post a message to the vwnc mailing list.