Я пытаюсь использовать QOpenGLWidget, чтобы показать некоторые изображения вместо использования QLabel. Но я немного запутался, как это сделать.
Чтобы сделать виджет выполненным, я знаю, что мне нужно переопределить метод initializeGL()
и метод paintGL()
.
Чтобы получить текстуру изображения, я использовал SOIL_load_image()
. Почему unsigned char* img_data
превышает unsigned char* img_data[3]
? Я думаю, что каждый пиксель изображения имеет 3 значения ( RGB ).
После получения текстуры я понятия не имею, что мне следует делать и где мне их делать в initializeGL()
или paintGL()
. Кто-нибудь может сказать шаги?
void MyOpenGLWidget::loadTexture(const char* file_path)
{
*image = cv::imread(file_path, cv::IMREAD_COLOR);
width = image->rows;
height = image->cols;
int channels = image->channels();
img_data = SOIL_load_image(file_path, &width, &height, &channels, SOIL_LOAD_RGB);
}