1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
22 #include <vcl/gdimtf.hxx>
23 #include <vcl/metaact.hxx>
24 #include <vcl/outdev.hxx>
25 #include <vcl/virdev.hxx>
29 Color
OutputDevice::GetPixel(const Point
& rPoint
) const
33 if (mpGraphics
|| AcquireGraphics())
36 const_cast<OutputDevice
*>(this)->InitClipRegion();
40 const tools::Long nX
= ImplLogicXToDevicePixel(rPoint
.X());
41 const tools::Long nY
= ImplLogicYToDevicePixel(rPoint
.Y());
42 aColor
= mpGraphics
->GetPixel(nX
, nY
, this);
46 Color aAlphaColor
= mpAlphaVDev
->GetPixel(rPoint
);
47 aColor
.SetTransparency(aAlphaColor
.GetBlue());
54 void OutputDevice::DrawPixel( const Point
& rPt
)
56 assert(!is_double_buffered_window());
59 mpMetaFile
->AddAction( new MetaPointAction( rPt
) );
61 if ( !IsDeviceOutputNecessary() || !mbLineColor
|| ImplIsRecordLayout() )
64 Point aPt
= ImplLogicToDevicePixel( rPt
);
66 if ( !mpGraphics
&& !AcquireGraphics() )
69 if ( mbInitClipRegion
)
72 if ( mbOutputClipped
)
75 if ( mbInitLineColor
)
78 mpGraphics
->DrawPixel( aPt
.X(), aPt
.Y(), this );
81 mpAlphaVDev
->DrawPixel( rPt
);
84 void OutputDevice::DrawPixel( const Point
& rPt
, const Color
& rColor
)
86 assert(!is_double_buffered_window());
88 Color aColor
= ImplDrawModeToColor( rColor
);
91 mpMetaFile
->AddAction( new MetaPixelAction( rPt
, aColor
) );
93 if ( !IsDeviceOutputNecessary() || ImplIsRecordLayout() )
96 Point aPt
= ImplLogicToDevicePixel( rPt
);
98 if ( !mpGraphics
&& !AcquireGraphics() )
101 if ( mbInitClipRegion
)
104 if ( mbOutputClipped
)
107 mpGraphics
->DrawPixel( aPt
.X(), aPt
.Y(), aColor
, this );
111 Color
aAlphaColor(rColor
.GetTransparency(), rColor
.GetTransparency(), rColor
.GetTransparency());
112 mpAlphaVDev
->DrawPixel(rPt
, aAlphaColor
);
116 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */