1 /* Webcamoid, webcam capture application. 2 * Copyright (C) 2016 Gonzalo Exequiel Pedone 3 * 4 * Webcamoid is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 3 of the License, or 7 * (at your option) any later version. 8 * 9 * Webcamoid is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with Webcamoid. If not, see <http://www.gnu.org/licenses/>. 16 * 17 * Web-Site: http://webcamoid.github.io/ 18 */ 19 20 #ifndef PIXELSTRUCTS_H 21 #define PIXELSTRUCTS_H 22 23 #include <qglobal.h> 24 25 template<typename T> 26 struct Pixel 27 { 28 T r; 29 T g; 30 T b; 31 T a; 32 33 inline Pixel(T r=0, T g=0, T b=0, T a=0): rPixel34 r(r), g(g), b(b), a(a) 35 { 36 } 37 clearPixel38 inline void clear() { 39 this->r = 0; 40 this->g = 0; 41 this->b = 0; 42 this->a = 0; 43 } 44 }; 45 46 // These are used as accumulators 47 typedef Pixel<qint32> IntegerPixel; 48 typedef Pixel<quint32> UIntegerPixel; 49 typedef Pixel<quint16> ShortPixel; 50 typedef Pixel<quint8> CharPixel; 51 typedef IntegerPixel HistogramListItem; 52 53 #endif // PIXELSTRUCTS_H 54