我现在是用gluBuild2DMipmaps产生了 纹理数据,用glTexSubImage2D替换以后没有变化 就是说 替换以后还是以前的纹理数据,请教是怎么会事呢 谢谢

解决方案 »

  1.   

    for(int i=0;i<5;i++)
    {
    pRGB1=LoadBitmapFile(szfileName[i],&bih); if(!pRGB1)
    return; glBindTexture(GL_TEXTURE_2D,texture[i]); gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, bih.biWidth, bih.biHeight, GL_RGB, GL_UNSIGNED_BYTE,pRGB1);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);

    glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);

    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    }
      

  2.   

    HRESULT hr = pGrab -> GetCurrentBuffer( &n, (long *)pRGB );

    glBindTexture(GL_TEXTURE_2D,texture[0]);
    glTexSubImage2D (GL_TEXTURE_2D, GL_RGB, 0, 0, bih1.biWidth, bih1.biHeight, GL_RGB, GL_UNSIGNED_BYTE, pRGB); glPushMatrix();
    glBegin(GL_QUADS);
    glTexCoord2f(0.0f,0.0f);glVertex2f(-windowWidth,-windowHeight);
    glTexCoord2f(1.0f,0.0f);glVertex2f(windowWidth,-windowHeight);
    glTexCoord2f(1.0f,1.0f);glVertex2f(windowWidth,windowHeight);
    glTexCoord2f(0.0f,1.0f);glVertex2f(-windowWidth,windowHeight);
    glEnd();
    glPopMatrix();
      

  3.   

    试试替换glTexImage2D产生的纹理。