【发布时间】:2014-02-21 14:53:54
【问题描述】:
我对 QGLWidget 进行了子分类,并在其中显示了一个图像。
对于小图像(比如 1200*1000),它可以正常工作。
对于较大的 (10000 * 6000),它会崩溃。
MyGLWidget::MyGLWidget(QImage* image, QWidget *parent) : QGLWidget(parent)
{
// ...
_data = *image;
_gldata = QGLWidget::convertToGLFormat(_data); // Crash at this point.
// ...
}
错误:
QImage: out of memory, returning null image
ASSERT: "dst.depth() == 32" in file qgl.cpp, line 2094
我有 8GB 的内存,应用程序占用最大内存。 1GB。
我能做什么?
编辑
好的,假设我的 RAM 用完了,我该如何发现这个错误?
try
{
_gldata = QGLWidget::convertToGLFormat(_data);
}
catch(...)
{
qDebug() << "e.what()";
}
看起来也不例外。
【问题讨论】:
-
这不是出自 vram 而非 ram 吗?
-
@paulm 我不知道。我怎么知道?
-
调用convert方法前_data.isNull()是真还是假?
-
您正在制作 x86 或 x64 应用程序?
-
使用 GPU-Z 之类的东西来检查 GPU 内存负载