Krita Source Code Documentation
Loading...
Searching...
No Matches
KoGrayColorSpaceTraits.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2007 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5*/
6
7#ifndef _KO_GRAY_COLORSPACE_TRAITS_H_
8#define _KO_GRAY_COLORSPACE_TRAITS_H_
9
14template<typename _channels_type_>
15struct KoGrayTraits : public KoColorSpaceTrait<_channels_type_, 2, 1> {
16
17 typedef _channels_type_ channels_type;
19
20 static const qint32 gray_pos = 0;
21
29
31 inline static channels_type gray(const quint8 *data)
32 {
33 const channels_type *d = parent::nativeArray(data);
34 return d[gray_pos];
35 }
36
38 inline static void setGray(quint8* data, channels_type nv) {
40 d[gray_pos] = nv;
41 }
42};
43
44
45struct KoGrayU8Traits : public KoGrayTraits<quint8> {
46};
47
48struct KoGrayU16Traits : public KoGrayTraits<quint16> {
49};
50
51struct KoGrayU32Traits : public KoGrayTraits<quint32> {
52};
53
54
55#include <KoConfig.h>
56#ifdef HAVE_OPENEXR
57#include <half.h>
58
59struct KoGrayF16Traits : public KoGrayTraits<half> {
60};
61
62#endif
63
64struct KoGrayF32Traits : public KoGrayTraits<float> {
65};
66
67struct KoGrayF64Traits : public KoGrayTraits<double> {
68};
69
70#endif
static const channels_type * nativeArray(const quint8 *a)
static const qint32 gray_pos
KoColorSpaceTrait< _channels_type_, 2, 1 > parent
static void setGray(quint8 *data, channels_type nv)
Set the gray component.
static channels_type gray(const quint8 *data)
_channels_type_ channels_type