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 // MARKER(update_precomp.py): autogen include statement, do not remove
23 #include "precompiled_drawinglayer.hxx"
24 
25 #include <drawinglayer/processor2d/processor2dtools.hxx>
26 #include <drawinglayer/processor2d/vclpixelprocessor2d.hxx>
27 #include <drawinglayer/processor2d/vclmetafileprocessor2d.hxx>
28 
29 //////////////////////////////////////////////////////////////////////////////
30 
31 using namespace com::sun::star;
32 
33 //////////////////////////////////////////////////////////////////////////////
34 
35 namespace drawinglayer
36 {
37     namespace processor2d
38     {
createPixelProcessor2DFromOutputDevice(OutputDevice & rTargetOutDev,const drawinglayer::geometry::ViewInformation2D & rViewInformation2D)39         BaseProcessor2D* createPixelProcessor2DFromOutputDevice(
40             OutputDevice& rTargetOutDev,
41             const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
42         {
43             // create Pixel Vcl-Processor
44             return new VclPixelProcessor2D(rViewInformation2D, rTargetOutDev);
45         }
46 
createProcessor2DFromOutputDevice(OutputDevice & rTargetOutDev,const drawinglayer::geometry::ViewInformation2D & rViewInformation2D)47         BaseProcessor2D* createProcessor2DFromOutputDevice(
48             OutputDevice& rTargetOutDev,
49             const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
50         {
51             const GDIMetaFile* pMetaFile = rTargetOutDev.GetConnectMetaFile();
52             const bool bOutputToRecordingMetaFile(pMetaFile && pMetaFile->IsRecord() && !pMetaFile->IsPause());
53 
54             if(bOutputToRecordingMetaFile)
55             {
56                 // create MetaFile Vcl-Processor and process
57                 return new VclMetafileProcessor2D(rViewInformation2D, rTargetOutDev);
58             }
59             else
60             {
61                 // create Pixel Vcl-Processor
62                 return createPixelProcessor2DFromOutputDevice(
63                     rTargetOutDev,
64                     rViewInformation2D);
65             }
66         }
67     } // end of namespace processor2d
68 } // end of namespace drawinglayer
69 
70 //////////////////////////////////////////////////////////////////////////////
71 // eof
72