LibreOffice Module vcl (master) 1
BitmapTypes.hxx
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 */
10
11#pragma once
12
13#include <sal/types.h>
14#include <cassert>
15
16namespace vcl
17{
19enum class PixelFormat
20{
21 INVALID = 0,
22 N8_BPP = 8,
23 N24_BPP = 24,
24 N32_BPP = 32
25};
26
28constexpr bool isPalettePixelFormat(PixelFormat ePixelFormat)
29{
30 assert(ePixelFormat != PixelFormat::INVALID);
31 return sal_uInt16(ePixelFormat) <= 8;
32}
33
34constexpr sal_uInt16 pixelFormatBitCount(PixelFormat ePixelFormat)
35{
36 return sal_uInt16(ePixelFormat);
37}
38
39constexpr sal_Int64 numberOfColors(PixelFormat ePixelFormat)
40{
41 return sal_Int64(1) << sal_Int64(ePixelFormat);
42}
43
44constexpr PixelFormat bitDepthToPixelFormat(sal_uInt16 nBitDepth)
45{
46 switch (nBitDepth)
47 {
48 case 1:
49 case 4:
50 assert(false && "no longer supported");
51 break;
52 case 8:
54 case 24:
56 case 32:
58 default:
59 break;
60 }
62}
63
64} // end namespace vcl
65
66/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
constexpr sal_Int64 numberOfColors(PixelFormat ePixelFormat)
Definition: BitmapTypes.hxx:39
constexpr PixelFormat bitDepthToPixelFormat(sal_uInt16 nBitDepth)
Definition: BitmapTypes.hxx:44
constexpr bool isPalettePixelFormat(PixelFormat ePixelFormat)
Is it a pixel format that forces creation of a palette.
Definition: BitmapTypes.hxx:28
PixelFormat
Pixel format of the bitmap in bits per pixel.
Definition: BitmapTypes.hxx:20
constexpr sal_uInt16 pixelFormatBitCount(PixelFormat ePixelFormat)
Definition: BitmapTypes.hxx:34
INVALID