targa_file_structure.cpp
Go to the documentation of this file.
/*
CLAW - a C++ Library Absolutely Wonderful
CLAW is a free library without any particular aim but being useful to
anyone.
Copyright (C) 2005-2011 Julien Jorge
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
contact: julien.jorge@gamned.org
*/
#include <claw/targa.hpp>
//************************ targa::file_structure::header ***********************
/*----------------------------------------------------------------------------*/
claw::graphic::targa::file_structure::header::header()
{
} // targa::file_structure::header::header()
/*----------------------------------------------------------------------------*/
claw::graphic::targa::file_structure::header::header
( unsigned int w, unsigned int h )
{
id_length = 0;
color_map = 0;
image_type = true_color;
color_map_specification.first_entry_index = 0;
color_map_specification.length = 0;
color_map_specification.entry_size = 0;
image_specification.x_origin = 0;
image_specification.y_origin = 0;
image_specification.width = w;
image_specification.height = h;
image_specification.bpp = 32; // pixel32
image_specification.descriptor = 8; // unsigned char
image_specification.descriptor |= 0x20; // origin is top-left
} // targa::file_structure::header::header()
//************** targa::file_structure::header::specification ******************
/*----------------------------------------------------------------------------*/
bool
claw::graphic::targa::file_structure::header::specification::
up_down_oriented() const
{
return descriptor & 0x20;
} // targa::file_structure::header::specification::up_down_oriented()
/*----------------------------------------------------------------------------*/
bool
claw::graphic::targa::file_structure::header::specification::
left_right_oriented() const
{
return !(descriptor & 0x10);
} // targa::file_structure::header::specification::left_right_oriented()
/*----------------------------------------------------------------------------*/
unsigned char
claw::graphic::targa::file_structure::header::specification::alpha() const
{
return descriptor & 0x0F;
} // targa::file_structure::header::specification::alpha()
//********************* targa::file_structure::footer **************************
/*----------------------------------------------------------------------------*/
const std::string
claw::graphic::targa::file_structure::footer::s_signature("TRUEVISION-XFILE.");
/*----------------------------------------------------------------------------*/
claw::graphic::targa::file_structure::footer::footer()
: extension_offset(0), developer_offset(0)
{
std::copy( s_signature.begin(), s_signature.end(), signature );
signature[s_signature.length()] = '\0';
} // targa::file_structure::footer::footer()
/*----------------------------------------------------------------------------*/
bool claw::graphic::targa::file_structure::footer::is_valid() const
{
return std::equal( s_signature.begin(), s_signature.end(), signature )
&& signature[s_signature.length()] == '\0';
} // targa::file_structure::footer::is_valid()
claw::graphic::targa::file_structure::header::header
header()
Default constructor.
Definition: targa_file_structure.cpp:41
claw::graphic::targa::file_structure::header::color_map
char color_map
1 if there is a color map, 0 otherwise.
Definition: targa.hpp:86
claw::graphic::targa::file_structure::header::specification::width
unsigned short width
Image width.
Definition: targa.hpp:109
claw::graphic::targa::file_structure::header::specification::bpp
unsigned char bpp
Bits per pixel.
Definition: targa.hpp:113
claw::graphic::targa::file_structure::header::id_length
char id_length
Image identifier length.
Definition: targa.hpp:84
claw::graphic::targa::file_structure::header::image_type
char image_type
Image type.
Definition: targa.hpp:88
claw::graphic::targa::file_structure::header::specification::x_origin
unsigned short x_origin
Lower left corner X-origin.
Definition: targa.hpp:105
claw::graphic::targa::file_structure::header::specification::alpha
unsigned char alpha() const
Number of bits per pixel assigned to alpha chanel.
Definition: targa_file_structure.cpp:110
claw::graphic::targa::file_structure::header::color_map_specification
struct claw::graphic::targa::file_structure::header::@18 color_map_specification
Color map specification.
claw::graphic::targa::file_structure::header::specification::descriptor
unsigned char descriptor
descriptor.
Definition: targa.hpp:115
targa.hpp
A class for targa pictures.
claw::graphic::targa::file_structure::header::specification::height
unsigned short height
Image height.
Definition: targa.hpp:111
claw::graphic::targa::file_structure::header::image_specification
specification image_specification
The specification of the image.
Definition: targa.hpp:123
claw::graphic::targa::file_structure::header::specification::up_down_oriented
bool up_down_oriented() const
Is image stored up to down ?
Definition: targa_file_structure.cpp:89
claw::graphic::targa::file_structure::header::specification::y_origin
unsigned short y_origin
Lower left corner Y-origin.
Definition: targa.hpp:107
claw::graphic::targa::file_structure::header::specification::left_right_oriented
bool left_right_oriented() const
Is image stored left to right ?
Definition: targa_file_structure.cpp:100