You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
106 lines
2.4 KiB
106 lines
2.4 KiB
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
// 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 |
|
{ |
|
//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(glm::comp X, glm::comp Y, glm::comp Z, glm::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
|
|
|