+++ /dev/null
-
-/*] Copyright (c) 2009-2010, Charles McGarvey [**************************
-**] All rights reserved.
-*
-* vi:ts=4 sw=4 tw=75
-*
-* Distributable under the terms and conditions of the 2-clause BSD license;
-* see the file COPYING for a complete text of the license.
-*
-**************************************************************************/
-
-#ifndef _MOOF_TEXTURE_HH_
-#define _MOOF_TEXTURE_HH_
-
-/**
- * @file Texture.hh
- * Image-loading and OpenGL texture loading.
- */
-
-#include <string>
-
-#include <boost/shared_ptr.hpp>
-
-#include <Moof/Image.hh>
-#include <Moof/OpenGL.hh>
-
-
-namespace Mf {
-
-
-class Texture;
-typedef boost::shared_ptr<Texture> TextureP;
-
-
-class Texture : public Image
-{
-public:
-
- /**
- * Possible orientations for texture coordinates.
- */
-
- typedef unsigned TileIndex;
- static const TileIndex NO_TILE = -1;
-
- typedef enum
- {
- NORMAL = 0, ///< Normal orientation.
- FLIP = 1, ///< Flip over a horizontal axis.
- REVERSE = 2, ///< Flip over a vertical axis.
- FLIP_AND_REVERSE = 3 ///< Flip over both.
- } Orientation;
-
-
- static TextureP alloc(const std::string& name)
- {
- return TextureP(new Texture(name));
- }
-
- explicit Texture(const std::string& name);
-
- void bind() const;
- GLuint getObject() const;
-
- static void resetBind();
-
- void setMinFilter(GLuint filter);
- void setMagFilter(GLuint filter);
- void setWrapS(GLuint wrap);
- void setWrapT(GLuint wrap);
-
-
- /**
- * Calculate texture coordinates for a tile at a certain index. Tiles
- * are indexed start with zero as the to-left tile and moving across,
- * then down.
- * @param index The tile index.
- * @param coords An array of scalars where the texture coordinates will
- * be stored after this call. The first coordinate (u,v) will be in
- * the first two places and so on until all four coordinates are
- * stored, therefore requiring enough room for an array of eight
- * scalars. The winding of the coordinates is always counter-clockwise
- * (the GL default).
- * @return True if index is valid, false otherwise.
- */
-
- bool getTileCoords(TileIndex index, Scalar coords[8]) const;
-
-
- /**
- * This version let's you specify an orientation that will be reflected
- * in the texture coordinates. This allows you to easily map a texture
- * backwards or upside-down.
- * @param what The orientation; can be flip, reverse, or
- * flip_and_reverse.
- * @return True if index is valid, false otherwise.
- */
-
- bool getTileCoords(TileIndex index, Scalar coords[8],
- Orientation what) const;
-
-
- static bool getPath(std::string& name);
-
-private:
-
- class Impl;
- boost::shared_ptr<Impl> mImpl;
-};
-
-
-} // namespace Mf
-
-#endif // _MOOF_TEXTURE_HH_
-