Загрузка и выгрузка текстур приводит к сбою системы - PullRequest
0 голосов
/ 24 марта 2012

Во время отладки приложения, написанного на Qt, используя OpenGL ES 2.0 на платформе ARM, встроенной в Linux, я заметил, что при многократной загрузке и выгрузке текстур встроенная платформа, над которой я работаю, начала вести себя странно.Поэтому я написал простой тестовый код, чтобы подчеркнуть библиотеку OpenGL:

main.cpp

#include <QApplication>
#include "mainwidget.h"

int main(int argc, char** argv)
{
   QApplication a(argc, argv);

   MainWidget widget;
   widget.showFullScreen();

   return a.exec();
}

и mainwidget.h:

#include <QElapsedTimer>
#include <QTimer>

#include "mainwidget.h"

MainWidget::MainWidget(QWidget *parent) :
   QGLWidget(parent)
{
   makeCurrent();

   QTimer* t = new QTimer();
   t->setSingleShot(false);
   t->setInterval(10);
   connect(t, SIGNAL(timeout()), this, SLOT(textureLoadingTest()));
   t->start();
}

void MainWidget::textureLoadingTest()
{
   QImage image(256, 512, QImage::Format_ARGB32);
   image.fill(Qt::red);

   QElapsedTimer timer;
   timer.start();
   GLuint code = bindTexture(image);
   qDebug("Texture loaded in %lldms to code = %u.", timer.elapsed(), code);

   deleteTexture(code);
}

Этот код кажется полностьюкрах системы после 20/30 тысяч текстур.Это ошибка в тестовом коде или системная проблема?

...