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 
22 #ifndef INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
23 #define INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
24 
25 #include <drawinglayer/drawinglayerdllapi.h>
26 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
27 #include <drawinglayer/geometry/viewinformation2d.hxx>
28 
29 //////////////////////////////////////////////////////////////////////////////
30 // predefines
31 
32 class OutputDevice;
33 
34 //////////////////////////////////////////////////////////////////////////////
35 
36 namespace drawinglayer
37 {
38     namespace processor2d
39     {
40         /** create the best available pixel based BaseProcessor2D
41             (which may be system-dependent)
42 
43             @param rTargetOutDev
44             The target OutputDevice
45 
46             @param rViewInformation2D
47             The ViewInformation to use
48 
49             @return
50             the created BaseProcessor2D (ownership change) or null if
51             something went wrong
52         */
53         DRAWINGLAYER_DLLPUBLIC BaseProcessor2D* createPixelProcessor2DFromOutputDevice(
54             OutputDevice& rTargetOutDev,
55             const drawinglayer::geometry::ViewInformation2D& rViewInformation2D);
56 
57         /** create a BaseProcessor2D dependent on some states of the
58             given OutputDevice. If metafile is recorded, the needed
59             VclMetafileProcessor2D will be created. If a pixel renderer
60             is requested, the best one is incarnated
61 
62             @param rTargetOutDev
63             The target OutputDevice
64 
65             @param rViewInformation2D
66             The ViewInformation to use
67 
68             @return
69             the created BaseProcessor2D (ownership change) or null if
70             something went wrong
71         */
72         DRAWINGLAYER_DLLPUBLIC BaseProcessor2D* createProcessor2DFromOutputDevice(
73             OutputDevice& rTargetOutDev,
74             const drawinglayer::geometry::ViewInformation2D& rViewInformation2D);
75 
76     } // end of namespace processor2d
77 } // end of namespace drawinglayer
78 
79 //////////////////////////////////////////////////////////////////////////////
80 
81 #endif //INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
82 
83 // eof
84