1. 程式人生 > >MFC+OpenGL 紋理貼圖後再繪製線條兩個顏色相互影響

MFC+OpenGL 紋理貼圖後再繪製線條兩個顏色相互影響

    OpenGL渲染方式比GDI+強太多了,所以做繪圖操作時我選擇了OpenGL(新手),但是我在紋理貼圖時出現了這樣一個問題,就是我在貼完圖後再繼續在繪製線條什麼的最後::SwapBuffers(hDC_); glFlush(); 也就是輸出到顯示器時紋理貼圖的顏色竟然被線條的顏色影響了,如:



    而如果我只是貼圖而不繪製線條就是沒有用到glColor3f()重新設定顏色的時候貼圖還是很好的,如:


    百度了很久終於讓我找到了一個解決的方法,也就是在glClear()之後先獲取當前的顏色值fCurrentColor在最後輸出之前還原,如:

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    // Clear Screen And Depth Buffer
    GLfloat fCurrentColor[4];
    glGetFloatv(GL_CURRENT_COLOR, fCurrentColor);


    ...

    glColor4fv(fCurrentColor);


    ::SwapBuffers(hDC_);
    glFlush();