~ubuntu-branches/debian/lenny/italc/lenny

« back to all changes in this revision

Viewing changes to master/italc/include/qimage_manips.h

  • Committer: Bazaar Package Importer
  • Author(s): Patrick Winnertz
  • Date: 2008-06-17 13:46:54 UTC
  • mfrom: (1.2.1 upstream) (4.1.1 gutsy)
  • Revision ID: james.westby@ubuntu.com-20080617134654-cl0gi4u524cv1ici
Tags: 1:1.0.9~rc3-1
* Package new upstream version
  - upstream ported the code to qt4.4 (Closes: #481974)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * qimage_manips.h - some functions for fast manipulating of QImage-objects
3
 
 *
4
 
 * iTALC
5
 
 * Copyright (c) 2004-2005 Tobias Doerffel <tobias@doerffel.de>
6
 
 *
7
 
 * This program is free software; you can redistribute it and/or
8
 
 * modify it under the terms of the GNU General Public
9
 
 * License as published by the Free Software Foundation; either
10
 
 * version 2 of the License, or (at your option) any later version.
11
 
 *
12
 
 * This program is distributed in the hope that it will be useful,
13
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 
 * General Public License for more details.
16
 
 *
17
 
 * You should have received a copy of the GNU General Public
18
 
 * License along with this program (see COPYING); if not, write to the
19
 
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20
 
 * Boston, MA 02111-1307, USA.
21
 
 *
22
 
 */
23
 
 
24
 
 
25
 
#ifndef _Q_IMGAGE_MANIPS_H
26
 
#define _Q_IMGAGE_MANIPS_H
27
 
 
28
 
 
29
 
#include <memory.h>
30
 
 
31
 
#include <qimage.h>
32
 
 
33
 
 
34
 
 
35
 
inline void fillRect( QImage & _i, Q_UINT16 rx, Q_UINT16 ry, Q_UINT16 rw, Q_UINT16 rh, QRgb pix )
36
 
{
37
 
        const Q_UINT16 x2 = rx+rw;
38
 
        const Q_UINT16 y2 = ry+rh;
39
 
 
40
 
        for( Q_UINT16 y = ry; y < y2; ++y )
41
 
        {
42
 
                register QRgb * dest = (QRgb *) _i.scanLine( y ) + rx;
43
 
                for( register Q_UINT16 x = rx; x < x2; ++x, ++dest )
44
 
                {
45
 
                        *dest = pix;
46
 
                }
47
 
        }
48
 
}
49
 
 
50
 
 
51
 
 
52
 
inline void copyRect( QImage & _i, Q_UINT16 rx, Q_UINT16 ry, Q_UINT16 rw, Q_UINT16 rh, QRgb * buf )
53
 
{
54
 
        const Q_UINT16 x2 = rx+rw;
55
 
        const Q_UINT16 y2 = ry+rh;
56
 
 
57
 
        for( Q_UINT16 y = ry; y < y2; ++y )
58
 
        {
59
 
                register QRgb * dest = (QRgb *) _i.scanLine( y ) + rx;
60
 
                memcpy( dest, buf, ( x2-rx ) * sizeof( QRgb ) );
61
 
                buf += x2-rx;
62
 
/*              for( register Q_UINT16 x = rx; x < x2; ++x, ++dest, ++buf )
63
 
                {
64
 
                        *dest = *buf;
65
 
                }*/
66
 
        }
67
 
}
68
 
 
69
 
 
70
 
 
71
 
inline void copyExistingRect( QImage & _i, Q_UINT16 src_x, Q_UINT16 src_y, Q_UINT16 rw, Q_UINT16 rh, Q_UINT16 dest_x, Q_UINT16 dest_y )
72
 
{
73
 
        for( Q_UINT16 y = 0; y < rh; ++y )
74
 
        {
75
 
                register QRgb * src = (QRgb *) _i.scanLine( y+src_y ) + src_x;
76
 
                register QRgb * dest = (QRgb *) _i.scanLine( y+dest_y ) + dest_x;
77
 
                memcpy( dest, src, rw * sizeof( QRgb ) );
78
 
/*              for( register Q_UINT16 x = 0; x < rw; ++x, ++src, ++dest )
79
 
                {
80
 
                        *dest = *src;
81
 
                }*/
82
 
        }
83
 
}
84
 
 
85
 
 
86
 
 
87
 
void fastScaleImage (const QImage & src, QImage & dst);
88
 
 
89
 
 
90
 
#endif