#include <msp/strings/format.h>
+#include "device.h"
#include "error.h"
#include "sampler.h"
void Sampler::set_mag_filter(TextureFilter f)
{
+ if(is_mipmapped(f))
+ throw invalid_argument("Sampler::set_mag_filter");
mag_filter = f;
dirty_params |= MAG_FILTER;
}
{
if(a<1.0f)
throw invalid_argument("Sampler::set_max_anisotropy");
+ if(a>Device::get_current().get_info().limits.max_anisotropy)
+ throw out_of_range("Sampler::set_max_anisotropy");
bool supported = check_anisotropic(a>1.0f);
max_anisotropy = a;
if(supported)
dirty_params |= MAX_ANISOTROPY;
}
-void Sampler::set_wrap(TextureWrap w)
-{
- set_wrap_s(w);
- set_wrap_t(w);
- set_wrap_r(w);
-}
-
void Sampler::set_wrap_s(TextureWrap w)
{
wrap_s = w;
dirty_params |= WRAP_R;
}
+void Sampler::set_wrap(TextureWrap w)
+{
+ set_wrap_s(w);
+ set_wrap_t(w);
+ set_wrap_r(w);
+}
+
void Sampler::set_border_color(const Color &c)
{
border_color = c;