ifmt(RGB),
min_filter(NEAREST_MIPMAP_LINEAR),
mag_filter(LINEAR),
- mipmap_levels(0),
max_anisotropy(1.0f),
wrap_s(REPEAT),
wrap_t(REPEAT),
glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle_orders+swizzle*4);
}
}
- if(mask&MIPMAP_LEVELS)
- set_parameter_i(GL_TEXTURE_MAX_LEVEL, (mipmap_levels ? mipmap_levels-1 : 1000));
}
void Texture::set_parameter_i(GLenum param, int value) const
set_mag_filter(f==NEAREST ? NEAREST : LINEAR);
}
-void Texture::set_mipmap_levels(unsigned l)
-{
- mipmap_levels = l;
- update_parameter(MIPMAP_LEVELS);
-}
-
void Texture::set_max_anisotropy(float a)
{
if(a<1.0f)
}
void Texture::load_image(const string &fn, bool srgb)
+{
+ load_image(fn, 0, srgb);
+}
+
+void Texture::load_image(const string &fn, unsigned lv, bool srgb)
{
Graphics::Image img;
img.load_file(fn);
- image(img, srgb);
+ image(img, lv, srgb);
+}
+
+void Texture::image(const Graphics::Image &img, bool srgb)
+{
+ image(img, 0, srgb);
}
void Texture::bind_to(unsigned i) const
void Texture::Loader::init()
{
+ levels = 0;
if(Resources *res = dynamic_cast<Resources *>(coll))
srgb = res->get_srgb_conversion();
else
throw IO::file_not_found(fn);
img.load_io(*io);
- obj.image(img, srgb);
+ obj.image(img, levels, srgb);
}
void Texture::Loader::filter(TextureFilter f)
IO::Memory mem(data.data(), data.size());
img.load_io(mem);
- obj.image(img, srgb);
+ obj.image(img, levels, srgb);
}
void Texture::Loader::mag_filter(TextureFilter f)
void Texture::Loader::mipmap_levels(unsigned l)
{
- obj.set_mipmap_levels(l);
+ levels = l;
}
void Texture::Loader::wrap(TextureWrap w)