#include <msp/gl/extensions/sgis_generate_mipmap.h>
#include <msp/strings/format.h>
#include "error.h"
+#include "resourcemanager.h"
#include "resources.h"
#include "texture.h"
#include "texunit.h"
}
-Texture::Texture(GLenum t):
+Texture::Texture(GLenum t, ResourceManager *m):
+ id(0),
target(t),
min_filter(NEAREST_MIPMAP_LINEAR),
mag_filter(LINEAR),
cmp_func(LEQUAL),
dirty_params(0)
{
- glGenTextures(1, &id);
+ if(m)
+ set_manager(m);
+ else
+ glGenTextures(1, &id);
}
Texture::~Texture()
{
- glDeleteTextures(1, &id);
+ if(id)
+ glDeleteTextures(1, &id);
}
void Texture::update_parameter(int mask) const
void Texture::bind_to(unsigned i) const
{
+ if(!id)
+ manager->load_resource(*this);
+
TexUnit &unit = TexUnit::get_unit(i);
const Texture *cur = unit.get_texture();
if(unit.set_texture(this))