| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // Created : 2010-01-09
- // Updated : 2010-01-09
- // Licence : This source is under MIT License
- // File : gli/core/texture2d.hpp
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- #ifndef GLI_CORE_TEXTURE2D_INCLUDED
- #define GLI_CORE_TEXTURE2D_INCLUDED
- #include "image2d.hpp"
- namespace gli
- {
- enum comp
- {
- X = 0,
- R = 0,
- S = 0,
- Y = 1,
- G = 1,
- T = 1,
- Z = 2,
- B = 2,
- P = 2,
- W = 3,
- A = 3,
- Q = 3
- };
- //template <template <typename> class mem>
- class texture2D
- {
- public:
- typedef image2D::dimensions_type dimensions_type;
- typedef image2D::texcoord_type texcoord_type;
- typedef image2D::size_type size_type;
- typedef image2D::value_type value_type;
- typedef image2D::format_type format_type;
- typedef image2D::data_type data_type;
- typedef std::size_t level_type;
- public:
- texture2D();
- explicit texture2D(level_type const & Levels);
- //texture2D(image const & Mipmap, bool GenerateMipmaps = false);
- ~texture2D();
- image2D & operator[] (
- level_type const & Level);
- image2D const & operator[] (
- level_type const & Level) const;
- bool empty() const;
- format_type format() const;
- level_type levels() const;
- void resize(level_type const & Levels);
- template <typename genType>
- void swizzle(gli::comp X, gli::comp Y, gli::comp Z, gli::comp W);
- private:
- std::vector<image2D> Images;
- };
- //namespace wip
- //{
- // // plain
- // template <typename genType>
- // class plain
- // {
- // public:
- //
- // private:
- // boost::shared_array<genType> Data;
- // };
- //
- // // texture2D
- // template
- // <
- // typename genType,
- // template <typename> class surface = plain
- // >
- // class texture2D
- // {
- // public:
- // typedef genType value_type;
- //
- // private:
- // class image_impl
- // {
- // public:
- // template <typename coordType>
- // value_type const & operator() (coordType const & Coord) const;
- //
- // private:
- // surface<value_type> Surface;
- // };
- //
- // public:
- // typedef image_impl image;
- // typedef std::vector<image> mipmaps;
- // typedef typename mipmaps::size_type level_type;
- //
- // level_type levels() const;
- // image & operator[] (level_type Level);
- // image const & operator[] (level_type Level) const;
- //
- // private:
- // mipmaps Mipmaps;
- // };
- //
- //}//namespace wip
- }//namespace gli
- #include "texture2d.inl"
- #endif//GLI_CORE_TEXTURE2D_INCLUDED
|