64 lines
1.9 KiB
C++
64 lines
1.9 KiB
C++
#include "WTexturePreviewPanel.h"
|
|
#include "ui_WTexturePreviewPanel.h"
|
|
#include "WTextureGLWidget.h"
|
|
|
|
WTexturePreviewPanel::WTexturePreviewPanel(QWidget *parent, CTexture *pTexture) :
|
|
IPreviewPanel(parent),
|
|
ui(new Ui::WTexturePreviewPanel)
|
|
{
|
|
ui->setupUi(this);
|
|
SetResource(pTexture);
|
|
}
|
|
|
|
WTexturePreviewPanel::~WTexturePreviewPanel()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
EResType WTexturePreviewPanel::ResType()
|
|
{
|
|
return eTexture;
|
|
}
|
|
|
|
void WTexturePreviewPanel::SetResource(CResource *pRes)
|
|
{
|
|
CTexture *pTexture = (CTexture*) pRes;
|
|
ui->TextureGLWidget->SetTexture(pTexture);
|
|
|
|
if (pTexture)
|
|
{
|
|
std::string Name = StringUtil::GetFileNameWithExtension(pTexture->Source());
|
|
ui->TextureNameLabel->setText( QString::fromStdString(Name) );
|
|
|
|
QString TexInfo;
|
|
TexInfo += QString::number(pTexture->Width()) + "x" + QString::number(pTexture->Height());
|
|
TexInfo += " ";
|
|
|
|
switch (pTexture->SourceTexelFormat())
|
|
{
|
|
case eGX_I4: TexInfo += "I4"; break;
|
|
case eGX_I8: TexInfo += "I8"; break;
|
|
case eGX_IA4: TexInfo += "IA4"; break;
|
|
case eGX_IA8: TexInfo += "IA8"; break;
|
|
case eGX_C4: TexInfo += "C4"; break;
|
|
case eGX_C8: TexInfo += "C8"; break;
|
|
case eGX_C14x2: TexInfo += "C14x2"; break;
|
|
case eGX_RGB565: TexInfo += "RGB565"; break;
|
|
case eGX_RGB5A3: TexInfo += "RGB5A3"; break;
|
|
case eGX_RGBA8: TexInfo += "RGBA8"; break;
|
|
case eGX_CMPR: TexInfo += "CMPR"; break;
|
|
default: TexInfo += "Invalid Format"; break;
|
|
}
|
|
|
|
TexInfo += " / ";
|
|
TexInfo += QString::number(pTexture->NumMipMaps()) + " mipmaps";
|
|
|
|
ui->TextureInfoLabel->setText(TexInfo);
|
|
}
|
|
else
|
|
{
|
|
ui->TextureNameLabel->setText("No texture");
|
|
ui->TextureInfoLabel->setText("");
|
|
}
|
|
}
|