Simple Image Loading LibrarY 0.1.0
SILLYImageContext.icpp
1/***********************************************************************
2 filename: SILLYImageContext.icpp
3 created: 10 Jun 2006
4 author: Olivier Delannoy
5
6 purpose: Inline definition for ImageContext
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
31// Start of section namespace SILLY
32namespace SILLY
33{
34
35inline ImageContext::ImageContext(size_t width, size_t height)
36 : d_pixels(0), d_length(0), d_width(width), d_height(height), d_currentOffset(0), d_format(PF_RGBA)
37{
38}
39
40
41inline ImageContext::~ImageContext()
42{
43}
44
45
46inline void ImageContext::setDestination(byte* pixels, size_t length, PixelFormat format)
47{
48 d_pixels = pixels;
49 d_length = length;
50 d_currentOffset = 0;
51 d_format = format;
52}
53
54inline void ImageContext::setNextPixel(byte red, byte green, byte bleu, byte alpha)
55{
56 //assert(d_currentOffset < d_length && "ASSERT: try to set a pixel outside of the image");
57 switch(d_format)
58 {
59 case PF_A1B5G5R5:
60 // The hard part
61 assert(0 && "ASSERT: Not yet implemented");
62 break;
63 case PF_RGB:
64 // Ignore alpha channel
65 d_pixels[d_currentOffset++] = red;
66 d_pixels[d_currentOffset++] = green;
67 d_pixels[d_currentOffset++] = bleu;
68 break;
69
70 case PF_RGBA:
71 d_pixels[d_currentOffset++] = red;
72 d_pixels[d_currentOffset++] = green;
73 d_pixels[d_currentOffset++] = bleu;
74 d_pixels[d_currentOffset++] = alpha;
75 break;
76
77 }
78}
79inline size_t ImageContext::getWidth() const
80{
81 return d_width;
82}
83
84inline void ImageContext::setWidth(size_t width)
85{
86 d_width = width;
87}
88
89inline size_t ImageContext::getHeight() const
90{
91 return d_height;
92}
93
94inline void ImageContext::setHeight(size_t height)
95{
96 d_height = height;
97}
98inline PixelFormat ImageContext::getPixelFormat() const
99{
100 return d_format;
101}
102
103} // End of section namespace SILLY
104