Changeset 6616cdbf in git


Ignore:
Timestamp:
20/06/18 01:11:10 (16 months ago)
Author:
Olly Betts <olly@…>
Branches:
stereo
Parents:
236a1b1
git-author:
Olly Betts <olly@…> (20/06/18 00:49:01)
git-committer:
Olly Betts <olly@…> (20/06/18 01:11:10)
Message:

Push stereo OpenGL code down to gla layer

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/gfxcore.cc

    r236a1b1 r6616cdbf  
    391391    }
    392392
    393     int n_Eyes = (stereo_mode ? 2 : 1);
     393    int n_Eyes = (stereo_mode == STEREO_MONO ? 1 : 2);
    394394    // 0 for left eye, 1 for right.
    395395    for (m_Eye = 0; m_Eye < n_Eyes; m_Eye++) {
    396         if (m_Eye == 0 || stereo_mode != STEREO_ANAGLYPH) {
    397             StartDrawing();
    398 
    399             if (m_Eye == 0 || stereo_mode != STEREO_2UP) {
    400                 // Clear the background.
    401                 Clear();
    402             }
    403         }
    404 
    405         if (stereo_mode == STEREO_ANAGLYPH) {
    406             if (m_Eye) {
    407                 // Clear alpha and the depth buffer.
    408                 glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE);
    409                 Clear();
    410 
    411                 // Right is green and blue.
    412                 glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE);
    413             } else {
    414                 // Left is red.
    415                 glColorMask(GL_TRUE, GL_FALSE, GL_FALSE, GL_TRUE);
    416             }
    417         }
     396        StartDrawing();
    418397
    419398        // Set up model transformation matrix.
     
    577556            }
    578557        }
    579     }
    580 
    581     if (stereo_mode == STEREO_ANAGLYPH) {
    582         // Reset colour mask.
    583         glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
    584     }
    585     FinishDrawing();
     558
     559        FinishDrawing();
     560    }
    586561}
    587562
  • src/gla-gl.cc

    r236a1b1 r6616cdbf  
    700700    ctx.SetCurrent(*this);
    701701    if (stereo_mode == STEREO_BUFFERS) {
    702         if (m_Eye != 1) {
     702        if (m_Eye == 0) {
    703703            glDrawBuffer(GL_BACK_LEFT);
    704704        } else {
     
    707707    }
    708708    glDepthMask(GL_TRUE);
     709
     710    if (m_Eye == 0) {
     711        // Clear the background.
     712        Clear();
     713
     714        if (stereo_mode == STEREO_ANAGLYPH) {
     715            // Left is red.
     716            glColorMask(GL_TRUE, GL_FALSE, GL_FALSE, GL_TRUE);
     717        }
     718    } else {
     719        if (stereo_mode == STEREO_ANAGLYPH) {
     720            // Clear alpha and the depth buffer.
     721            glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE);
     722            Clear();
     723
     724            // Right is green and blue.
     725            glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE);
     726        } else if (stereo_mode != STEREO_2UP) {
     727            // Clear the background.
     728            Clear();
     729        }
     730    }
    709731
    710732    if (!save_hints) return;
     
    736758    if (blob_method != LINES) {
    737759        SetColour(col_WHITE);
    738         Clear();
    739760        SetDataTransform();
    740761        BeginBlobs();
     
    752773            save_hints = true;
    753774        }
     775        Clear();
    754776    }
    755777
     
    10061028{
    10071029    // Complete a redraw operation.
     1030    if (stereo_mode != STEREO_MONO && m_Eye == 0) {
     1031        return;
     1032    }
     1033
     1034    if (stereo_mode == STEREO_ANAGLYPH) {
     1035        // Reset colour mask.
     1036        glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
     1037    }
    10081038
    10091039    if (double_buffered) {
  • src/gla.h

    r236a1b1 r6616cdbf  
    162162    bool CheckVisualFidelity(const unsigned char * target) const;
    163163
     164    void Clear();
     165
    164166protected:
    165167    int m_Eye;
     
    177179    void FirstShow();
    178180
    179     void Clear();
    180181    void StartDrawing();
    181182    void FinishDrawing();
Note: See TracChangeset for help on using the changeset viewer.