Simple Image Loading LibrarY
0.1.0
build
silly-W7bpEY
silly-0.1.0
src
SILLYImageContext.cpp
1
/***********************************************************************
2
filename: SILLYImageContext.cpp
3
created: 10 Jun 2006
4
author: Olivier Delannoy
5
6
purpose: Implementation file for ImageContext class
7
*************************************************************************/
8
/***************************************************************************
9
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
10
*
11
* Permission is hereby granted, free of charge, to any person obtaining
12
* a copy of this software and associated documentation files (the
13
* "Software"), to deal in the Software without restriction, including
14
* without limitation the rights to use, copy, modify, merge, publish,
15
* distribute, sublicense, and/or sell copies of the Software, and to
16
* permit persons to whom the Software is furnished to do so, subject to
17
* the following conditions:
18
*
19
* The above copyright notice and this permission notice shall be
20
* included in all copies or substantial portions of the Software.
21
*
22
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
26
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
27
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28
* OTHER DEALINGS IN THE SOFTWARE.
29
***************************************************************************/
30
#ifdef HAVE_CONFIG_H
31
#include <config.h>
32
#endif
33
34
#include "SILLYImageContext.h"
35
#ifndef SILLY_OPT_INLINE
36
#define inline
37
#include "SILLYImageContext.icpp"
38
#undef inline
39
#endif
40
#include <cstring>
41
// Start section of namespace SILLY
42
namespace
SILLY
43
{
44
45
bool
ImageContext::flipVertically
()
46
{
47
size_t
depth;
48
switch
(d_format)
49
{
50
case
PF_A1B5G5R5:
51
depth = 2;
52
break
;
53
case
PF_RGB:
54
depth = 3;
55
break
;
56
case
PF_RGBA:
57
depth = 4;
58
break
;
59
}
60
61
// Do the flipping
62
byte
*p1,*p2,*tmp;
// tmp pointers
63
size_t
len = d_width * depth;
// length of horizontal line in bytes
64
tmp =
new
byte
[len];
// Allocate a temporary line
65
if
( !tmp )
66
return
false
;
67
68
size_t
y , y2;
69
y2 = d_height - 1;
70
for
( y = 0; y < d_height >> 1; y++ )
71
{
72
p1 = (d_pixels) + len * y;
73
p2 = (d_pixels) + len * y2;
74
memcpy( tmp, p1, len );
75
memcpy( p1, p2, len );
76
memcpy( p2, tmp, len );
77
y2--;
78
}
79
delete
[] tmp;
80
return
true
;
81
}
82
83
84
}
// End section of namespace SILLY
SILLY
Simple Image Loading LibrarY namespace.
Definition
SILLYJPGImageContext.cpp:46
SILLY::ImageContext::flipVertically
bool flipVertically()
Flip pixel ordering.
Definition
SILLYImageContext.cpp:45
Generated by
1.9.8