svn merge ^/trunk/blender -r50132:50138
[blender.git] / source / blender / imbuf / intern / dds / ColorBlock.h
index 72049be5f3c09db6cc1da418516796cafc7271cf..2bf362f2780cbd2f51b7a222b6c74f0f58bd3712 100644 (file)
@@ -1,15 +1,10 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
- * Contributors: Amorilia (amorilia@gamebox.net)
+ * Contributors: Amorilia (amorilia@users.sourceforge.net)
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/imbuf/intern/dds/ColorBlock.h
+ *  \ingroup imbdds
  */
 
+
 /*
  * This file is based on a similar file from the NVIDIA texture tools
  * (http://nvidia-texture-tools.googlecode.com/)
@@ -34,8 +34,8 @@
 
 // This code is in the public domain -- castanyo@yahoo.es
 
-#ifndef _DDS_COLORBLOCK_H
-#define _DDS_COLORBLOCK_H
+#ifndef __COLORBLOCK_H__
+#define __COLORBLOCK_H__
 
 #include <Color.h>
 #include <Image.h>
 struct ColorBlock
 {
        ColorBlock();
+       ColorBlock(const uint * linearImage);
        ColorBlock(const ColorBlock & block);
        ColorBlock(const Image * img, uint x, uint y);
        
        void init(const Image * img, uint x, uint y);
+       void init(uint w, uint h, const uint * data, uint x, uint y);
+       void init(uint w, uint h, const float * data, uint x, uint y);
        
-       void swizzleDXT5n();
-       void splatX();
-       void splatY();
+       void swizzle(uint x, uint y, uint z, uint w); // 0=r, 1=g, 2=b, 3=a, 4=0xFF, 5=0
        
-       uint countUniqueColors() const;
-       Color32 averageColor() const;
+       bool isSingleColor(Color32 mask = Color32(0xFF, 0xFF, 0xFF, 0x00)) const;
        bool hasAlpha() const;
        
-       void diameterRange(Color32 * start, Color32 * end) const;
-       void luminanceRange(Color32 * start, Color32 * end) const;
-       void boundsRange(Color32 * start, Color32 * end) const;
-       void boundsRangeAlpha(Color32 * start, Color32 * end) const;
-       void bestFitRange(Color32 * start, Color32 * end) const;
        
-       void sortColorsByAbsoluteValue();
-
-       float volume() const;
-
        // Accessors
        const Color32 * colors() const;
 
@@ -113,4 +104,4 @@ inline Color32 & ColorBlock::color(uint x, uint y)
        return m_color[y * 4 + x];
 }
 
-#endif // _DDS_COLORBLOCK_H
+#endif // __COLORBLOCK_H__