LibreOffice Module svx (master)
1
svx
source
sdr
primitive2d
sdrprimitivetools.cxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* This file is part of the LibreOffice project.
4
*
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/.
8
*
9
* This file incorporates work covered by the following license notice:
10
*
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 .
18
*/
19
20
#include <
sdr/primitive2d/sdrprimitivetools.hxx
>
21
#include <
vcl/lazydelete.hxx
>
22
#include <
vcl/BitmapTools.hxx
>
23
#include <mutex>
24
25
26
// helper methods
27
28
namespace
drawinglayer::primitive2d
29
{
30
BitmapEx
createDefaultCross_3x3
(
const
basegfx::BColor
& rBColor)
31
{
32
static
vcl::DeleteOnDeinit< BitmapEx >
aRetVal(
vcl::DeleteOnDeinitFlag::Empty
);
33
static
basegfx::BColor
aBColor;
34
static
std::mutex
aMutex
;
35
36
std::scoped_lock aGuard(
aMutex
);
37
38
if
(!aRetVal.
get
() || rBColor != aBColor)
39
{
40
// copy values
41
aBColor = rBColor;
42
43
// create bitmap
44
Color
c(aBColor);
45
sal_uInt8
r = c.
GetRed
();
46
sal_uInt8
g = c.
GetGreen
();
47
sal_uInt8
b = c.
GetBlue
();
48
sal_uInt8
a
= 255;
49
const
sal_uInt8
cross
[] = {
50
0, 0, 0,
a
, r, g, b, 0, 0, 0, 0,
a
,
51
r, g, b, 0, r, g, b, 0, r, g, b, 0,
52
0, 0, 0,
a
, r, g, b, 0, 0, 0, 0,
a
53
};
54
BitmapEx
aBitmap =
vcl::bitmap::CreateFromData
(
cross
, 3, 3, 12,
/*nBitsPerPixel*/
32);
55
56
// create and exchange at aRetVal
57
aRetVal.
set
(aBitmap);
58
}
59
60
return
aRetVal.
get
() ? *aRetVal.
get
() :
BitmapEx
();
61
}
62
}
// end of namespace
63
64
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
BitmapTools.hxx
BitmapEx
Color
Color::GetBlue
sal_uInt8 GetBlue() const
Color::GetRed
sal_uInt8 GetRed() const
Color::GetGreen
sal_uInt8 GetGreen() const
basegfx::BColor
vcl::DeleteOnDeinit
vcl::DeleteOnDeinit::get
T * get()
vcl::DeleteOnDeinit::set
std::optional< T > set(Args &&... args)
a
uno_Any a
lazydelete.hxx
cross
B3DVector cross(const B3DVector &rVecA, const B3DVector &rVecB)
drawinglayer::primitive2d
drawinglayer::primitive2d::createDefaultCross_3x3
BitmapEx createDefaultCross_3x3(const basegfx::BColor &rBColor)
Definition:
sdrprimitivetools.cxx:30
vcl::bitmap::CreateFromData
BitmapEx CreateFromData(sal_uInt8 const *pData, sal_Int32 nWidth, sal_Int32 nHeight, sal_Int32 nStride, sal_Int8 nBitCount, bool bReversColors, bool bReverseAlpha)
vcl::DeleteOnDeinitFlag::Empty
@ Empty
aMutex
std::mutex aMutex
sdrprimitivetools.hxx
sal_uInt8
unsigned char sal_uInt8
Generated on Sun Jul 30 2023 04:28:14 for LibreOffice Module svx (master) by
1.9.3