00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00027
#ifndef SHTEXTURE_HPP
00028
#define SHTEXTURE_HPP
00029
00030
#include "ShBaseTexture.hpp"
00031
00032
namespace SH {
00033
00036 struct
00037
ShFilteredTextureTraits :
public ShTextureTraits {
00038
ShFilteredTextureTraits()
00039 :
ShTextureTraits(1, SH_FILTER_MIPMAP, SH_WRAP_CLAMP_TO_EDGE, SH_CLAMPED)
00040 {
00041 }
00042 };
00043
00044
template<
typename T>
class ShTextureRect;
00045
00048
template<
typename T>
00049 class ShTexture1D
00050 :
public ShBaseTexture1D<T> {
00051
public:
00052
ShTexture1D()
00053 :
ShBaseTexture1D<T>(
ShFilteredTextureTraits())
00054 {}
00055
ShTexture1D(
int width)
00056 :
ShBaseTexture1D<T>(width, ShFilteredTextureTraits())
00057 {}
00058
typedef ShTextureRect<T> rectangular_type;
00059
typedef ShBaseTexture1D<T> base_type;
00060
typedef T return_type;
00061 };
00062
00065 template<
typename T>
00066
class ShTexture2D
00067 :
public ShBaseTexture2D<T> {
00068
public:
00069
ShTexture2D()
00070 :
ShBaseTexture2D<T>(
ShFilteredTextureTraits())
00071 {}
00072
ShTexture2D(
int width,
int height)
00073 :
ShBaseTexture2D<T>(width, height, ShFilteredTextureTraits())
00074 {}
00075
00076
00077
00078
typedef ShTextureRect<T> rectangular_type;
00079
typedef ShBaseTexture2D<T> base_type;
00080
typedef T return_type;
00081 };
00082
00085 template<
typename T>
00086
class ShTextureRect
00087 :
public ShBaseTextureRect<T> {
00088
public:
00089
ShTextureRect()
00090 :
ShBaseTextureRect<T>(
ShFilteredTextureTraits())
00091 {}
00092
ShTextureRect(
int width,
int height)
00093 :
ShBaseTextureRect<T>(width, height, ShFilteredTextureTraits())
00094 {}
00095
00096
00097
00098
typedef ShTextureRect<T> rectangular_type;
00099
typedef ShBaseTextureRect<T> base_type;
00100
typedef T return_type;
00101 };
00102
00105 template<
typename T>
00106
class ShTexture3D
00107 :
public ShBaseTexture3D<T> {
00108
public:
00109
ShTexture3D()
00110 :
ShBaseTexture3D<T>(
ShFilteredTextureTraits())
00111 {}
00112
ShTexture3D(
int width,
int height,
int depth)
00113 :
ShBaseTexture3D<T>(width, height, depth, ShFilteredTextureTraits())
00114 {}
00115
typedef ShTextureRect<T> rectangular_type;
00116
typedef ShBaseTexture3D<T> base_type;
00117
typedef T return_type;
00118 };
00119
00125
template<
typename T>
00126
class ShTextureCube
00127 :
public ShBaseTextureCube<T> {
00128
public:
00129
ShTextureCube()
00130 :
ShBaseTextureCube<T>(
ShFilteredTextureTraits())
00131 {}
00132 ShTextureCube(
int width,
int height)
00133 : ShBaseTextureCube<T>(width, height, ShFilteredTextureTraits())
00134 {}
00135
typedef ShTextureRect<T> rectangular_type;
00136
typedef ShBaseTextureCube<T> base_type;
00137
typedef T return_type;
00138 };
00139
00140 }
00141
00142
#endif