mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 10:43:45 +02:00
Add debug option to lower texture resolution
This commit is contained in:
parent
e03b0b5825
commit
bc6b43b7be
3 changed files with 26 additions and 9 deletions
|
@ -2006,7 +2006,7 @@ void Application::resizeGL() {
|
||||||
static qreal lastDevicePixelRatio = 0;
|
static qreal lastDevicePixelRatio = 0;
|
||||||
qreal devicePixelRatio = _window->devicePixelRatio();
|
qreal devicePixelRatio = _window->devicePixelRatio();
|
||||||
if (offscreenUi->size() != fromGlm(uiSize) || devicePixelRatio != lastDevicePixelRatio) {
|
if (offscreenUi->size() != fromGlm(uiSize) || devicePixelRatio != lastDevicePixelRatio) {
|
||||||
qDebug() << "Device pixel ratio changed, triggering resize";
|
qDebug() << "Device pixel ratio changed, triggering resize to " << uiSize;
|
||||||
offscreenUi->resize(fromGlm(uiSize), true);
|
offscreenUi->resize(fromGlm(uiSize), true);
|
||||||
_offscreenContext->makeCurrent();
|
_offscreenContext->makeCurrent();
|
||||||
lastDevicePixelRatio = devicePixelRatio;
|
lastDevicePixelRatio = devicePixelRatio;
|
||||||
|
|
|
@ -47,6 +47,8 @@
|
||||||
|
|
||||||
#include "Menu.h"
|
#include "Menu.h"
|
||||||
|
|
||||||
|
extern bool DEV_DECIMATE_TEXTURES;
|
||||||
|
|
||||||
Menu* Menu::getInstance() {
|
Menu* Menu::getInstance() {
|
||||||
return dynamic_cast<Menu*>(qApp->getWindow()->menuBar());
|
return dynamic_cast<Menu*>(qApp->getWindow()->menuBar());
|
||||||
}
|
}
|
||||||
|
@ -390,6 +392,14 @@ Menu::Menu() {
|
||||||
// Developer > Render > LOD Tools
|
// Developer > Render > LOD Tools
|
||||||
addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, 0, dialogsManager.data(), SLOT(lodTools()));
|
addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, 0, dialogsManager.data(), SLOT(lodTools()));
|
||||||
|
|
||||||
|
// HACK enable texture decimation
|
||||||
|
{
|
||||||
|
auto action = addCheckableActionToQMenuAndActionHash(renderOptionsMenu, "Decimate Textures");
|
||||||
|
connect(action, &QAction::triggered, [&](bool checked) {
|
||||||
|
DEV_DECIMATE_TEXTURES = checked;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Developer > Assets >>>
|
// Developer > Assets >>>
|
||||||
MenuWrapper* assetDeveloperMenu = developerMenu->addMenu("Assets");
|
MenuWrapper* assetDeveloperMenu = developerMenu->addMenu("Assets");
|
||||||
auto& atpMigrator = ATPAssetMigrator::getInstance();
|
auto& atpMigrator = ATPAssetMigrator::getInstance();
|
||||||
|
|
|
@ -22,6 +22,13 @@ using namespace gpu;
|
||||||
// FIXME: Declare this to enable compression
|
// FIXME: Declare this to enable compression
|
||||||
//#define COMPRESS_TEXTURES
|
//#define COMPRESS_TEXTURES
|
||||||
|
|
||||||
|
bool DEV_DECIMATE_TEXTURES = false;
|
||||||
|
QImage processSourceImage(const QImage& srcImage) {
|
||||||
|
if (DEV_DECIMATE_TEXTURES) {
|
||||||
|
return srcImage.scaled(srcImage.size() * 0.5f);
|
||||||
|
}
|
||||||
|
return srcImage;
|
||||||
|
}
|
||||||
|
|
||||||
void TextureMap::setTextureSource(TextureSourcePointer& textureSource) {
|
void TextureMap::setTextureSource(TextureSourcePointer& textureSource) {
|
||||||
_textureSource = textureSource;
|
_textureSource = textureSource;
|
||||||
|
@ -53,7 +60,7 @@ void TextureMap::setLightmapOffsetScale(float offset, float scale) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const QImage TextureUsage::process2DImageColor(const QImage& srcImage, bool& validAlpha, bool& alphaAsMask) {
|
const QImage TextureUsage::process2DImageColor(const QImage& srcImage, bool& validAlpha, bool& alphaAsMask) {
|
||||||
QImage image = srcImage;
|
QImage image = processSourceImage(srcImage);
|
||||||
validAlpha = false;
|
validAlpha = false;
|
||||||
alphaAsMask = true;
|
alphaAsMask = true;
|
||||||
const uint8 OPAQUE_ALPHA = 255;
|
const uint8 OPAQUE_ALPHA = 255;
|
||||||
|
@ -221,7 +228,7 @@ gpu::Texture* TextureUsage::createLightmapTextureFromImage(const QImage& srcImag
|
||||||
|
|
||||||
|
|
||||||
gpu::Texture* TextureUsage::createNormalTextureFromNormalImage(const QImage& srcImage, const std::string& srcImageName) {
|
gpu::Texture* TextureUsage::createNormalTextureFromNormalImage(const QImage& srcImage, const std::string& srcImageName) {
|
||||||
QImage image = srcImage;
|
QImage image = processSourceImage(srcImage);
|
||||||
|
|
||||||
if (image.format() != QImage::Format_RGB888) {
|
if (image.format() != QImage::Format_RGB888) {
|
||||||
image = image.convertToFormat(QImage::Format_RGB888);
|
image = image.convertToFormat(QImage::Format_RGB888);
|
||||||
|
@ -254,8 +261,8 @@ double mapComponent(double sobelValue) {
|
||||||
}
|
}
|
||||||
|
|
||||||
gpu::Texture* TextureUsage::createNormalTextureFromBumpImage(const QImage& srcImage, const std::string& srcImageName) {
|
gpu::Texture* TextureUsage::createNormalTextureFromBumpImage(const QImage& srcImage, const std::string& srcImageName) {
|
||||||
QImage image = srcImage;
|
QImage image = processSourceImage(srcImage);
|
||||||
|
|
||||||
if (image.format() != QImage::Format_RGB888) {
|
if (image.format() != QImage::Format_RGB888) {
|
||||||
image = image.convertToFormat(QImage::Format_RGB888);
|
image = image.convertToFormat(QImage::Format_RGB888);
|
||||||
}
|
}
|
||||||
|
@ -325,7 +332,7 @@ gpu::Texture* TextureUsage::createNormalTextureFromBumpImage(const QImage& srcIm
|
||||||
}
|
}
|
||||||
|
|
||||||
gpu::Texture* TextureUsage::createRoughnessTextureFromImage(const QImage& srcImage, const std::string& srcImageName) {
|
gpu::Texture* TextureUsage::createRoughnessTextureFromImage(const QImage& srcImage, const std::string& srcImageName) {
|
||||||
QImage image = srcImage;
|
QImage image = processSourceImage(srcImage);
|
||||||
if (!image.hasAlphaChannel()) {
|
if (!image.hasAlphaChannel()) {
|
||||||
if (image.format() != QImage::Format_RGB888) {
|
if (image.format() != QImage::Format_RGB888) {
|
||||||
image = image.convertToFormat(QImage::Format_RGB888);
|
image = image.convertToFormat(QImage::Format_RGB888);
|
||||||
|
@ -358,7 +365,7 @@ gpu::Texture* TextureUsage::createRoughnessTextureFromImage(const QImage& srcIma
|
||||||
}
|
}
|
||||||
|
|
||||||
gpu::Texture* TextureUsage::createRoughnessTextureFromGlossImage(const QImage& srcImage, const std::string& srcImageName) {
|
gpu::Texture* TextureUsage::createRoughnessTextureFromGlossImage(const QImage& srcImage, const std::string& srcImageName) {
|
||||||
QImage image = srcImage;
|
QImage image = processSourceImage(srcImage);
|
||||||
if (!image.hasAlphaChannel()) {
|
if (!image.hasAlphaChannel()) {
|
||||||
if (image.format() != QImage::Format_RGB888) {
|
if (image.format() != QImage::Format_RGB888) {
|
||||||
image = image.convertToFormat(QImage::Format_RGB888);
|
image = image.convertToFormat(QImage::Format_RGB888);
|
||||||
|
@ -395,7 +402,7 @@ gpu::Texture* TextureUsage::createRoughnessTextureFromGlossImage(const QImage& s
|
||||||
}
|
}
|
||||||
|
|
||||||
gpu::Texture* TextureUsage::createMetallicTextureFromImage(const QImage& srcImage, const std::string& srcImageName) {
|
gpu::Texture* TextureUsage::createMetallicTextureFromImage(const QImage& srcImage, const std::string& srcImageName) {
|
||||||
QImage image = srcImage;
|
QImage image = processSourceImage(srcImage);
|
||||||
if (!image.hasAlphaChannel()) {
|
if (!image.hasAlphaChannel()) {
|
||||||
if (image.format() != QImage::Format_RGB888) {
|
if (image.format() != QImage::Format_RGB888) {
|
||||||
image = image.convertToFormat(QImage::Format_RGB888);
|
image = image.convertToFormat(QImage::Format_RGB888);
|
||||||
|
@ -687,7 +694,7 @@ const int CubeLayout::NUM_CUBEMAP_LAYOUTS = sizeof(CubeLayout::CUBEMAP_LAYOUTS)
|
||||||
gpu::Texture* TextureUsage::processCubeTextureColorFromImage(const QImage& srcImage, const std::string& srcImageName, bool isLinear, bool doCompress, bool generateMips, bool generateIrradiance) {
|
gpu::Texture* TextureUsage::processCubeTextureColorFromImage(const QImage& srcImage, const std::string& srcImageName, bool isLinear, bool doCompress, bool generateMips, bool generateIrradiance) {
|
||||||
gpu::Texture* theTexture = nullptr;
|
gpu::Texture* theTexture = nullptr;
|
||||||
if ((srcImage.width() > 0) && (srcImage.height() > 0)) {
|
if ((srcImage.width() > 0) && (srcImage.height() > 0)) {
|
||||||
QImage image = srcImage;
|
QImage image = processSourceImage(srcImage);
|
||||||
if (image.format() != QImage::Format_RGB888) {
|
if (image.format() != QImage::Format_RGB888) {
|
||||||
image = image.convertToFormat(QImage::Format_RGB888);
|
image = image.convertToFormat(QImage::Format_RGB888);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue