xref: /trunk/main/canvas/overview.txt (revision 9f22d7c2)
1# *************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20# *************************************************************
21
22The new OOo Canvas Framework
23============================
24
25The new OpenOffice.org canvas framework is the successor of the system
26GUI and graphics backend VCL. Basic functionality is available,
27supplying just as much features as necessary to provide a
28VCL-equivalent feature set (except proper BiDi/CTL support).
29
30For migration purposes, the new canvas and VCL will be shipped with
31OpenOffice.org for quite some time, allowing a step-by-step adaptation
32of the applications. Therefore, the canvas and VCL must somehow
33interoperate, since new code, using the canvas, typically is embedded
34in a VCL-based environment (for example, the OOo windows are still
35provided by VCL. To render into such a window via the canvas, a canvas
36must be constructable from a VCL window). Thus, essentially two new
37methods are provided at VCL's window, namely Window::GetCanvas() and
38Window::GetFullScreenCanvas(). Apart from that small link, canvas and
39VCL are completely separated.
40
41The canvas framework currently consists of the following two new
42CVS modules, /gsl/canvas and /gsl/cppcanvas. Additionally, a new
43generic graphics tooling is used (but not exclusively by the canvas,
44Armin's recent drawing layer fixups also make use of it), which
45resides in /graphics/basegfx. From these modules, six libraries are
46currently delivered, namely vclcanvas.uno.dll, javacanvas.jar,
47directxcanvas.uno.dll, canvastools680mi.dll, cppcanvas680mi.dll, and
48basegfx680mi.dll.
49
50
51The new OOo slideshow engine
52============================
53
54The new OpenOffice.org slideshow engine will replace the current
55Impress-embedded presentation framework with a fully independent UNO
56component, and it will be based on the new canvas. In its current
57state, it is able to provide a basic set of functionality, enabling
58the playback of simple presentations. It furthermore provides features
59like double-buffering, hardware-accelerated alpha-blending (currently
60not on all platforms) and anti-aliased rendering of all primitives.
61
62In a second step, this new slideshow engine will then be integrated
63with Impress model enhancements and extended PowerPoint import/export
64filters, to implement nearly all of PowerPoint's set of effects.
65
66The new slideshow engine is currently not accessible from the office
67UI, but included in the installations sets. Thus, other developers can
68start to use the new functionality, and base their own implementations
69on top of that. For the records, the respective UNO implementation of
70the slideshow resides in the slideshow.uno.dll library.
71
72