当我使用MATLAB的颜色条将2D曲面图导出到png文件时,当我使用opengl硬件渲染器时会导致图像损坏,如下所示:

其他一切都很好.但是在我创建了一个带有颜色条的图形之后,我导出到png文件的所有其他表面图都被破坏了,即使它们不包含任何颜色条.
opengl info 在MATLAB中给出以下输出:
Version = 3.0 Mesa 10.1.0
Vendor = Intel Open Source Technology Center
Renderer = Mesa DRI Intel(R) Haswell Desktop
MaxTextureSize = 8192
Visual = 0x20 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)
Software = false
# of Extensions = 190
Driver Bug Workarounds:
OpenGLBitmapZbufferBug = 0
OpenGLWobbleTesselatorBug = 0
OpenGLLineSmoothingBug = 0
OpenGLClippedImageBug = 0
OpenGLEraseModeBug = 0
Run Code Online (Sandbox Code Playgroud)
我尝试了所有这些OpenGL的解决方法,但没有任何帮助.
有谁知道如何解决这个问题?
我的系统:
在我的同事的计算机上,这是完全一样的,但有一个不同的操作系统(debian wheezy)这个问题没有出现.在他的电脑上opengl info …
当我尝试将数组的指针(包含程序中某些函数所需的参数)传递给结构时,我遇到了问题,然后应该将结果传递给这些函数.例如,GSL希望我以这种方式传递参数.
一个小例子程序看起来像这样:
#include <iostream>
using namespace std;
struct myparams
{
double * a;
double ** b;
};
int main()
{
double c[10] = {0,1,2,3,4,5,6,7,8,9};
double d[4][3] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
double** e = new double*[4];
for (int i = 0; i < 4; i++) {
e[i] = new double[3];
}
myparams params;
// THIS WORKS:
params.a = c;
for (int i = 0; i < 10; i++) {
cout << params.a[i] << endl;
}
// THIS DOESN'T WORK
params.b = d;
// …Run Code Online (Sandbox Code Playgroud)