Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2006-11-08 23:33:28 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2006-11-08 23:33:28 +0300
commitf350836342e8dc4906dc38a3da905cbc336b06a7 (patch)
tree2770a99eb76db6655009f9d0aad46877a2bc10c7 /source/blender/img/intern
parent011f531359102a624126841b7ddf7beb94af1f7e (diff)
While I'm breaking build systems anyway, also removed the two img modules,
they are not used anymore in the new image paint code.
Diffstat (limited to 'source/blender/img/intern')
-rw-r--r--source/blender/img/intern/IMG_Api.cpp167
-rw-r--r--source/blender/img/intern/IMG_BrushRGBA32.cpp132
-rw-r--r--source/blender/img/intern/IMG_BrushRGBA32.h134
-rw-r--r--source/blender/img/intern/IMG_CanvasRGBA32.cpp337
-rw-r--r--source/blender/img/intern/IMG_CanvasRGBA32.h102
-rw-r--r--source/blender/img/intern/IMG_Color.h150
-rw-r--r--source/blender/img/intern/IMG_Line.cpp37
-rw-r--r--source/blender/img/intern/IMG_Line.h142
-rw-r--r--source/blender/img/intern/IMG_MemPtr.h115
-rw-r--r--source/blender/img/intern/IMG_Pixmap.cpp60
-rw-r--r--source/blender/img/intern/IMG_Pixmap.h187
-rw-r--r--source/blender/img/intern/IMG_PixmapRGBA32.cpp332
-rw-r--r--source/blender/img/intern/IMG_PixmapRGBA32.h267
-rw-r--r--source/blender/img/intern/IMG_Rect.cpp132
-rw-r--r--source/blender/img/intern/IMG_Rect.h201
-rw-r--r--source/blender/img/intern/IMG_Types.h49
-rw-r--r--source/blender/img/intern/Makefile49
17 files changed, 0 insertions, 2593 deletions
diff --git a/source/blender/img/intern/IMG_Api.cpp b/source/blender/img/intern/IMG_Api.cpp
deleted file mode 100644
index e59d5bfa586..00000000000
--- a/source/blender/img/intern/IMG_Api.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-#include "../IMG_Api.h"
-#include "IMG_BrushRGBA32.h"
-#include "IMG_CanvasRGBA32.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-IMG_BrushPtr IMG_BrushCreate(unsigned int w, unsigned int h, float *rgba)
-{
- IMG_BrushPtr brush = 0;
- try {
- IMG_ColorRGB c (rgba[0], rgba[1], rgba[2]);
- brush = new IMG_BrushRGBA32 (w, h, c, rgba[3]);
- }
- catch (...) {
- brush = 0;
- }
- return brush;
-}
-
-void IMG_BrushDispose(IMG_BrushPtr brush)
-{
- if (brush) {
- delete ((IMG_BrushRGBA32*)brush);
- brush = 0;
- }
-}
-
-void IMG_BrushSetInnerRaduisRatio(IMG_BrushPtr brush,float aspect)
-{
- if (brush) {
- TUns32 he = ((IMG_BrushRGBA32*)brush)->getHeight();
- TUns32 we = ((IMG_BrushRGBA32*)brush)->getWidth();
- TUns32 si = we;
- if (he > si) si = we;
- he = si/2;
- we = (TUns32)(aspect*si/2);
-// if (we < 2) we = 2;
-
-
- ((IMG_BrushRGBA32*)brush)->setRadii(we,he);
- }
-}
-
-IMG_CanvasPtr IMG_CanvasCreate(unsigned int w, unsigned int h)
-{
- IMG_CanvasPtr canvas = 0;
- try {
- canvas = new IMG_CanvasRGBA32 (w, h);
- }
- catch (...) {
- canvas = 0;
- }
- return canvas;
-}
-
-IMG_CanvasPtr IMG_CanvasCreateFromPtr(void* imagePtr, unsigned int w, unsigned int h, size_t rowBytes)
-{
- IMG_CanvasPtr canvas = 0;
- try {
- canvas = new IMG_CanvasRGBA32 (imagePtr, w, h, rowBytes);
- }
- catch (...) {
- canvas = 0;
- }
- return canvas;
-}
-
-void IMG_CanvasDispose(IMG_CanvasPtr canvas)
-{
- if (canvas) {
- delete ((IMG_CanvasRGBA32*)canvas);
- canvas = 0;
- }
-}
-
-#if 0
-void IMG_CanvasDraw(IMG_CanvasPtr canvas, IMG_BrushPtr brush, unsigned int x, unsigned int y)
-{
- if (!(canvas && brush)) return;
- ((IMG_CanvasRGBA32*)canvas)->blendPixmap((TUns32)x, (TUns32)y, *((IMG_BrushRGBA32*)brush));
-}
-
-
-void IMG_CanvasDrawUV(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float u, float v)
-{
- if (!(canvas && brush)) return;
- ((IMG_CanvasRGBA32*)canvas)->blendPixmap(u, v, *((IMG_BrushRGBA32*)brush));
-}
-#endif
-
-
-void IMG_CanvasDrawLine(IMG_CanvasPtr canvas, IMG_BrushPtr brush, unsigned int xStart, unsigned int yStart, unsigned int xEnd, unsigned int yEnd)
-{
- if (!(canvas && brush)) return;
- ((IMG_CanvasRGBA32*)canvas)->blendPixmap((TUns32)xStart, (TUns32)yStart, (TUns32)xEnd, (TUns32)yEnd, *((IMG_BrushRGBA32*)brush));
-}
-
-
-void IMG_CanvasDrawLineUV(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float uStart, float vStart, float uEnd, float vEnd)
-{
- if (!(canvas && brush)) return;
- ((IMG_CanvasRGBA32*)canvas)->blendPixmap(uStart, vStart, uEnd, vEnd, *((IMG_BrushRGBA32*)brush));
-}
-
-void IMG_CanvasDrawLineUVEX(IMG_CanvasPtr canvas, IMG_BrushPtr brush, float uStart, float vStart, float uEnd, float vEnd, int torus)
-{
- if (!(canvas && brush)) return;
- ((IMG_CanvasRGBA32*)canvas)->blendPixmap(uStart, vStart, uEnd, vEnd, *((IMG_BrushRGBA32*)brush), torus);
-}
-
-void IMG_CanvasSoftenAt(IMG_CanvasPtr canvas,float u, float v, unsigned int size,float alpha, float aspect, int torus)
-{
- ((IMG_CanvasRGBA32*)canvas)->SoftenAt(u, v, (TUns32)size, alpha, aspect, torus);
-}
-
-void IMG_CanvasFill(IMG_CanvasPtr canvas, float *rgba)
-{
- IMG_ColorRGB c (rgba[0], rgba[1], rgba[2]);
- IMG_Rect R (0, 0, ((IMG_CanvasRGBA32*)canvas)->getWidth(),
- ((IMG_CanvasRGBA32*)canvas)->getHeight()); // Bounds of this pixmap
- ((IMG_CanvasRGBA32*)canvas)->fillRect(R, c);
-}
-
-void IMG_CanvasSmear(IMG_CanvasPtr canvas,float uStart, float vStart, float uEnd, float vEnd, unsigned int size, float alpha, float aspect, int torus)
-{
- ((IMG_CanvasRGBA32*)canvas)->Smear(uStart, vStart, uEnd, vEnd, size, alpha, aspect, torus);
-
-}
-
-void IMG_CanvasCloneAt(IMG_CanvasPtr canvas,IMG_CanvasPtr other,float u,float v,float cu,float cv,int size,float alpha,float aspect)
-{
- ((IMG_CanvasRGBA32*)canvas)->CloneAt((IMG_CanvasRGBA32*)other, u, v, cu, cv, size, alpha, aspect);
-}
-
diff --git a/source/blender/img/intern/IMG_BrushRGBA32.cpp b/source/blender/img/intern/IMG_BrushRGBA32.cpp
deleted file mode 100644
index 6678365d6da..00000000000
--- a/source/blender/img/intern/IMG_BrushRGBA32.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-#include "IMG_BrushRGBA32.h"
-#include <math.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-IMG_BrushRGBA32::IMG_BrushRGBA32(TUns32 w, TUns32 h, const IMG_ColorRGB& c, float a)
- : IMG_PixmapRGBA32(w, h), m_color(c), m_alpha(a)
-{
- m_ro = w < h ? w/2 : h/2;
- m_ri = m_ro >> 1;
- updateImage();
-}
-
-
-void IMG_BrushRGBA32::setColor(const IMG_ColorRGB& c)
-{
- m_color = c;
- updateImage();
-}
-
-
-void IMG_BrushRGBA32::setTransparency(float a)
-{
- m_alpha = a;
- if (m_alpha > 1.f) m_alpha = 1.f;
- if (m_alpha < 0.f) m_alpha = 0.f;
- updateImage();
-}
-
-
-void IMG_BrushRGBA32::setRadii(TUns32 rI, TUns32 rO)
-{
- m_ri = rI;
- m_ro = rO;
-
- TUns32 w_2 = m_width >> 1;
- TUns32 h_2 = m_height >> 1;
-
- /*
- * Make the brush size smaller than half of the minimum
- * width or height of the pixmap. Make sure that inner
- * radius <= outer radius.
- */
- if (m_ro > w_2) m_ro = w_2;
- if (m_ro > h_2) m_ro = h_2;
- if (m_ri > m_ro) m_ri = m_ro;
-
- updateImage();
-}
-
-
-void IMG_BrushRGBA32::updateImage()
-{
- float fcx = m_width / 2.0f;
- float fcy = m_height/ 2.0f ;
-
-
- // Prepare pixel values for this pixmap
- IMG_ColorRGBA c (m_color.m_r, m_color.m_g, m_color.m_b, 0.f);
- TPixelRGBA32 pOut = getPixelValue(c);
- c.m_a = m_alpha;
- TPixelRGBA32 pIn = getPixelValue(c);
- TPixelRGBA32 p = getPixelValue(c);
- TUns8* pa = & (((TUns8*)&p)[bi_a]);
-
- // Set the pixels in the destination rectangle
- for (TUns32 y = 0; y < m_height; y++) {
- // Park pixel pointer at the start pixels
- TPixelPtr desPtr = getPixelPtr(0, y);
- for (TUns32 x = 0; x < m_width; x++) {
- // Calculate the distance between current pixel and center
- float dX = (float)((TInt32)x - fcx);
- float dY = (float)((TInt32)y - fcy);
- float d = (float) ::sqrt(dX*dX + dY*dY);
- float a;
-
- if (d <= m_ri) {
- *desPtr = pIn;
- }
- else {
- if ((d < m_ro) && (m_ri < m_ro)) {
- // Calculate alpha, linear
- a = (d - m_ri) / (m_ro - m_ri);
- // Now: 0 <= a <= 1
- a = (float)::pow(a, 0.5f);
- a = (1.f - a) * m_alpha;
- // Now: m_alpha <= a <= 1
- // Store pixel
- *pa = (TUns8)(a * ((float)0xFF));
- *desPtr = p;
- }
- else {
- *desPtr = pOut;
- }
- }
- desPtr++;
- }
- }
-}
diff --git a/source/blender/img/intern/IMG_BrushRGBA32.h b/source/blender/img/intern/IMG_BrushRGBA32.h
deleted file mode 100644
index 90d4e124892..00000000000
--- a/source/blender/img/intern/IMG_BrushRGBA32.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-#ifndef _H_IMG_BrushRGBA32
-#define _H_IMG_BrushRGBA32
-
-#include "IMG_PixmapRGBA32.h"
-
-/**
- * A brush used for drawing in pixmaps.
- * The brush is a pixmap as well.
- * Drawing can be implemented by blending the brush into the pixmap.
- *
- * @author Maarten Gribnau
- * @date March 7, 2001
- * @todo Check the algorithm
- */
-
-class IMG_BrushRGBA32 : public IMG_PixmapRGBA32 {
-public:
- /**
- * Constructs a brush image with the dimensions and color given.
- * @param w width of the brush image
- * @param h height of the brush image
- * @param c color of the brush
- * @param a transparency in the center of the brush
- */
- IMG_BrushRGBA32(TUns32 w, TUns32 h, const IMG_ColorRGB& c, float a = 0.8f);
-
- /**
- * Sets the color of the brush.
- * @param c color of the brush
- */
- virtual void setColor(const IMG_ColorRGB& c);
-
- /**
- * Returns the color of the brush.
- * @param c color of the brush
- */
- inline virtual void getColor(IMG_ColorRGB& c) const;
-
- /**
- * Sets the transparency of the brush.
- * @param a transparency of the brush
- */
- virtual void setTransparency(float a);
-
- /**
- * Returns the transparency of the brush.
- * @param a transparency of the brush
- */
- inline virtual float getTransparency() const;
-
- /**
- * Sets the shape of the brush from two radii (inner and outer).
- * This creates a brush with alpha==0 inside the inner radius
- * and gradually fades to alpha==1 at the outer radius.
- * Inner radius should be smaller or equal to the outer radius.
- * If not, the outer radius is made equal to the inner radius.
- * If the either radius is larger than the bounds of the brush,
- * they are clipped.
- * @param rI inner radius
- * @param rO outer radius
- */
- virtual void setRadii(TUns32 rI, TUns32 rO);
-
- /**
- * Returns the radii that determine the shape of the brush.
- * @param rI inner radius
- * @param rO outer radius
- */
- inline virtual void getRadii(TUns32& rI, TUns32& rO) const;
-
-protected:
- /**
- * Updates the image of this brush.
- * The image is created using the current color, transparency and shape radii.
- */
- virtual void updateImage();
-
- IMG_ColorRGB m_color; /** The color of the brush */
- float m_alpha; /** The transparency of the brush */
- TUns32 m_ri; /** The inner radius of the brush */
- TUns32 m_ro; /** The outer radius of the brush */
-};
-
-
-inline void IMG_BrushRGBA32::getRadii(TUns32& rI, TUns32& rO) const
-{
- rI = m_ri;
- rO = m_ro;
-}
-
-inline float IMG_BrushRGBA32::getTransparency() const
-{
- return m_alpha;
-}
-
-inline void IMG_BrushRGBA32::getColor(IMG_ColorRGB& c) const
-{
- c = m_color;
-}
-
-
-#endif // _H_IMG_BrushRGBA32
-
diff --git a/source/blender/img/intern/IMG_CanvasRGBA32.cpp b/source/blender/img/intern/IMG_CanvasRGBA32.cpp
deleted file mode 100644
index 6070160d489..00000000000
--- a/source/blender/img/intern/IMG_CanvasRGBA32.cpp
+++ /dev/null
@@ -1,337 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-#include "IMG_CanvasRGBA32.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-IMG_CanvasRGBA32::IMG_CanvasRGBA32(TUns32 width, TUns32 height)
- : IMG_PixmapRGBA32(width, height)
-{
-}
-
-IMG_CanvasRGBA32::IMG_CanvasRGBA32(void* image, TUns32 width, TUns32 height, TUns32 rowBytes)
- : IMG_PixmapRGBA32(image, width, height, rowBytes)
-{
-}
-
-
-void IMG_CanvasRGBA32::blendPixmap(
- TUns32 xStart, TUns32 yStart, TUns32 xEnd, TUns32 yEnd,
- const IMG_PixmapRGBA32& pixmap, bool torus)
-{
- // Determine visibility of the line
- IMG_Line l (xStart, yStart, xEnd, yEnd); // Line used for blending
- IMG_Rect bnds (0, 0, m_width, m_height); // Bounds of this pixmap
- TVisibility v = bnds.getVisibility(l);
- if (!torus) {
- if (v == kNotVisible)
- return;
- if (v == kPartiallyVisible)
- bnds.clip(l);
- }
-
- float numSteps = (((float)l.getLength()) / ((float)pixmap.getWidth() / 4));
- //numSteps *= 4;
- numSteps = numSteps ? numSteps : 1;
- float step = 0.f, stepSize = 1.f / ((float)numSteps);
- TInt32 x, y;
- for (TUns32 s = 0; s < numSteps; s++) {
- l.getPoint(step, x, y);
- if (torus)
- IMG_PixmapRGBA32::blendPixmapTorus((TUns32)x, (TUns32)y, pixmap);
- else
- IMG_PixmapRGBA32::blendPixmap((TUns32)x, (TUns32)y, pixmap);
- step += stepSize;
- }
-}
-
-
-void IMG_CanvasRGBA32::blendPixmap(
- float uStart, float vStart, float uEnd, float vEnd,
- const IMG_PixmapRGBA32& pixmap, bool torus)
-{
- TUns32 xStart, yStart, xEnd, yEnd;
- getPixelAddress(uStart, vStart, xStart, yStart);
- getPixelAddress(uEnd, vEnd, xEnd, yEnd);
- blendPixmap(xStart, yStart, xEnd, yEnd, pixmap, torus);
-}
-
-
-void IMG_CanvasRGBA32::SoftenAt(float u, float v, TUns32 size, float alpha, float aspect, bool torus)
-{
- IMG_BrushRGBA32* brush = 0;
- int flag=0;
- try {
- IMG_ColorRGB c (1.0, 1.0, 1.0);
- brush = new IMG_BrushRGBA32 (size, size, c, alpha);
- }
- catch (...) {
- /* no brush , no fun ! */
- return;
- }
-
- TUns32 ro,ri;
- ro = size/2;
- ri = (int)(aspect/2.0f * size);
- if (ri > 2 ) ri =2;
- if (ri > ro ) ri =ro;
- brush->setRadii(ri,ro);
-
-
- TUns32 x, y;
- TUns32 xx, yy;
- getPixelAddress(u, v, x, y);
- xx = x - size/2;
- yy = y - size/2;
- if(torus) flag = 1;
-
- /* now modify brush */
- for (int i= 0 ; i<(int)size;i++){
- for (int j= 0 ; j<(int)size;j++){
-
- float sR,sG,sB,sA;
- float cR,cG,cB=0.0;
-
- if (torus)
- IMG_PixmapRGBA32::getRGBAatTorus(xx+i,yy+j ,&cR,&cG,&cB,0);
- else
- IMG_PixmapRGBA32::getRGBAat(xx+i,yy+j ,&cR,&cG,&cB,0);
-
- int ccount = 1;
- /*
- cR += 7.0*cR;
- cG += 7.0*cG;
- cB += 7.0*cB;
- ccount += 7.0;
- */
-
-add_if_in(xx+i+1,yy+j+1,cR,cG,cB,ccount,flag);
-add_if_in(xx+i+1,yy+j ,cR,cG,cB,ccount,flag);
-add_if_in(xx+i+1,yy+j-1,cR,cG,cB,ccount,flag);
-
-add_if_in(xx+i,yy+j+1,cR,cG,cB,ccount,flag);
-add_if_in(xx+i,yy+j-1,cR,cG,cB,ccount,flag);
-
-add_if_in(xx+i-1,yy+j+1,cR,cG,cB,ccount,flag);
-add_if_in(xx+i-1,yy+j ,cR,cG,cB,ccount,flag);
-add_if_in(xx+i-1,yy+j-1,cR,cG,cB,ccount,flag);
-
-
- sR =cR*255.0f/ccount;
- sG =cG*255.0f/ccount;
- sB =cB*255.0f/ccount;
-
- sA =255.0;
- brush->setRGBAat(i,j,&sR,&sG,&sB,NULL);
- }
- }
-
- /* apply */
- if (torus)
- IMG_PixmapRGBA32::blendPixmapTorus(x, y, *brush);
- else
- IMG_PixmapRGBA32::blendPixmap(x, y, *brush);
-
- /* done clean up */
- if (brush) {
- delete ((IMG_BrushRGBA32*)brush);
- brush = 0;
- }
-}
-
-
-IMG_BrushRGBA32* IMG_CanvasRGBA32::LiftBrush(TUns32 x, TUns32 y, TUns32 size, float alpha, float aspect, short flags )
-{
- IMG_BrushRGBA32* brush = 0;
- float mR,mG,mB=0.0;
- try {
- IMG_ColorRGB c (1.0, 1.0, 1.0);
- brush = new IMG_BrushRGBA32 (size, size, c, alpha);
- }
- catch (...) {
- /* no brush , no fun ! */
- return(NULL);
- }
-
- TUns32 ro,ri;
- ro = size/2;
- ri = (int)(aspect/2.0f * size);
- if (ri > 2 ) ri =2;
- if (ri > ro ) ri =ro;
- brush->setRadii(ri,ro);
-
-
- TUns32 xx, yy;
- xx = x - size/2;
- yy = y - size/2;
- IMG_PixmapRGBA32::getRGBAat(xx,yy,&mR,&mG,&mB,0);
- for (int i= 0 ; i<(int)size;i++){
- for (int j= 0 ; j<(int)size;j++){
- float cR,cG,cB,cA=0.0;
- cR = mR; cG = mG; cB = mB;
- int res =IMG_PixmapRGBA32::getRGBAat(xx+i,yy+j ,&cR,&cG,&cB,0);
- cR *= 255.0f;
- cG *= 255.0f;
- cB *= 255.0f;
- cA *= 0.0;
- if (res)
- brush->setRGBAat(i,j,&cR,&cG,&cB,NULL);
- else
- brush->setRGBAat(i,j,&cR,&cG,&cB,&cA);
-
- }
- }
- return(brush);
-}
-
-IMG_BrushRGBA32* IMG_CanvasRGBA32::LiftBrush(float u, float v, TUns32 size, float alpha, float aspect, short flags )
-{
- IMG_BrushRGBA32* brush = 0;
- float mR,mG,mB=0.0;
- try {
- IMG_ColorRGB c (1.0, 1.0, 1.0);
- brush = new IMG_BrushRGBA32 (size, size, c, alpha);
- }
- catch (...) {
- /* no brush , no fun ! */
- return(NULL);
- }
-
- TUns32 ro,ri;
- ro = size/2;
- ri = (int)(aspect/2.0f * size);
- if (ri > 2 ) ri =2;
- if (ri > ro ) ri =ro;
- brush->setRadii(ri,ro);
-
-
- TUns32 x, y;
- TUns32 xx, yy;
- getPixelAddress(u, v, x, y);
- xx = x - size/2;
- yy = y - size/2;
- IMG_PixmapRGBA32::getRGBAat(xx,yy,&mR,&mG,&mB,0);
- for (int i= 0 ; i<(int)size;i++){
- for (int j= 0 ; j<(int)size;j++){
- float cR,cG,cB=0.0;
- if (flags & 0x1)
- IMG_PixmapRGBA32::getRGBAatTorus(xx+i,yy+j ,&cR,&cG,&cB,0);
- else {
- cR = mR; cG = mG; cB = mB;
- IMG_PixmapRGBA32::getRGBAat(xx+i,yy+j ,&cR,&cG,&cB,0);
- }
- cR *= 255.0f;
- cG *= 255.0f;
- cB *= 255.0f;
- brush->setRGBAat(i,j,&cR,&cG,&cB,NULL);
- }
- }
- return(brush);
-}
-
-void IMG_CanvasRGBA32::Smear(float uStart, float vStart, float uEnd, float vEnd, TUns32 size, float alpha, float aspect, bool torus)
-{
- IMG_BrushRGBA32* brush = NULL;
- float du,dv;
- du = uEnd - uStart;
- dv = vEnd - vStart;
-
- try {
- brush = LiftBrush(uStart-du, vStart-dv, size, alpha, aspect, 1);
- }
- catch (...) {
- /* no brush , no fun ! */
- return;
- }
-
- if (brush) {
- blendPixmap(uStart, vStart, uEnd, vEnd, *brush, torus);
- delete(brush);
- }
-}
-
-void IMG_CanvasRGBA32::CloneAt(IMG_CanvasRGBA32* other,float u,float v,float cu,float cv,TUns32 size,float alpha,float aspect)
-{
- TUns32 x, y;
- TUns32 cx, cy;
- TUns32 xx, yy;
- getPixelAddress(u, v, x, y);
- getPixelAddress(cu, cv, cx, cy);
-
- xx = (x-cx);// - size/2;
- yy = (y-cy);// - size/2;
-
- if (other == NULL) return;
- IMG_BrushRGBA32* brush = NULL;
- try {
- brush = other->LiftBrush(xx,yy,size,alpha,aspect,1);
- }
- catch (...) {
- /* no brush , no fun ! */
- return;
- }
- if (brush){
- IMG_PixmapRGBA32::blendPixmap(x, y, *brush);
- delete(brush);
- }
-
-}
-
-
-
-int IMG_CanvasRGBA32::add_if_in(int x, int y,float &R,float &G,float &B, int &count, short flags)
-
-{
- float r,g,b= 0.0f;
- if ((flags & 0x1) == 0)
- {
- if (IMG_PixmapRGBA32::getRGBAat(x,y,&r,&g,&b,0))
- {
- R += r;
- G += g;
- B += b;
- count++;
- }
-}
- else {
-
- IMG_PixmapRGBA32::getRGBAatTorus(x,y,&r,&g,&b,0);
- R += r;
- G += g;
- B += b;
- count++;
- }
-
- return 1;
-}
diff --git a/source/blender/img/intern/IMG_CanvasRGBA32.h b/source/blender/img/intern/IMG_CanvasRGBA32.h
deleted file mode 100644
index 4c60e3522cc..00000000000
--- a/source/blender/img/intern/IMG_CanvasRGBA32.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-#ifndef _H_IMG_CanvasRGBA32
-#define _H_IMG_CanvasRGBA32
-
-#include "IMG_PixmapRGBA32.h"
-#include "IMG_BrushRGBA32.h"
-
-/**
- * A IMG_PixmapRGBA32 pixmap that allows for drawing with a IMG_BrushRGBA32.
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-class IMG_CanvasRGBA32 : public IMG_PixmapRGBA32 {
-public:
- int add_if_in(int x, int y, float &R, float &G, float &B, int &count, short flags);
- void Smear(float uStart, float vStart, float uEnd, float vEnd ,TUns32 size, float alpha, float aspect, bool torus=false);
- IMG_BrushRGBA32* LiftBrush(float u, float v, TUns32 size, float alpha, float aspect, short flags );
- IMG_BrushRGBA32* LiftBrush(TUns32 x, TUns32 y, TUns32 size, float alpha, float aspect, short flags);
- void SoftenAt(float u, float v, TUns32 size, float alpha, float aspect, bool torus=false);
- void CloneAt(IMG_CanvasRGBA32* other, float u, float v, float cu, float cv, TUns32 size, float alpha, float aspect);
- /**
- * Constructor.
- * @throw <IMG_MemPtr::Size> when an invalid width and/or height is passed.
- * @throw <IMG_MemPtr::Memory> when a there is not enough memory to allocate the image.
- * @param width the width in pixels of the image.
- * @param height the height in pixels of the image.
- */
- IMG_CanvasRGBA32(TUns32 width, TUns32 height);
-
- /**
- * Constructor.
- * The image data will not be freed upon destruction of this object.
- * The owner of this object is reponsible for that.
- * @throw <Size> when an invalid width and/or height is passed.
- * @param image pointer to the image data.
- * @param width the width in pixels of the image.
- * @param height the height in pixels of the image.
- */
- IMG_CanvasRGBA32(void* image, TUns32 width, TUns32 height, TUns32 rowBytes);
-
- /**
- * Blends a pixmap into this pixmap over a line.
- * Repeatedly pastes the given pixmap centered at the given line into this pixmap.
- * The alpha information in the given image is used to blend.
- * @todo implement wrapping modes when the pixmap does not fit within the bounds.
- * @todo update the drawing algorithm.
- * @param x x-coordinate of the center location of the image.
- * @param y y-coordinate of the center location of the image.
- * @param pixmap the pixmap to blend
- */
- virtual void blendPixmap(TUns32 xStart, TUns32 yStart, TUns32 xEnd, TUns32 yEnd, const IMG_PixmapRGBA32& pixmap, bool torus=false);
-
- /**
- * Blends a pixmap into this pixmap over a line in (u,v) coordinates.
- * Pastes the given pixmap centered at the given line into this pixmap.
- * The alpha information in the given image is used to blend.
- * @see IMG_PixmapRGBA32::blendPixmap(TUns32 xStart, TUns32 yStart, TUns32 yStart, TUns32 yEnd, const IMG_PixmapRGBA32& pixmap)
- * @todo implement wrapping modes when the pixmap does not fit within the bounds.
- * @param u u-coordinate of the center location of the image.
- * @param v v-coordinate of the center location of the image.
- * @param pixmap the pixmap to blend
- */
- virtual void blendPixmap(float uStart, float vStart, float uEnd, float vEnd, const IMG_PixmapRGBA32& pixmap, bool torus=false);
-};
-
-
-#endif // _H_IMG_CanvasRGBA32
-
diff --git a/source/blender/img/intern/IMG_Color.h b/source/blender/img/intern/IMG_Color.h
deleted file mode 100644
index 8343f55e4f0..00000000000
--- a/source/blender/img/intern/IMG_Color.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- * @author Maarten Gribnau
- * @date March 7, 2001
- */
-
-#ifndef _H_IMG_Color
-#define _H_IMG_Color
-
-class IMG_ColorRGBA;
-
-/**
- * Implements a color with red, green and blue components.
- * Components are stored as floats.
- * @author Maarten Gribnau
- * @date March 7, 2001
- */
-
-class IMG_ColorRGB {
-public:
- /**
- * Constructs a color with the given values.
- * @param r requested red component of the color
- * @param g requested green component of the color
- * @param b requested blue component of the color
- */
- IMG_ColorRGB(float r=0, float g=0, float b=0)
- : m_r(r), m_g(g), m_b(b) {}
-
- /**
- * Copy constructor.
- * @param c the color to copy.
- */
- IMG_ColorRGB(const IMG_ColorRGB& c)
- : m_r(c.m_r), m_g(c.m_g), m_b(c.m_b) {}
-
- /**
- * Constructs a color without alpha from one with.
- * @param c the color to copy.
- */
- inline IMG_ColorRGB(const IMG_ColorRGBA& c);
-
- /** Red component of the color */
- float m_r;
- /** Green component of the color */
- float m_g;
- /** Blue component of the color */
- float m_b;
-};
-
-
-/**
- * Implements a color with red, green, blue and alpha components.
- * Components are stored as floats.
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-class IMG_ColorRGBA {
-public:
- /**
- * Constructs a color with the given values.
- * @param r requested red component of the color
- * @param g requested green component of the color
- * @param b requested blue component of the color
- * @param a requested alpha component of the color
- */
- IMG_ColorRGBA(float r=0, float g=0, float b=0, float a=0)
- : m_r(r), m_g(g), m_b(b), m_a(a) {}
-
- /**
- * Copy constructor.
- * @param c the color to copy.
- */
- IMG_ColorRGBA(const IMG_ColorRGBA& c)
- : m_r(c.m_r), m_g(c.m_g), m_b(c.m_b), m_a(c.m_a) {}
-
- /**
- * Constructs a color with alpha from one without.
- * @param c the color to copy.
- */
- IMG_ColorRGBA(const IMG_ColorRGB& c)
- : m_r(c.m_r), m_g(c.m_g), m_b(c.m_b), m_a(0) {}
-
- /**
- * Blends the given color with this color.
- * Uses the alpha of the given color for blending.
- * The alpha of this color is left untouched.
- * @param c the color to blend
- */
- inline void blendColor(const IMG_ColorRGBA& c);
-
- /** Red component of the color */
- float m_r;
- /** Green component of the color */
- float m_g;
- /** Blue component of the color */
- float m_b;
- /** Alpha component of the color */
- float m_a;
-};
-
-inline IMG_ColorRGB::IMG_ColorRGB(const IMG_ColorRGBA& c)
- : m_r(c.m_r), m_g(c.m_g), m_b(c.m_b) {}
-
-inline void IMG_ColorRGBA::blendColor(const IMG_ColorRGBA& c)
-{
- float r1 = 1 - c.m_a; // The reverse of alpha
-#if IMG_REVERSED_ALPHA
- m_r = c.m_a * m_r + r1 * c.m_r;
- m_g = c.m_a * m_g + r1 * c.m_g;
- m_b = c.m_a * m_b + r1 * c.m_b;
-#else
- m_r = r1 * m_r + c.m_a * c.m_r;
- m_g = r1 * m_g + c.m_a * c.m_g;
- m_b = r1 * m_b + c.m_a * c.m_b;
-#endif
-}
-
-
-#endif // _H_IMG_Color
-
diff --git a/source/blender/img/intern/IMG_Line.cpp b/source/blender/img/intern/IMG_Line.cpp
deleted file mode 100644
index 4fb4fb83ca4..00000000000
--- a/source/blender/img/intern/IMG_Line.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-#include "IMG_Line.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
diff --git a/source/blender/img/intern/IMG_Line.h b/source/blender/img/intern/IMG_Line.h
deleted file mode 100644
index 0eb4a261d5f..00000000000
--- a/source/blender/img/intern/IMG_Line.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- * @author Maarten Gribnau
- * @date March 12, 2001
- */
-
-#ifndef _H_IMG_Line
-#define _H_IMG_Line
-
-#include "IMG_Types.h"
-#include <math.h>
-
-/**
- * A line from a start to an end point.
- * Used for drawing lines in images.
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-class IMG_Line {
-public:
-
- /**
- * Constructs a line with the given values.
- * @param xs start point x-coordinate
- * @param ys start point y-coordinate
- * @param xe end point x-coordinate
- * @param ye end point y-coordinate
- */
- IMG_Line(TInt32 xs=0, TInt32 ys=0, TInt32 xe=0, TInt32 ye=0)
- : m_xs(xs), m_ys(ys), m_xe(xe), m_ye(ye) {}
-
- /**
- * Copy constructor.
- * @param l line to copy
- */
- IMG_Line(const IMG_Line& l)
- : m_xs(l.m_xs), m_ys(l.m_ys), m_xe(l.m_xe), m_ye(l.m_ye) {}
-
- /**
- * Destructor.
- */
- virtual ~IMG_Line() {};
-
- /**
- * Access to line length.
- * @return length of the line.
- */
- virtual inline float getLength() const;
-
- /**
- * Sets all members of the line.
- * @param xs start point x-coordinate
- * @param ys start point y-coordinate
- * @param xe end point x-coordinate
- * @param ye end point y-coordinate
- */
- virtual inline void set(TInt32 xs, TInt32 ys, TInt32 xe, TInt32 ye);
-
- /**
- * Returns whether this line is empty.
- * Empty line are lines that have length==0.
- * @return boolean value (true==empty line)
- */
- virtual inline bool isEmpty() const;
-
- /**
- * Returns point at given value for line parameter.
- * Calculates the coordinates of a point on the line.
- * @param t line parameter value (0<=t<=1) of the point requested.
- * @param x x-coordinate of the point.
- * @param y y-coordinate of the point.
- */
- virtual inline void getPoint(float t, TInt32& x, TInt32& y) const;
-
- /** Start point x-coordinate */
- TInt32 m_xs;
- /** Start point y-coordinate */
- TInt32 m_ys;
- /** End point x-coordinate */
- TInt32 m_xe;
- /** End point y-coordinate */
- TInt32 m_ye;
-};
-
-
-inline float IMG_Line::getLength() const
-{
- TInt32 dx = m_xe - m_xs;
- TInt32 dy = m_ye - m_ys;
- return ((float)::sqrt(((float)dx)*dx + ((float)dy)*dy));
-}
-
-
-inline void IMG_Line::set(TInt32 xs, TInt32 ys, TInt32 xe, TInt32 ye)
-{
- m_xs = xs; m_ys = ys; m_xe = xe; m_ye = ye;
-}
-
-
-inline bool IMG_Line::isEmpty() const
-{
- return (getLength() <= 0);
-}
-
-
-inline void IMG_Line::getPoint(float t, TInt32& x, TInt32& y) const
-{
- x = (TInt32) (((float)m_xs) + (t * (m_xe - m_xs)));
- y = (TInt32) (((float)m_ys) + (t * (m_ye - m_ys)));
-}
-
-#endif // _H_IMG_Line
-
diff --git a/source/blender/img/intern/IMG_MemPtr.h b/source/blender/img/intern/IMG_MemPtr.h
deleted file mode 100644
index 772e7aa9886..00000000000
--- a/source/blender/img/intern/IMG_MemPtr.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- * @author Maarten Gribnau
- * @date March 8, 2001
- */
-
-#ifndef _H_IMG_MemPtr
-#define _H_IMG_MemPtr
-
-#include <stddef.h>
-
-/**
- * A memory pointer for memory of any type.
- * It can be used to avoid memory leaks when allocating memory in constructors.
- * @author Maarten Gribnau
- * @date March 8, 2001
- */
-
-template <class T> class IMG_MemPtr {
-public:
- /** Pointer to the memory */
- T* m_p;
- bool m_owned;
-
- /**
- * Size exception.
- * A size exception is thrown when an invalid width and/or height is passed.
- */
- class Size {};
- /**
- * Memory exception.
- * A size exception is thrown when a there is not enough memory to allocate the image.
- */
- class Memory {};
-
- /**
- * Constructs a memory pointer.
- * @param s requested size of the pointer
- * @throw <Size> when an invalid width and/or height is passed.
- * @throw <Memory> when a there is not enough memory to allocate the image.
- */
- IMG_MemPtr(size_t s)
- : m_p(0), m_owned(false)
- {
- if (s > 0) {
- m_p = new T[s];
- if (!m_p) {
- throw Memory();
- }
- m_owned = true;
- }
- else {
- throw Size();
- }
- }
-
- /**
- * Constructs a memory pointer from a pointer.
- * @param p the pointer
- * @param s requested size of the pointer
- * @throw <Size> when an invalid width and/or height is passed.
- */
- IMG_MemPtr(void* p, size_t s)
- : m_p(0), m_owned(false)
- {
- if (p && (s > 0)) {
- m_p = (T*)p;
- }
- else {
- throw Size();
- }
- }
-
- /**
- * Destructor.
- */
- ~IMG_MemPtr() { if (m_p && m_owned) { delete [] m_p; m_p = 0; } }
-
- /**
- * Access to the memory.
- * @return pointer to the memory
- */
- operator T*() { return m_p; }
-};
-
-#endif // _H_IMG_MemPtr
-
diff --git a/source/blender/img/intern/IMG_Pixmap.cpp b/source/blender/img/intern/IMG_Pixmap.cpp
deleted file mode 100644
index dba2fddb4dd..00000000000
--- a/source/blender/img/intern/IMG_Pixmap.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-#include "IMG_Pixmap.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-IMG_Pixmap::IMG_Pixmap()
-{
- m_image = 0;
- m_width = 0;
- m_height = 0;
- m_rowBytes = 0;
- m_pixelSize = 0;
- m_pixelType = kPixelTypeRGB32;
-/*
-#if OS_MACINTOSH
- bitOrder = kQ3EndianBig;
- byteOrder = kQ3EndianBig;
-#else
- bitOrder = kQ3EndianLittle;
- byteOrder = kQ3EndianLittle;
-#endif
-*/
-}
-
-
-IMG_Pixmap::~IMG_Pixmap()
-{
-}
diff --git a/source/blender/img/intern/IMG_Pixmap.h b/source/blender/img/intern/IMG_Pixmap.h
deleted file mode 100644
index bde5b76e9b3..00000000000
--- a/source/blender/img/intern/IMG_Pixmap.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-#ifndef _H_IMG_Pixmap
-#define _H_IMG_Pixmap
-
-#include "IMG_Types.h"
-#include "IMG_Color.h"
-#include "IMG_Rect.h"
-
-
-/**
- * Base class for pixmaps. Here a more elaborate description of the IMG_Pixmap class should be written.
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-class IMG_Pixmap {
-public:
- /**
- * The type of pixels.
- * The type of pixels that are stored in this pixmap.
- */
- typedef enum {
- kPixelTypeRGB32 = 0, /**< R:8, G:8, B:8, Ignore:8 */
- kPixelTypeRGBA32 = 1, /**< R:8, G:8, B:8, Alpha:8 */
-// kPixelTypeRGB16 = 2, /**< Ignore:1, R:5, G:5, B:5 */
-// kPixelTypeRGBA16 = 3, /**< Alpha:1, R:5, G:5, B:5 */
-// kPixelTypeRGB16_565 = 4, /**< R:5, G:6, B:5 */
- kPixelTypeRGB24 = 5 /**< R:8, G:8, B:8 */
- } PixelType;
-
- /**
- * Default constructor.
- */
- IMG_Pixmap();
-
- /**
- * Destructor.
- */
- virtual ~IMG_Pixmap();
-
- /**
- * Access to image data
- * @return pointer to the image data
- */
- inline void* getImage() const;
-
- /**
- * Access to image width.
- * @return width of the image
- */
- inline TUns32 getWidth() const;
-
- /**
- * Access to image height.
- * @return height of the image
- */
- inline TUns32 getHeight() const;
-
- /**
- * Returns the bounds of the pixmap in a rectangle.
- * @param bounds of the image
- */
- inline void getBounds(IMG_Rect& r) const;
-
- /**
- * Access to pixel type.
- * @return the pixel type
- */
- inline PixelType getPixelType() const;
-
- /**
- * Clamps u, v coordinates between 0 and 1.
- * @param u requested u-coordinate
- * @param v requested v-coordinate
- */
- inline void clampUV(float& u, float& v) const;
-
- /**
- * Converts (u,v) coordinates to pixel addresses.
- * Assumes that (u,v) coordinates are in the [0,1] range.
- * @param u requested u-coordinate in the image
- * @param v requested v-coordinate in the image
- * @param x calculated x-coordinate in the image
- * @param y calculated y-coordinate in the image
- */
- inline void getPixelAddress(float u, float v, TUns32& x, TUns32& y) const;
-
- /**
- * Fills the rectangle given with the color given.
- * Performs a bounds check.
- * @param r requested bounds rectangle in the image
- * @param c color to use
- */
- virtual void fillRect(const IMG_Rect& r, const IMG_ColorRGBA& c) = 0;
-
-protected:
- /** Pointer to the image data */
- void* m_image;
- /** Width of the image in pixels */
- TUns32 m_width;
- /** Height of the image in pixels */
- TUns32 m_height;
- /** Number of bytes for one row in the image. */
- TUns32 m_rowBytes;
- /** Size in bits for one pixel */
- TUns32 m_pixelSize;
- /** Type of pixels in this image. */
- PixelType m_pixelType;
-// TQ3Endian m_bitOrder;
-// TQ3Endian m_byteOrder;
-};
-
-inline void* IMG_Pixmap::getImage() const
-{
- return m_image;
-}
-
-inline TUns32 IMG_Pixmap::getWidth() const
-{
- return m_width;
-}
-
-inline TUns32 IMG_Pixmap::getHeight() const
-{
- return m_height;
-}
-
-inline void IMG_Pixmap::getBounds(IMG_Rect& r) const
-{
- r.set(0, 0, m_width, m_height);
-}
-
-inline IMG_Pixmap::PixelType IMG_Pixmap::getPixelType() const
-{
- return m_pixelType;
-}
-
-inline void IMG_Pixmap::clampUV(float& u, float& v) const
-{
- if (u < 0.f) u = 0.f;
- if (u > 1.f) u = 1.f;
- if (v < 0.f) v = 0.f;
- if (v > 1.f) v = 1.f;
-}
-
-inline void IMG_Pixmap::getPixelAddress(float u, float v, TUns32& x, TUns32& y) const
-{
- //MAART TEMP! clampUV(u, v);
- x = (TUns32)(((float)m_width) * u);
- y = (TUns32)(((float)m_height) * v);
-}
-
-#endif // _H_IMG_Pixmap
-
diff --git a/source/blender/img/intern/IMG_PixmapRGBA32.cpp b/source/blender/img/intern/IMG_PixmapRGBA32.cpp
deleted file mode 100644
index 49b9348a4be..00000000000
--- a/source/blender/img/intern/IMG_PixmapRGBA32.cpp
+++ /dev/null
@@ -1,332 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-#include "IMG_PixmapRGBA32.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-IMG_PixmapRGBA32::IMG_PixmapRGBA32(TUns32 width, TUns32 height)
- : IMG_Pixmap(), m_mem(width * height)
-{
- m_image = m_mem;
- m_width = width;
- m_height = height;
- m_rowBytes = width * sizeof(TPixelRGBA32);
- m_pixelSize = 8 * sizeof(TPixelRGBA32);
- m_pixelType = kPixelTypeRGBA32;
-}
-
-
-IMG_PixmapRGBA32::IMG_PixmapRGBA32(void* image, TUns32 width, TUns32 height, TUns32 rowBytes)
- : IMG_Pixmap(), m_mem(image, width * rowBytes)
-{
- m_image = m_mem;
- m_width = width;
- m_height = height;
- m_rowBytes = rowBytes;
- m_pixelSize = 8 * sizeof(TPixelRGBA32);
- m_pixelType = kPixelTypeRGBA32;
-}
-
-
-void IMG_PixmapRGBA32::fillRect(const IMG_Rect& r, const IMG_ColorRGB& c)
-{
- IMG_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap
- IMG_Rect r_bnds (r); // Area to set
-
- // Determine visibility
- TVisibility v = t_bnds.getVisibility(r_bnds);
- if (v == kNotVisible) return;
- if (v == kPartiallyVisible) {
- // Clip the destination rectangle to the bounds of this pixmap
- t_bnds.clip(r_bnds);
- if (r_bnds.isEmpty()) {
- return;
- }
- }
-
-#if 0
- // Set new pixels using shifting
- // Prepare the pixel value to set
- IMG_ColorRGBA ca (c);
- TPixelRGBA32 pv = getPixelValue(c);
- // Mask off the alpha bits
- pv &= 0x00FFFFFF; //0xFFFFFF00;
-
- // Set the pixels in the destination rectangle
- for (TInt32 y = r.m_t; y < r.m_b; y++) {
- // Park pixel pointer at the start pixels
- TPixelPtr desPtr = getPixelPtr(r_bnds.m_l, y);
- for (TInt32 x = r.m_l; x < r.m_r; x++) {
- // Set the new pixel value (retain current alpha)
- *(desPtr++) = pv | ((*desPtr) & 0xFF000000); //0x000000FF);
- }
- }
-#else
- // Set new values using byte indexing
- //IMG_ColorRGBA ca (c);
- TPixelRGBA32 src = getPixelValue(c);
- TPixelPtr desPtr;
- TUns8* srcBytes = (TUns8*) &src;
-
- // Set the pixels in the destination rectangle
- for (TInt32 y = r.m_t; y < r.m_b; y++) {
- // Park pixel pointer at the start pixels
- desPtr = getPixelPtr(r_bnds.m_l, y);
- for (TInt32 x = r.m_l; x < r.m_r; x++) {
- // Set the new pixel value (retain current alpha)
- ((TUns8*)desPtr)[bi_r] = srcBytes[bi_r];
- ((TUns8*)desPtr)[bi_g] = srcBytes[bi_g];
- ((TUns8*)desPtr)[bi_b] = srcBytes[bi_b];
- desPtr++;
- }
- }
-#endif
-}
-
-
-void IMG_PixmapRGBA32::fillRect(const IMG_Rect& r, const IMG_ColorRGBA& c)
-{
- IMG_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap
- IMG_Rect r_bnds (r); // Area to set
-
- // Determine visibility
- TVisibility v = t_bnds.getVisibility(r_bnds);
- if (v == kNotVisible) return;
- if (v == kPartiallyVisible) {
- // Clip the destination rectangle to the bounds of this pixmap
- t_bnds.clip(r_bnds);
- if (r_bnds.isEmpty()) {
- return;
- }
- }
-
- // Set the pixels in the destination rectangle
- TPixelRGBA32 pixel = getPixelValue(c);
- for (TInt32 y = r.m_t; y < r.m_b; y++) {
- // Park pixel pointer at the start pixels
- TPixelPtr desPtr = getPixelPtr(r_bnds.m_l, y);
- for (TInt32 x = r.m_l; x < r.m_r; x++) {
- *(desPtr++) = pixel;
- }
- }
-}
-
-
-void IMG_PixmapRGBA32::setPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap, const IMG_Rect& bnds)
-{
- IMG_Rect i_bnds (bnds); // Bounds of input pixmap
- IMG_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap
- IMG_Rect p_bnds (bnds); // Bounds of the paste area
- p_bnds.setCenter(x, y);
-
- // The next check could be removed if the caller is made responsible for handing us non-empty rectangles
- if (i_bnds.isEmpty()) {
- // Nothing to do
- return;
- }
-
- // Determine visibility of the paste area
- TVisibility v = t_bnds.getVisibility(p_bnds);
- if (v == kNotVisible) return;
- if (v == kPartiallyVisible) {
- // Clipping is needed
- if (p_bnds.m_l < 0) {
- i_bnds.m_l += p_bnds.m_l;
- p_bnds.m_l = 0;
- }
- if (p_bnds.m_t < 0) {
- i_bnds.m_t += p_bnds.m_t;
- p_bnds.m_t = 0;
- }
- TInt32 d = p_bnds.getWidth();
- if (p_bnds.m_r > d) {
- i_bnds.m_t -= d - p_bnds.m_r;
- p_bnds.m_t = d;
- }
- d = p_bnds.getHeight();
- if (p_bnds.m_b > d) {
- i_bnds.m_b -= d - p_bnds.m_b;
- p_bnds.m_b = d;
- }
- }
-
- // Iterate through the rows
- for (TInt32 r = 0; r < p_bnds.getHeight(); r++) {
- // Park pixel pointers at the start pixels
- TPixelPtr srcPtr = getPixelPtr(i_bnds.m_l, i_bnds.m_t + r);
- TPixelPtr desPtr = getPixelPtr(p_bnds.m_l, p_bnds.m_t + r);
- // Iterate through the columns
- for (int c = 0; c < p_bnds.getWidth(); c++) {
- *(desPtr++) = *(srcPtr++);
- }
- }
-}
-
-
-void IMG_PixmapRGBA32::blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap, const IMG_Rect& bnds)
-{
- IMG_Rect i_bnds (bnds); // Bounds of input pixmap
- IMG_Rect t_bnds (0, 0, m_width, m_height); // Bounds of this pixmap
- IMG_Rect p_bnds (bnds); // Bounds of the paste area
- p_bnds.setCenter(x, y);
-
- // The next check could be removed if the caller is made responsible for handing us non-empty rectangles
- if (i_bnds.isEmpty()) {
- // Nothing to do
- return;
- }
-
- // Determine visibility of the paste area
- TVisibility v = t_bnds.getVisibility(p_bnds);
- if (v == kNotVisible) return;
- if (v == kPartiallyVisible) {
- // Clipping is needed
- if (p_bnds.m_l < 0) {
- i_bnds.m_l += -p_bnds.m_l;
- p_bnds.m_l = 0;
- }
- if (p_bnds.m_t < 0) {
- i_bnds.m_t += -p_bnds.m_t;
- p_bnds.m_t = 0;
- }
- TInt32 d = t_bnds.getWidth();
- if (p_bnds.m_r > d) {
- i_bnds.m_r -= p_bnds.m_r - d;
- p_bnds.m_r = d;
- }
- d = t_bnds.getHeight();
- if (p_bnds.m_b > d) {
- i_bnds.m_b -= p_bnds.m_b - d;
- p_bnds.m_b = d;
- }
- }
-
- IMG_ColorRGBA srcColor;
- IMG_ColorRGBA desColor;
-
- // Iterate through the rows
- for (int r = 0; r < p_bnds.getHeight(); r++) {
- // Park pixel pointers at the start pixels
- TPixelPtr srcPtr = pixmap.getPixelPtr(i_bnds.m_l, i_bnds.m_t + r);
- TPixelPtr desPtr = getPixelPtr(p_bnds.m_l, p_bnds.m_t + r);
- // Iterate through the columns
- for (int c = 0; c < p_bnds.getWidth(); c++) {
- // Retrieve colors from source and destination pixmaps
- getColor(*srcPtr, srcColor);
- getColor(*desPtr, desColor);
- // Blend the colors
- desColor.blendColor(srcColor);
- // Write color back to destination pixmap
- *desPtr = getPixelValue(desColor);
- srcPtr++;
- desPtr++;
- }
- }
-}
-
-
-void IMG_PixmapRGBA32::blendPixmap(float u, float v, const IMG_PixmapRGBA32& pixmap)
-{
- TUns32 x, y;
- getPixelAddress(u, v, x, y);
- blendPixmap(x, y, pixmap);
-}
-
-int IMG_PixmapRGBA32::getRGBAat(TUns32 x, TUns32 y, float *R, float *G, float *B, float *A) const
-{
- TPixelPtr srcPtr = 0;
- if ((x >= m_width) || (y >= m_height) ) return 0;
- srcPtr = getPixelPtr(x,y);
- if (srcPtr){
- IMG_ColorRGBA srcColor;
- getColor(*srcPtr, srcColor);
- if(R) *R = srcColor.m_r;
- if(G) *G = srcColor.m_g;
- if(B) *B = srcColor.m_b;
- if(A) *A = srcColor.m_a;
- return 1;
- }
- return 0;
-
-}
-
-int IMG_PixmapRGBA32::getRGBAatTorus(int x, int y, float *R, float *G, float *B, float *A)
-{
- x %= m_width;
- y %= m_height;
- return getRGBAat(x,y,R,G,B,A);
-}
-
-void IMG_PixmapRGBA32::setRGBAat(TUns32 x, TUns32 y, float *R, float *G, float *B, float *A)
-{
- TPixelPtr desPtr = 0;
- desPtr = getPixelPtr(x,y);
- if (desPtr){
- if(R) ((TUns8*)desPtr)[bi_r] = (TUns8)(*R);
- if(G) ((TUns8*)desPtr)[bi_g] = (TUns8)(*G);
- if(B) ((TUns8*)desPtr)[bi_b] = (TUns8)(*B);
- if(A) ((TUns8*)desPtr)[bi_a] = (TUns8)(*A);
-
-
- }
-
-}
-
-void IMG_PixmapRGBA32::blendPixmapTorus(TUns32 x, TUns32 y,const IMG_PixmapRGBA32 &pixmap)
-{
- float sR,sG,sB,sA, bR,bG,bB,bA;
- IMG_Rect bnds;
- pixmap.getBounds(bnds);
- int ym = bnds.getHeight();
- int xm = bnds.getWidth();
- for (int xa = 0; xa < xm; xa ++)
- for (int ya = 0; ya < ym; ya ++){
- int xt = (xa-xm/2 + x) % (m_width );
- int yt = (ya-xm/2 + y) % (m_height);
-
- getRGBAat(xt,yt,&sR,&sG,&sB,&sA);
-
- pixmap.getRGBAat(xa,ya,&bR,&bG,&bB,&bA);
-
- sR = sR*(1-bA) + bR*bA;
- sG = sG*(1-bA) + bG*bA;
- sB = sB*(1-bA) + bB*bA;
-
- sR *= 255.0f;
- sG *= 255.0f;
- sB *= 255.0f;
-
- setRGBAat(xt,yt,&sR,&sG,&sB,0);
- }
-}
diff --git a/source/blender/img/intern/IMG_PixmapRGBA32.h b/source/blender/img/intern/IMG_PixmapRGBA32.h
deleted file mode 100644
index 0c9352c260f..00000000000
--- a/source/blender/img/intern/IMG_PixmapRGBA32.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-#ifndef _H_IMG_PixmapRGBA32
-#define _H_IMG_PixmapRGBA32
-
-#include "IMG_Pixmap.h"
-#include "IMG_MemPtr.h"
-
-/**
- * Pixmap of kPixelTypeRGBA32 type.
- * A pixmap with 24 bits per pixel in ABGR format.
- * Provides methods to fill rectangular areas in this image with a color.
- * Provides methods to paste or blend other pixmaps into this pixmap.
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-class IMG_PixmapRGBA32 : public IMG_Pixmap {
-public:
- virtual void blendPixmapTorus(TUns32 x, TUns32 y,const IMG_PixmapRGBA32& pixmap);
- void setRGBAat(TUns32 x, TUns32 y, float* R, float* G, float* B,float* A);
- int getRGBAat(TUns32 x, TUns32 y, float* R, float* G, float* B,float* A) const;
- int getRGBAatTorus(int x, int y, float *R, float *G, float *B, float *A);
-
- /**
- * The pixel type in this pixmap.
- */
- typedef TUns32 TPixelRGBA32;
-
- /** The pixel pointer type of this pixmap. */
- typedef TPixelRGBA32* TPixelPtr;
-
- /** Indices of color component byes within a pixel. */
- typedef enum {
- bi_r = 0,
- bi_g = 1,
- bi_b = 2,
- bi_a = 3
- } TPixelIndex;
-
- /** "Save" memory pointer. */
- IMG_MemPtr<TPixelRGBA32> m_mem;
-
- /**
- * Constructor.
- * Creates a new pixmap of the kPixelTypeRGBA32 type with the requested dimensions.
- * @throw <IMG_MemPtr::Size> when an invalid width and/or height is passed.
- * @throw <IMG_MemPtr::Memory> when a there is not enough memory to allocate the image.
- * @param width the width in pixels of the image.
- * @param height the height in pixels of the image.
- */
- IMG_PixmapRGBA32(TUns32 width, TUns32 height);
-
- /**
- * Constructor.
- * Creates a new pixmap of the kPixelTypeRGBA32 from a pointer to image data.
- * The image data will not be freed upon destruction of this object.
- * The owner of this object is reponsible for that.
- * @throw <Size> when an invalid width and/or height is passed.
- * @param image pointer to the image data.
- * @param width the width in pixels of the image.
- * @param height the height in pixels of the image.
- */
- IMG_PixmapRGBA32(void* image, TUns32 width, TUns32 height, TUns32 rowBytes);
-
-#if 0
- /**
- * Destructor.
- */
- virtual ~IMG_PixmapRGBA32();
-#endif
-
- /**
- * Fills the rectangle given with the color given.
- * Retains the alpha values.
- * Performs a bounds check.
- * @param r requested bounds rectangle in the image
- * @param c color to use
- */
- virtual void fillRect(const IMG_Rect& r, const IMG_ColorRGB& c);
-
- /**
- * Fills the rectangle given with the color given.
- * Sets the alpha values from the color.
- * Performs a bounds check.
- * @param r requested bounds rectangle in the image
- * @param c color to use
- */
- virtual void fillRect(const IMG_Rect& r, const IMG_ColorRGBA& c);
-
- /**
- * Pastes a pixmap into this pixmap.
- * Pastes the given pixmap centered at the given coordinates into this pixmap.
- * Ignores the alpha information, this is pasted too.
- * @todo implement wrapping modes when the pixmap does not fit within the bounds.
- * @param x x-coordinate of the center location of the image.
- * @param y y-coordinate of the center location of the image.
- * @param pixmap the pixmap to paste.
- */
- inline virtual void setPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap);
-
- /**
- * Pastes an area in a pixmap into this pixmap.
- * Pastes an area of the given pixmap centered at the given coordinates into this pixmap.
- * Ignores the alpha information, this is pasted too.
- * @todo implement wrapping modes when the pixmap does not fit within the bounds.
- * @param x x-coordinate of the center location of the image.
- * @param y y-coordinate of the center location of the image.
- * @param pixmap the pixmap to paste.
- * @param bnds the bounds of the area of the pixmap to paste.
- */
- virtual void setPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap, const IMG_Rect& bnds);
-
- /**
- * Blends a pixmap into this pixmap.
- * Blends the given pixmap centered at the given coordinates into this pixmap.
- * The alpha information in the given image is used to blend.
- * @todo implement wrapping modes when the pixmap does not fit within the bounds.
- * @param x x-coordinate of the center location of the image.
- * @param y y-coordinate of the center location of the image.
- * @param pixmap the pixmap to blend.
- */
- virtual void blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap);
-
- /**
- * Blends an area of a pixmap into this pixmap.
- * Blends an area of the given pixmap centered at the given coordinates into this pixmap.
- * The alpha information in the given image is used to blend.
- * @todo implement wrapping modes when the pixmap does not fit within the bounds.
- * @param x x-coordinate of the center location of the image.
- * @param y y-coordinate of the center location of the image.
- * @param pixmap the pixmap to blend.
- * @param bnds the bounds of the area of the pixmap to blend.
- */
- virtual void blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap, const IMG_Rect& bnds);
-
- /**
- * Blends a pixmap into this pixmap at (u,v) coordinates.
- * Pastes the given pixmap centered at the given coordinates into this pixmap.
- * The alpha information in the given image is used to blend.
- * @see IMG_PixmapRGBA32::blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap)
- * @todo implement wrapping modes when the pixmap does not fit within the bounds.
- * @param u u-coordinate of the center location of the image.
- * @param v v-coordinate of the center location of the image.
- * @param pixmap the pixmap to blend
- */
- virtual void blendPixmap(float u, float v, const IMG_PixmapRGBA32& pixmap);
-
-protected:
- /**
- * Returns pointer to the pixel.
- * Returns a pointer of TPixelPtr type to the pixel at the requested coordinates.
- * Does not perform a bounds check!
- * @param x column address of the pixel.
- * @param y row address of the pixel.
- * @return the pointer calculated.
- */
- inline TPixelPtr getPixelPtr(TUns32 x, TUns32 y) const;
-
- /**
- * Returns the pixel value of a color.
- * @param c the color to convert
- * @return the pixel value calculated
- */
- inline TPixelRGBA32 getPixelValue(const IMG_ColorRGBA& c) const;
-
- /**
- * Returns the color of from a pixel value.
- * @param p the pixel value
- * @param c the color calculated
- */
- inline void getColor(TPixelRGBA32 p, IMG_ColorRGBA& c) const;
-};
-
-inline void IMG_PixmapRGBA32::setPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap)
-{
- IMG_Rect bnds;
- pixmap.getBounds(bnds);
- setPixmap(x, y, pixmap, bnds);
-}
-
-inline void IMG_PixmapRGBA32::blendPixmap(TUns32 x, TUns32 y, const IMG_PixmapRGBA32& pixmap)
-{
- IMG_Rect bnds;
- pixmap.getBounds(bnds);
- blendPixmap(x, y, pixmap, bnds);
-}
-
-inline IMG_PixmapRGBA32::TPixelPtr IMG_PixmapRGBA32::getPixelPtr(TUns32 x, TUns32 y) const
-{
- return (TPixelPtr) (((TUns8*)m_image) + (y*m_rowBytes) + (x*4));
-}
-
-
-inline IMG_PixmapRGBA32::TPixelRGBA32 IMG_PixmapRGBA32::getPixelValue(const IMG_ColorRGBA& c) const
-{
-#if 0
- // Obtain pixel value through shifting
- TPixelRGBA32 p = ((TPixelRGBA32) (((float) 0xFF) * c.m_a)) << 24;
- p |= ((TPixelRGBA32) (((float) 0xFF) * c.m_b)) << 16;
- p |= ((TPixelRGBA32) (((float) 0xFF) * c.m_g)) << 8;
- p |= ((TPixelRGBA32) (((float) 0xFF) * c.m_r));
- return p;
-#else
- // Obtain pixel value through byte indexing
- TPixelRGBA32 pixel;
- TUns8* bytes = (TUns8*)&pixel;
- bytes[bi_r] = (TUns8)(((float) 0xFF) * c.m_r);
- bytes[bi_g] = (TUns8)(((float) 0xFF) * c.m_g);
- bytes[bi_b] = (TUns8)(((float) 0xFF) * c.m_b);
- bytes[bi_a] = (TUns8)(((float) 0xFF) * c.m_a);
- return pixel;
-#endif
-}
-
-inline void IMG_PixmapRGBA32::getColor(TPixelRGBA32 p, IMG_ColorRGBA& c) const
-{
-#if 0
- // Obtain color value through shifting
- c.m_a = ((float) ((p >> 24) & 0x00FF)) / ((float) 0xFF);
- c.m_b = ((float) ((p >> 16) & 0x00FF)) / ((float) 0xFF);
- c.m_g = ((float) ((p >> 8) & 0x00FF)) / ((float) 0xFF);
- c.m_r = ((float) ( p & 0x00FF)) / ((float) 0xFF);
-#else
- // Obtain color value through byte indexing
- TUns8* bytes = (TUns8*)&p;
- c.m_r = ((float)bytes[bi_r]) / ((float) 0xFF);
- c.m_g = ((float)bytes[bi_g]) / ((float) 0xFF);
- c.m_b = ((float)bytes[bi_b]) / ((float) 0xFF);
- c.m_a = ((float)bytes[bi_a]) / ((float) 0xFF);
-#endif
-}
-
-#endif // _H_IMG_PixmapRGBA32
-
diff --git a/source/blender/img/intern/IMG_Rect.cpp b/source/blender/img/intern/IMG_Rect.cpp
deleted file mode 100644
index c2e7bfc89c6..00000000000
--- a/source/blender/img/intern/IMG_Rect.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-#include "IMG_Rect.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-TVisibility IMG_Rect::getVisibility(IMG_Rect& r) const
-{
- bool lt = isInside(r.m_l, r.m_t);
- bool rt = isInside(r.m_r, r.m_t);
- bool lb = isInside(r.m_l, r.m_b);
- bool rb = isInside(r.m_r, r.m_b);
- TVisibility v;
- if (lt && rt && lb && rb) {
- // All points inside, rectangle is inside this
- v = kFullyVisible;
- }
- else if (!(lt || rt || lb || rb)) {
- // None of the points inside
- // Check to see whether the rectangle is larger than this one
- if ((r.m_l < m_l) && (r.m_t < m_t) && (r.m_r > m_r) && (r.m_b > m_b)) {
- v = kPartiallyVisible;
- }
- else {
- v = kNotVisible;
- }
- }
- else {
- // Some of the points inside, rectangle is partially inside
- v = kPartiallyVisible;
- }
- return v;
-}
-
-TVisibility IMG_Rect::getVisibility(IMG_Line& l) const
-{
- bool s = isInside(l.m_xs, l.m_ys);
- bool e = isInside(l.m_xe, l.m_ye);
- TVisibility v;
- if (s && e) {
- v = kFullyVisible;
- }
- else if (s || e) {
- v = kPartiallyVisible;
- }
- else {
- v = kNotVisible;
- }
- return v;
-}
-
-
-void IMG_Rect::setCenter(TInt32 cx, TInt32 cy)
-{
- TInt32 offset = cx - (m_l + (m_r - m_l)/2);
- m_l += offset;
- m_r += offset;
- offset = cy - (m_t + (m_b - m_t)/2);
- m_t += offset;
- m_b += offset;
-}
-
-void IMG_Rect::setCenter(TInt32 cx, TInt32 cy, TInt32 w, TInt32 h)
-{
- long w_2, h_2;
-
- w_2 = w >> 1;
- h_2 = h >> 1;
- m_l = cx - w_2;
- m_t = cy - h_2;
- m_r = m_l + w;
- m_b = m_t + h;
-}
-
-bool IMG_Rect::clip(IMG_Rect& r) const
-{
- bool clipped = false;
- if (r.m_l < m_l) {
- r.m_l = m_l;
- clipped = true;
- }
- if (r.m_t < m_t) {
- r.m_t = m_t;
- clipped = true;
- }
- if (r.m_r > m_r) {
- r.m_r = m_r;
- clipped = true;
- }
- if (r.m_b > m_b) {
- r.m_b = m_b;
- clipped = true;
- }
- return clipped;
-}
-
-bool IMG_Rect::clip(IMG_Line& l) const
-{
- bool clipped = false;
- return clipped;
-}
diff --git a/source/blender/img/intern/IMG_Rect.h b/source/blender/img/intern/IMG_Rect.h
deleted file mode 100644
index 980c96f11aa..00000000000
--- a/source/blender/img/intern/IMG_Rect.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- * @author Maarten Gribnau
- * @date March 7, 2001
- */
-
-#ifndef _H_IMG_Rect
-#define _H_IMG_Rect
-
-#include "IMG_Types.h"
-#include "IMG_Line.h"
-
-/**
- * Implements rectangle functionality.
- * Used for bounds in images.
- * The four extreme coordinates are stored as left, top, right and bottom.
- * left is assumed to be smaller than or equal to right.
- * top is assumed to be smaller than or equal to bottom.
- * @author Maarten Gribnau
- * @date March 6, 2001
- */
-
-class IMG_Rect {
-public:
-
- /**
- * Constructs a rectangle with the given values.
- * @param l requested left coordinate of the rectangle
- * @param t requested top coordinate of the rectangle
- * @param r requested right coordinate of the rectangle
- * @param b requested bottom coordinate of the rectangle
- */
- IMG_Rect(TInt32 l=0, TInt32 t=0, TInt32 r=0, TInt32 b=0)
- : m_l(l), m_t(t), m_r(r), m_b(b) {}
-
- /**
- * Copy constructor.
- * @param r rectangle to copy
- */
- IMG_Rect(const IMG_Rect& r)
- : m_l(r.m_l), m_t(r.m_t), m_r(r.m_r), m_b(r.m_b) {}
-
- /**
- * Destructor.
- */
- virtual ~IMG_Rect() {};
-
- /**
- * Access to rectangle width.
- * @return width of the rectangle
- */
- virtual inline TInt32 getWidth() const;
-
- /**
- * Access to rectangle height.
- * @return height of the rectangle
- */
- virtual inline TInt32 getHeight() const;
-
- /**
- * Sets all members of the rectangle.
- * @param l requested left coordinate of the rectangle
- * @param t requested top coordinate of the rectangle
- * @param r requested right coordinate of the rectangle
- * @param b requested bottom coordinate of the rectangle
- */
- virtual inline void set(TInt32 l, TInt32 t, TInt32 r, TInt32 b);
-
- /**
- * Returns whether this rectangle is empty.
- * Empty rectangles are rectangles that have width==0 and/or height==0.
- * @return boolean value (true==empty rectangle)
- */
- virtual inline bool isEmpty() const;
-
- /**
- * Returns whether the point is inside this rectangle.
- * Point on the boundary is considered inside.
- * @param x x-coordinate of point to test.
- * @param y y-coordinate of point to test.
- * @return boolean value (true if point is inside).
- */
- virtual inline bool isInside(TInt32 x, TInt32 y) const;
-
- /**
- * Returns whether the rectangle is inside this rectangle.
- * @param r rectangle to test.
- * @return visibility (not, partially or fully visible).
- */
- virtual TVisibility getVisibility(IMG_Rect& r) const;
-
- /**
- * Returns whether the line is inside this rectangle.
- * @param l line to test.
- * @return visibility (not, partially or fully visible).
- */
- virtual TVisibility getVisibility(IMG_Line& l) const;
-
- /**
- * Sets rectangle members.
- * Sets rectangle members such that it is centered at the given location.
- * @param cx requested center x-coordinate of the rectangle
- * @param cy requested center y-coordinate of the rectangle
- */
- virtual void setCenter(TInt32 cx, TInt32 cy);
-
- /**
- * Sets rectangle members.
- * Sets rectangle members such that it is centered at the given location,
- * with the width requested.
- * @param cx requested center x-coordinate of the rectangle
- * @param cy requested center y-coordinate of the rectangle
- * @param w requested width of the rectangle
- * @param h requested height of the rectangle
- */
- virtual void setCenter(TInt32 cx, TInt32 cy, TInt32 w, TInt32 h);
-
- /**
- * Clips a rectangle.
- * Updates the rectangle given such that it will fit within this one.
- * This can result in an empty rectangle.
- * @param r the rectangle to clip
- * @return whether clipping has occurred
- */
- virtual bool clip(IMG_Rect& r) const;
-
- /**
- * Clips a line.
- * Updates the line given such that it will fit within this rectangle.
- * This can result in an empty line.
- * @param l the line to clip
- * @return whether clipping has occurred
- */
- virtual bool clip(IMG_Line& l) const;
-
- /** Left coordinate of the rectangle */
- TInt32 m_l;
- /** Top coordinate of the rectangle */
- TInt32 m_t;
- /** Right coordinate of the rectangle */
- TInt32 m_r;
- /** Bottom coordinate of the rectangle */
- TInt32 m_b;
-};
-
-
-inline TInt32 IMG_Rect::getWidth() const
-{
- return m_r - m_l;
-}
-
-inline TInt32 IMG_Rect::getHeight() const
-{
- return m_b - m_t;
-}
-
-inline void IMG_Rect::set(TInt32 l, TInt32 t, TInt32 r, TInt32 b)
-{
- m_l = l; m_t = t; m_r = r; m_b = b;
-}
-
-inline bool IMG_Rect::isEmpty() const
-{
- return (getWidth() == 0) || (getHeight() == 0);
-}
-
-inline bool IMG_Rect::isInside(TInt32 x, TInt32 y) const
-{
- return (x >= m_l) && (x <= m_r) && (y >= m_t) && (y <= m_b);
-}
-
-#endif // _H_IMG_Rect
-
diff --git a/source/blender/img/intern/IMG_Types.h b/source/blender/img/intern/IMG_Types.h
deleted file mode 100644
index d4988d39dc6..00000000000
--- a/source/blender/img/intern/IMG_Types.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL/BL DUAL 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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- * @author Maarten Gribnau
- * @date March 7, 2001
- */
-
-#ifndef _H_IMG_Types
-#define _H_IMG_Types
-
-typedef int TInt32;
-typedef unsigned char TUns8;
-typedef unsigned int TUns32;
-
-typedef enum {
- kNotVisible = 0,
- kPartiallyVisible,
- kFullyVisible
-} TVisibility;
-
-#endif // _H_IMG_Types
-
diff --git a/source/blender/img/intern/Makefile b/source/blender/img/intern/Makefile
deleted file mode 100644
index b4ccd4b14e9..00000000000
--- a/source/blender/img/intern/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-#
-# $Id$
-#
-# ***** BEGIN GPL/BL DUAL 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.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# 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.
-#
-# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
-#
-#
-
-LIBNAME = img
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-ifeq ($(OS),$(findstring $(OS), "beos darwin freebsd linux openbsd solaris windows"))
- CFLAGS += -funsigned-char
-endif
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-# path to SDNA types
-CPPFLAGS += -I../../makesdna
-# path to our own external headerfiles
-CPPFLAGS += -I..
-