LanguageTool: don't crash if REST protocol isn't set
[LibreOffice.git] / include / vcl / bitmap / BitmapTypes.hxx
blob10d0f5332c7be83acc38337bbc198b7642be6d9d
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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 */
11 #pragma once
13 #include <sal/types.h>
14 #include <cassert>
16 namespace vcl
18 /** Pixel format of the bitmap in bits per pixel */
19 enum class PixelFormat
21 INVALID = 0,
22 N1_BPP = 1,
23 N8_BPP = 8,
24 N24_BPP = 24,
25 N32_BPP = 32
28 /** Is it a pixel format that forces creation of a palette */
29 constexpr bool isPalettePixelFormat(PixelFormat ePixelFormat)
31 assert(ePixelFormat != PixelFormat::INVALID);
32 return sal_uInt16(ePixelFormat) <= 8;
35 constexpr sal_uInt16 pixelFormatBitCount(PixelFormat ePixelFormat)
37 return sal_uInt16(ePixelFormat);
40 constexpr sal_Int64 numberOfColors(PixelFormat ePixelFormat)
42 return sal_Int64(1) << sal_Int64(ePixelFormat);
45 constexpr PixelFormat bitDepthToPixelFormat(sal_uInt16 nBitDepth)
47 switch (nBitDepth)
49 case 1:
50 return PixelFormat::N1_BPP;
51 case 4:
52 assert(false);
53 break;
54 case 8:
55 return PixelFormat::N8_BPP;
56 case 24:
57 return PixelFormat::N24_BPP;
58 case 32:
59 return PixelFormat::N32_BPP;
60 default:
61 break;
63 return PixelFormat::INVALID;
66 } // end namespace vcl
68 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */