summaryrefslogtreecommitdiff
path: root/layoutgl/texturemanager.cpp
blob: 80a81863212e04219adda92a4169b68bd35c5530 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "texturemanager.h"

LGLTextureManager::LGLTextureManager() {
}

void LGLTextureManager::setup(QGLWidget *gl, const LYTLayout *layout) {
	// TODO: code to cleanup previous stuff

	//m_gl = gl;
	m_layout = layout;
	m_package = &layout->package();

	QStringList textures = layout->generateTextureRefs();

	foreach (const QString &texName, textures) {
		qDebug() << texName;

		QByteArray tplData = m_package->getTexture(texName);

		QDataStream tplStream(tplData);
		WiiTexPalette tpl(tplStream);

		const QImage &image = tpl.textures.first().image;
		image.save(QString("tpl/%2__%1.png").arg(texName).arg((int)tpl.textures.first().format));
		// dirty, dirty hack, TODO: FIXME
		GLuint tex = gl->bindTexture(image, GL_TEXTURE_2D);

		m_textures.insert(texName, tex);
		m_images.insert(texName, image);
	}
}