是这样的 我写的一个程序就是directshow接受到摄像头的图像,然后用opengl显示,由于opengl的纹理需要图像长和宽都是2的整次密,所以要对图像进行转化,现在我用的gluScaleImage这个函数,但是他太耗cpu资源了,我现在想不出好的办法来实现 请大家帮忙
gluScaleImage(GL_RGB,bih1.biWidth,bih1.biHeight,GL_UNSIGNED_BYTE,pRGB,256,256,GL_UNSIGNED_BYTE,pRGB2);就是这一句代码,很耗资源。

解决方案 »

  1.   

    opengl2.0用扩展,不要求2的n次密了。
      

  2.   

    BITMAPINFOHEADER bmih_left;
    bmih_left.biSize=sizeof(BITMAPINFOHEADER);
    bmih_left.biPlanes=1;
    bmih_left.biBitCount=24;
    bmih_left.biWidth=512;
    bmih_left.biHeight=512;
    bmih_left.biCompression=BI_RGB;

    hBitmap_left =CreateDIBSection(hdc_left,(BITMAPINFO*)(&bmih_left),DIB_RGB_COLORS,(void**)(&data_left),NULL,NULL);
    SelectObject(hdc_left,hBitmap_left);把所接收的图像自己创建为位图
    然后DrawDibDraw