Changeset 1463


Ignore:
Timestamp:
Jun 13, 2012, 12:02:05 AM (8 years ago)
Author:
sam
Message:

neercs: minor vertex buffer usage optimisation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/neercs/video/render.cpp

    r1462 r1463  
    535535        float y = dos_m + (float)(15 * ratio_2d);
    536536
     537        /* Background colors */
     538        glDisable(GL_TEXTURE_2D);
     539        for (int j = 0; j < caca_get_canvas_height(m_caca); j++)
     540        for (int i = 0; i < caca_get_canvas_width(m_caca); i++)
     541        {
     542            uint32_t att = caca_get_attr(m_caca, i, j);
     543
     544            glLoadIdentity();
     545            glTranslated(x+i*(dos_w+2*ratio_2d), y+j*(dos_h+4*ratio_2d), 0);
     546
     547            uint16_t bg = caca_attr_to_rgb12_bg(att);
     548            glColor3f((float)(bg >> 8) / 16.f,
     549                      (float)((bg & 0xf0) >> 4) / 16.f,
     550                      (float)(bg & 0xf) / 16.f);
     551            glDrawArrays(GL_QUADS, 0, 4);
     552        }
     553        glEnable(GL_TEXTURE_2D);
     554
     555        /* Foreground characters */
    537556        for (int j = 0; j < caca_get_canvas_height(m_caca); j++)
    538557        for (int i = 0; i < caca_get_canvas_width(m_caca); i++)
     
    541560            uint32_t att = caca_get_attr(m_caca, i, j);
    542561
     562            if (car <= 32 || car >= 127)
     563                continue;
     564
    543565            glLoadIdentity();
    544566            glTranslated(x+i*(dos_w+2*ratio_2d), y+j*(dos_h+4*ratio_2d), 0);
    545567
    546             glDisable(GL_TEXTURE_2D);
    547             uint16_t bg = caca_attr_to_rgb12_bg(att);
    548             glColor3f((float)(bg >> 8) / 16.f,
    549                       (float)((bg & 0xf0) >> 4) / 16.f,
    550                       (float)(bg & 0xf) / 16.f);
     568            float l_w=(car%16)*0.03125f;
     569            float l_h=(car-car%16)*0.001953125f;
     570            float dos_tex[]={l_w+0.03125f, 0.5f+l_h+0.03125f, l_w+0.03125f, 0.5f+l_h, l_w, 0.5f+l_h, l_w, 0.5f+l_h+0.03125f};
     571            glTexCoordPointer(2, GL_FLOAT, 0, dos_tex);
     572            uint16_t fg = caca_attr_to_rgb12_fg(att);
     573            glColor3f((float)(fg >> 8) / 16.f,
     574                      (float)((fg & 0xf0) >> 4) / 16.f,
     575                      (float)(fg & 0xf) / 16.f);
     576            // FIXME: draw cursor!
     577            //if(car==car_cursor) glColor3f(CR*(dos_color.r+64), CR*(dos_color.g+48), CR*(dos_color.b+48));
    551578            glDrawArrays(GL_QUADS, 0, 4);
    552             glEnable(GL_TEXTURE_2D);
    553 
    554             if (car > 32 && car < 127)
    555             {
    556                 float l_w=(car%16)*0.03125f;
    557                 float l_h=(car-car%16)*0.001953125f;
    558                 float dos_tex[]={l_w+0.03125f, 0.5f+l_h+0.03125f, l_w+0.03125f, 0.5f+l_h, l_w, 0.5f+l_h, l_w, 0.5f+l_h+0.03125f};
    559                 glTexCoordPointer(2, GL_FLOAT, 0, dos_tex);
    560                 uint16_t fg = caca_attr_to_rgb12_fg(att);
    561                 glColor3f((float)(fg >> 8) / 16.f,
    562                           (float)((fg & 0xf0) >> 4) / 16.f,
    563                           (float)(fg & 0xf) / 16.f);
    564                 // FIXME: draw cursor!
    565                 //if(car==car_cursor) glColor3f(CR*(dos_color.r+64), CR*(dos_color.g+48), CR*(dos_color.b+48));
    566                 glDrawArrays(GL_QUADS, 0, 4);
    567                 //if(car==car_cursor) glColor3f(1.0f, 1.0f, 1.0f);
    568             }
     579            //if(car==car_cursor) glColor3f(1.0f, 1.0f, 1.0f);
    569580        }
    570581    }
Note: See TracChangeset for help on using the changeset viewer.