blob: 7eb07f26d980a2d54ae435c14ea5ec3e26cd6111 [file] [log] [blame]
/*
* Copyright 2009, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
namespace o3d {
%[
Bitmap provides an interface for basic image operations on bitmap,
including scale and crop. A Bitmap can be created from RawData via
pack.createBitmapsFromRawData(), and also can be transferred to mip of a
Texure2D or a specific face of TextureCUBE via methods in Texture.
%]
[nocpp, include="core/cross/bitmap.h"]
class Bitmap : ParamObject {
%[
After loading an array of Bitmaps with pack.createBitmapsFromRawData
you can inspect their semantic to see what they were intended for. This is
mostly to distinguish between 6 bitmaps that are faces of a cubemap and 6
bitmaps that are slices of a 3d texture.
\li FACE_POSITIVE_X, 1 face of a cubemap
\li FACE_NEGATIVE_X, 1 face of a cubemap
\li FACE_POSITIVE_Y, 1 face of a cubemap
\li FACE_NEGATIVE_Y, 1 face of a cubemap
\li FACE_POSITIVE_Z, 1 face of a cubemap
\li FACE_NEGATIVE_Z, 1 face of a cubemap
\li IMAGE, normal 2d image
\li SLICE, a slice of a 3d texture.
%]
enum Semantic {
FACE_POSITIVE_X,
FACE_NEGATIVE_X,
FACE_POSITIVE_Y,
FACE_NEGATIVE_Y,
FACE_POSITIVE_Z,
FACE_NEGATIVE_Z,
IMAGE,
SLICE
};
%[
Flips a bitmap vertically in place.
%]
void FlipVertically();
%[
Generates mip maps from the source level to lower levels.
You can not currently generate mips for DXT textures although you can load
them from dds files.
\param source_level The level to use as the source of the mips.
\param num_levels The number of levels to generate below the source level.
%]
void GenerateMips(int source_level, int num_levels);
%[
The width of the bitmap (read only).
%]
[getter] int width_;
%[
The height of the bitmap (read only).
%]
[getter] int height_;
%[
The format of the bitmap (read only).
%]
[getter] Texture::Format format_;
%[
Number mip-maps (read only)
%]
[getter] int num_mipmaps_;
%[
The Semantic of the bitmap.
%]
[getter] Semantic semantic_;
}; // Bitmap
} // namespace o3d