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