Ignore:
Timestamp:
Apr 26, 2006, 8:59:20 PM (14 years ago)
Author:
Jean-Yves Lamoureux
Message:
  • coding style fixes again
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca/driver_gl.c

    r912 r918  
    164164
    165165    for(i = 32; i < 128; i++)
    166     {
    167         glGenTextures(1, (GLuint*)&dp->drv.p->id[i - 32]);
    168         glBindTexture(GL_TEXTURE_2D, dp->drv.p->id[i - 32]);
    169         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    170         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    171         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8,
    172                      16, 16, 0, GL_RGB, GL_UNSIGNED_BYTE, empty_texture);
    173     }
     166        {
     167            glGenTextures(1, (GLuint*)&dp->drv.p->id[i - 32]);
     168            glBindTexture(GL_TEXTURE_2D, dp->drv.p->id[i - 32]);
     169            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
     170            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
     171            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8,
     172                         16, 16, 0, GL_RGB, GL_UNSIGNED_BYTE, empty_texture);
     173        }
    174174
    175175    for(i = 0; i < 8; i++)
    176     {
    177         glGenTextures(1, (GLuint*)&dp->drv.p->id_uni[i]);
    178         glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[i]);
    179         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    180         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    181         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8,
    182                      16, 16, 0, GL_RGB, GL_UNSIGNED_BYTE, empty_texture);
    183     }
     176        {
     177            glGenTextures(1, (GLuint*)&dp->drv.p->id_uni[i]);
     178            glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[i]);
     179            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
     180            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
     181            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8,
     182                         16, 16, 0, GL_RGB, GL_UNSIGNED_BYTE, empty_texture);
     183        }
    184184
    185185    for(i = 32; i < 128; i++)
    186     {
    187         glDisable(GL_TEXTURE_2D);
    188         glClear(GL_COLOR_BUFFER_BIT);
    189 
    190         glColor3f(1, 1, 1);
    191         glRasterPos2f(0, 15);
    192         glutBitmapCharacter(GLUT_BITMAP_9_BY_15, i);
    193 
    194         glEnable(GL_TEXTURE_2D);
    195         glBindTexture(GL_TEXTURE_2D, dp->drv.p->id[i - 32]);
    196         glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
    197                          0, dp->drv.p->height - 16, 16, 16, 0);
     186        {
     187            glDisable(GL_TEXTURE_2D);
     188            glClear(GL_COLOR_BUFFER_BIT);
     189
     190            glColor3f(1, 1, 1);
     191            glRasterPos2f(0, 15);
     192            glutBitmapCharacter(GLUT_BITMAP_9_BY_15, i);
     193
     194            glEnable(GL_TEXTURE_2D);
     195            glBindTexture(GL_TEXTURE_2D, dp->drv.p->id[i - 32]);
     196            glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
     197                             0, dp->drv.p->height - 16, 16, 16, 0);
    198198
    199199#ifdef HAVE_GLUTCHECKLOOP
    200         glutCheckLoop();
     200            glutCheckLoop();
    201201#else
    202         glutMainLoopEvent();
    203 #endif
    204         glutSwapBuffers();
    205 
    206     }
     202            glutMainLoopEvent();
     203#endif
     204            glutSwapBuffers();
     205
     206        }
    207207    /* CP437 hack */
    208208    for(i = 0; i < 8; i++)
    209     {
    210         glDisable(GL_TEXTURE_2D);
    211         glClear(GL_COLOR_BUFFER_BIT);
    212         glColor3f(1, 1, 1);
    213         glTranslatef(0.5,0.5,0);
    214 
    215         if(i==0)                  /* 0x00002580*/
    216         {
    217             glBegin(GL_QUADS);
    218             glVertex2f(0,0); glVertex2f(9,0); glVertex2f(9,7); glVertex2f(0,7);
    219             glEnd();
    220         }
    221         else if(i==1)             /* 0x00002584*/
    222         {
    223             glBegin(GL_QUADS);
    224             glVertex2f(0,7); glVertex2f(9,7); glVertex2f(9,15); glVertex2f(0,15);
    225             glEnd();
    226         }
    227         else if(i==2)             /* 0x00002588*/
    228         {
    229             glBegin(GL_QUADS);
    230             glVertex2f(0,0); glVertex2f(9,0); glVertex2f(9,15); glVertex2f(0,15);
    231             glEnd();
    232         }
    233         else if(i==3)             /* 0x0000258c*/
    234         {
    235             glBegin(GL_QUADS);
    236             glVertex2f(0,0); glVertex2f(4,0); glVertex2f(4,15); glVertex2f(0,15);
    237             glEnd();
    238         }
    239         else if(i==4)             /* 0x00002590*/
    240         {
    241             glBegin(GL_QUADS);
    242             glVertex2f(4,0); glVertex2f(9,0); glVertex2f(9,15); glVertex2f(4,15);
    243             glEnd();
    244         }
    245         else if(i>=5)             /* 0x00002591*/
    246         {
    247             int a, j, k = i-5;
    248             for(j = dp->drv.p->font_height; j--; )
    249                 for(a = dp->drv.p->font_width; a--; )
    250                 {
    251                     if(((a + 2 * (j & 1)) & 3) > k)
    252                         continue;
    253 
    254                     glBegin(GL_POINTS);
    255                     glVertex2f(a, j);
    256                     glEnd();
    257                 }
    258         }
    259 
    260 
    261 
    262         glEnable(GL_TEXTURE_2D);
    263         glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[i]);
    264         glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
    265                         0, dp->drv.p->height - 16, 16, 16, 0);
     209        {
     210            glDisable(GL_TEXTURE_2D);
     211            glClear(GL_COLOR_BUFFER_BIT);
     212            glColor3f(1, 1, 1);
     213            glTranslatef(0.5,0.5,0);
     214
     215            if(i==0)                  /* 0x00002580*/
     216                {
     217                    glBegin(GL_QUADS);
     218                    glVertex2f(0,0); glVertex2f(9,0); glVertex2f(9,7); glVertex2f(0,7);
     219                    glEnd();
     220                }
     221            else if(i==1)             /* 0x00002584*/
     222                {
     223                    glBegin(GL_QUADS);
     224                    glVertex2f(0,7); glVertex2f(9,7); glVertex2f(9,15); glVertex2f(0,15);
     225                    glEnd();
     226                }
     227            else if(i==2)             /* 0x00002588*/
     228                {
     229                    glBegin(GL_QUADS);
     230                    glVertex2f(0,0); glVertex2f(9,0); glVertex2f(9,15); glVertex2f(0,15);
     231                    glEnd();
     232                }
     233            else if(i==3)             /* 0x0000258c*/
     234                {
     235                    glBegin(GL_QUADS);
     236                    glVertex2f(0,0); glVertex2f(4,0); glVertex2f(4,15); glVertex2f(0,15);
     237                    glEnd();
     238                }
     239            else if(i==4)             /* 0x00002590*/
     240                {
     241                    glBegin(GL_QUADS);
     242                    glVertex2f(4,0); glVertex2f(9,0); glVertex2f(9,15); glVertex2f(4,15);
     243                    glEnd();
     244                }
     245            else if(i>=5)             /* 0x00002591*/
     246                {
     247                    int a, j, k = i-5;
     248                    for(j = dp->drv.p->font_height; j--; )
     249                        for(a = dp->drv.p->font_width; a--; )
     250                            {
     251                                if(((a + 2 * (j & 1)) & 3) > k)
     252                                    continue;
     253
     254                                glBegin(GL_POINTS);
     255                                glVertex2f(a, j);
     256                                glEnd();
     257                            }
     258                }
     259
     260
     261
     262            glEnable(GL_TEXTURE_2D);
     263            glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[i]);
     264            glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
     265                            0, dp->drv.p->height - 16, 16, 16, 0);
    266266#ifdef HAVE_GLUTCHECKLOOP
    267         glutCheckLoop();
     267            glutCheckLoop();
    268268#else
    269         glutMainLoopEvent();
    270 #endif
    271         glutSwapBuffers();
    272         glutPostRedisplay();
    273 
    274 
    275     }
     269            glutMainLoopEvent();
     270#endif
     271            glutSwapBuffers();
     272            glutPostRedisplay();
     273
     274
     275        }
    276276
    277277
     
    311311    line = 0;
    312312    for(y = 0; y < dp->drv.p->height; y += dp->drv.p->font_height)
    313     {
    314         uint32_t *attr = dp->cv->attr + line * dp->cv->width;
    315 
    316         for(x = 0; x < dp->drv.p->width; x += dp->drv.p->font_width)
    317         {
    318             uint16_t bg = _cucul_argb32_to_rgb12bg(*attr++);
    319             glDisable(GL_TEXTURE_2D);
    320             glColor3b(((bg & 0xf00) >> 8) * 8,
    321                       ((bg & 0x0f0) >> 4) * 8,
    322                       (bg & 0x00f) * 8);
    323             glBegin(GL_QUADS);
    324                 glVertex2f(x, y);
    325                 glVertex2f(x + dp->drv.p->font_width, y);
    326                 glVertex2f(x + dp->drv.p->font_width,
    327                            y + dp->drv.p->font_height);
    328                 glVertex2f(x, y + dp->drv.p->font_height);
    329             glEnd();
    330         }
    331 
    332         line++;
    333     }
     313        {
     314            uint32_t *attr = dp->cv->attr + line * dp->cv->width;
     315
     316            for(x = 0; x < dp->drv.p->width; x += dp->drv.p->font_width)
     317                {
     318                    uint16_t bg = _cucul_argb32_to_rgb12bg(*attr++);
     319                    glDisable(GL_TEXTURE_2D);
     320                    glColor3b(((bg & 0xf00) >> 8) * 8,
     321                              ((bg & 0x0f0) >> 4) * 8,
     322                              (bg & 0x00f) * 8);
     323                    glBegin(GL_QUADS);
     324                    glVertex2f(x, y);
     325                    glVertex2f(x + dp->drv.p->font_width, y);
     326                    glVertex2f(x + dp->drv.p->font_width,
     327                               y + dp->drv.p->font_height);
     328                    glVertex2f(x, y + dp->drv.p->font_height);
     329                    glEnd();
     330                }
     331
     332            line++;
     333        }
    334334
    335335    /* 2nd pass, avoids changing render state too much */
     
    340340    line = 0;
    341341    for(y = 0; y < dp->drv.p->height; y += dp->drv.p->font_height)
    342     {
    343         uint32_t *attr = dp->cv->attr + line * dp->cv->width;
    344         uint32_t *chars = dp->cv->chars + line * dp->cv->width;
    345 
    346         for(x = 0; x < dp->drv.p->width; x += dp->drv.p->font_width)
    347         {
    348             uint32_t cv = *chars++;
    349 
    350             if(cv > 0x00000020 && cv < 0x00000080)
    351             {
    352                 uint16_t fg = _cucul_argb32_to_rgb12fg(*attr);
    353                 glBindTexture(GL_TEXTURE_2D, dp->drv.p->id[cv - 32]);
    354                 glColor3b(((fg & 0xf00) >> 8) * 8,
    355                           ((fg & 0x0f0) >> 4) * 8,
    356                           (fg & 0x00f) * 8);
    357                 glBegin(GL_QUADS);
    358                     glTexCoord2f(0, dp->drv.p->sh);
    359                     glVertex2f(x, y);
    360                     glTexCoord2f(dp->drv.p->sw, dp->drv.p->sh);
    361                     glVertex2f(x + dp->drv.p->font_width, y);
    362                     glTexCoord2f(dp->drv.p->sw, 0);
    363                     glVertex2f(x + dp->drv.p->font_width,
    364                                y + dp->drv.p->font_height);
    365                     glTexCoord2f(0, 0);
    366                     glVertex2f(x, y + dp->drv.p->font_height);
    367                 glEnd();
    368             }
    369             else if(cv!=' ')
    370             {
    371                 switch(cv)
    372                 {
    373                     case 0x00002580: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[0]); break;
    374                     case 0x00002584: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[1]); break;
    375                     case 0x00002588: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[2]); break;
    376                     case 0x0000258c: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[3]); break;
    377                     case 0x00002590: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[4]); break;
    378                     case 0x00002591: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[5]); break;
    379                     case 0x00002592: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[6]); break;
    380                     case 0x00002593: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[7]); break;
    381                     default:         glBindTexture(GL_TEXTURE_2D, dp->drv.p->id['?' - 32]); break;
    382                 }
    383 
    384                 uint16_t fg = _cucul_argb32_to_rgb12fg(*attr);
    385                 glColor3b(((fg & 0xf00) >> 8) * 8,
    386                           ((fg & 0x0f0) >> 4) * 8,
    387                           (fg & 0x00f) * 8);
    388                 glBegin(GL_QUADS);
    389                     glTexCoord2f(0, dp->drv.p->sh);
    390                     glVertex2f(x, y);
    391                     glTexCoord2f(dp->drv.p->sw, dp->drv.p->sh);
    392                     glVertex2f(x + dp->drv.p->font_width, y);
    393                     glTexCoord2f(dp->drv.p->sw, 0);
    394                     glVertex2f(x + dp->drv.p->font_width,
    395                                y + dp->drv.p->font_height);
    396                     glTexCoord2f(0, 0);
    397                     glVertex2f(x, y + dp->drv.p->font_height);
    398                 glEnd();
    399 
    400             }
    401 
    402             attr++;
    403         }
    404         line++;
    405     }
     342        {
     343            uint32_t *attr = dp->cv->attr + line * dp->cv->width;
     344            uint32_t *chars = dp->cv->chars + line * dp->cv->width;
     345
     346            for(x = 0; x < dp->drv.p->width; x += dp->drv.p->font_width)
     347                {
     348                    uint32_t cv = *chars++;
     349
     350                    if(cv > 0x00000020 && cv < 0x00000080)
     351                        {
     352                            uint16_t fg = _cucul_argb32_to_rgb12fg(*attr);
     353                            glBindTexture(GL_TEXTURE_2D, dp->drv.p->id[cv - 32]);
     354                            glColor3b(((fg & 0xf00) >> 8) * 8,
     355                                      ((fg & 0x0f0) >> 4) * 8,
     356                                      (fg & 0x00f) * 8);
     357                            glBegin(GL_QUADS);
     358                            glTexCoord2f(0, dp->drv.p->sh);
     359                            glVertex2f(x, y);
     360                            glTexCoord2f(dp->drv.p->sw, dp->drv.p->sh);
     361                            glVertex2f(x + dp->drv.p->font_width, y);
     362                            glTexCoord2f(dp->drv.p->sw, 0);
     363                            glVertex2f(x + dp->drv.p->font_width,
     364                                       y + dp->drv.p->font_height);
     365                            glTexCoord2f(0, 0);
     366                            glVertex2f(x, y + dp->drv.p->font_height);
     367                            glEnd();
     368                        }
     369                    else if(cv!=' ')
     370                        {
     371                            switch(cv)
     372                                {
     373                                case 0x00002580: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[0]); break;
     374                                case 0x00002584: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[1]); break;
     375                                case 0x00002588: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[2]); break;
     376                                case 0x0000258c: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[3]); break;
     377                                case 0x00002590: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[4]); break;
     378                                case 0x00002591: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[5]); break;
     379                                case 0x00002592: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[6]); break;
     380                                case 0x00002593: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[7]); break;
     381                                default:         glBindTexture(GL_TEXTURE_2D, dp->drv.p->id['?' - 32]); break;
     382                                }
     383
     384                            uint16_t fg = _cucul_argb32_to_rgb12fg(*attr);
     385                            glColor3b(((fg & 0xf00) >> 8) * 8,
     386                                      ((fg & 0x0f0) >> 4) * 8,
     387                                      (fg & 0x00f) * 8);
     388                            glBegin(GL_QUADS);
     389                            glTexCoord2f(0, dp->drv.p->sh);
     390                            glVertex2f(x, y);
     391                            glTexCoord2f(dp->drv.p->sw, dp->drv.p->sh);
     392                            glVertex2f(x + dp->drv.p->font_width, y);
     393                            glTexCoord2f(dp->drv.p->sw, 0);
     394                            glVertex2f(x + dp->drv.p->font_width,
     395                                       y + dp->drv.p->font_height);
     396                            glTexCoord2f(0, 0);
     397                            glVertex2f(x, y + dp->drv.p->font_height);
     398                            glEnd();
     399
     400                        }
     401
     402                    attr++;
     403                }
     404            line++;
     405        }
    406406    glDisable(GL_BLEND);
    407407    glDisable(GL_TEXTURE_2D);
     
    440440#ifdef HAVE_GLUTCLOSEFUNC
    441441    if(dp->drv.p->close)
    442     {
    443         dp->drv.p->close = 0;
    444         ev->type = CACA_EVENT_QUIT;
    445         return 1;
    446     }
     442        {
     443            dp->drv.p->close = 0;
     444            ev->type = CACA_EVENT_QUIT;
     445            return 1;
     446        }
    447447#endif
    448448
    449449    if(dp->resize.resized)
    450     {
    451         ev->type = CACA_EVENT_RESIZE;
    452         ev->data.resize.w = dp->cv->width;
    453         ev->data.resize.h = dp->cv->height;
    454         return 1;
    455     }
     450        {
     451            ev->type = CACA_EVENT_RESIZE;
     452            ev->data.resize.w = dp->cv->width;
     453            ev->data.resize.h = dp->cv->height;
     454            return 1;
     455        }
    456456
    457457    if(dp->drv.p->mouse_changed)
    458     {
    459         ev->type = CACA_EVENT_MOUSE_MOTION;
    460         ev->data.mouse.x = dp->mouse.x;
    461         ev->data.mouse.y = dp->mouse.y;
    462         dp->drv.p->mouse_changed = 0;
    463 
    464         if(dp->drv.p->mouse_clicked)
    465         {
    466             _push_event(dp, ev);
    467             ev->type = CACA_EVENT_MOUSE_PRESS;
    468             ev->data.mouse.button = dp->drv.p->mouse_button;
    469             dp->drv.p->mouse_clicked = 0;
    470         }
    471 
    472         return 1;
    473     }
     458        {
     459            ev->type = CACA_EVENT_MOUSE_MOTION;
     460            ev->data.mouse.x = dp->mouse.x;
     461            ev->data.mouse.y = dp->mouse.y;
     462            dp->drv.p->mouse_changed = 0;
     463
     464            if(dp->drv.p->mouse_clicked)
     465                {
     466                    _push_event(dp, ev);
     467                    ev->type = CACA_EVENT_MOUSE_PRESS;
     468                    ev->data.mouse.button = dp->drv.p->mouse_button;
     469                    dp->drv.p->mouse_clicked = 0;
     470                }
     471
     472            return 1;
     473        }
    474474
    475475    if(dp->drv.p->key != 0)
    476     {
    477         ev->type = CACA_EVENT_KEY_PRESS;
    478         ev->data.key.ch = dp->drv.p->key;
    479         ev->data.key.ucs4 = (uint32_t)dp->drv.p->key;
    480         ev->data.key.utf8[0] = dp->drv.p->key;
    481         ev->data.key.utf8[1] = '\0';
    482         dp->drv.p->key = 0;
    483         return 1;
    484     }
     476        {
     477            ev->type = CACA_EVENT_KEY_PRESS;
     478            ev->data.key.ch = dp->drv.p->key;
     479            ev->data.key.ucs4 = (uint32_t)dp->drv.p->key;
     480            ev->data.key.utf8[0] = dp->drv.p->key;
     481            ev->data.key.utf8[1] = '\0';
     482            dp->drv.p->key = 0;
     483            return 1;
     484        }
    485485
    486486    if(dp->drv.p->special_key != 0)
    487     {
    488         switch(dp->drv.p->special_key)
    489         {
    490             case GLUT_KEY_F1 : ev->data.key.ch = CACA_KEY_F1; break;
    491             case GLUT_KEY_F2 : ev->data.key.ch = CACA_KEY_F2; break;
    492             case GLUT_KEY_F3 : ev->data.key.ch = CACA_KEY_F3; break;
    493             case GLUT_KEY_F4 : ev->data.key.ch = CACA_KEY_F4; break;
    494             case GLUT_KEY_F5 : ev->data.key.ch = CACA_KEY_F5; break;
    495             case GLUT_KEY_F6 : ev->data.key.ch = CACA_KEY_F6; break;
    496             case GLUT_KEY_F7 : ev->data.key.ch = CACA_KEY_F7; break;
    497             case GLUT_KEY_F8 : ev->data.key.ch = CACA_KEY_F8; break;
    498             case GLUT_KEY_F9 : ev->data.key.ch = CACA_KEY_F9; break;
    499             case GLUT_KEY_F10: ev->data.key.ch = CACA_KEY_F10; break;
    500             case GLUT_KEY_F11: ev->data.key.ch = CACA_KEY_F11; break;
    501             case GLUT_KEY_F12: ev->data.key.ch = CACA_KEY_F12; break;
    502             case GLUT_KEY_LEFT : ev->data.key.ch = CACA_KEY_LEFT; break;
    503             case GLUT_KEY_RIGHT: ev->data.key.ch = CACA_KEY_RIGHT; break;
    504             case GLUT_KEY_UP   : ev->data.key.ch = CACA_KEY_UP; break;
    505             case GLUT_KEY_DOWN : ev->data.key.ch = CACA_KEY_DOWN; break;
    506             case GLUT_KEY_PAGE_UP : ev->data.key.ch = CACA_KEY_PAGEUP; break;
    507             case GLUT_KEY_PAGE_DOWN  : ev->data.key.ch = CACA_KEY_PAGEDOWN;
    508                                                                        break;
    509             case GLUT_KEY_HOME : ev->data.key.ch = CACA_KEY_HOME; break;
    510             case GLUT_KEY_END : ev->data.key.ch = CACA_KEY_END; break;
    511             case GLUT_KEY_INSERT : ev->data.key.ch = CACA_KEY_INSERT; break;
    512 
    513             default: ev->type = CACA_EVENT_NONE; return 0;
    514         }
    515 
    516         ev->type = CACA_EVENT_KEY_PRESS;
    517         ev->data.key.ucs4 = 0;
    518         ev->data.key.utf8[0] = '\0';
    519 
    520         dp->drv.p->special_key = 0;
    521         return 1;
    522     }
     487        {
     488            switch(dp->drv.p->special_key)
     489                {
     490                case GLUT_KEY_F1 : ev->data.key.ch = CACA_KEY_F1; break;
     491                case GLUT_KEY_F2 : ev->data.key.ch = CACA_KEY_F2; break;
     492                case GLUT_KEY_F3 : ev->data.key.ch = CACA_KEY_F3; break;
     493                case GLUT_KEY_F4 : ev->data.key.ch = CACA_KEY_F4; break;
     494                case GLUT_KEY_F5 : ev->data.key.ch = CACA_KEY_F5; break;
     495                case GLUT_KEY_F6 : ev->data.key.ch = CACA_KEY_F6; break;
     496                case GLUT_KEY_F7 : ev->data.key.ch = CACA_KEY_F7; break;
     497                case GLUT_KEY_F8 : ev->data.key.ch = CACA_KEY_F8; break;
     498                case GLUT_KEY_F9 : ev->data.key.ch = CACA_KEY_F9; break;
     499                case GLUT_KEY_F10: ev->data.key.ch = CACA_KEY_F10; break;
     500                case GLUT_KEY_F11: ev->data.key.ch = CACA_KEY_F11; break;
     501                case GLUT_KEY_F12: ev->data.key.ch = CACA_KEY_F12; break;
     502                case GLUT_KEY_LEFT : ev->data.key.ch = CACA_KEY_LEFT; break;
     503                case GLUT_KEY_RIGHT: ev->data.key.ch = CACA_KEY_RIGHT; break;
     504                case GLUT_KEY_UP   : ev->data.key.ch = CACA_KEY_UP; break;
     505                case GLUT_KEY_DOWN : ev->data.key.ch = CACA_KEY_DOWN; break;
     506                case GLUT_KEY_PAGE_UP : ev->data.key.ch = CACA_KEY_PAGEUP; break;
     507                case GLUT_KEY_PAGE_DOWN  : ev->data.key.ch = CACA_KEY_PAGEDOWN;
     508                    break;
     509                case GLUT_KEY_HOME : ev->data.key.ch = CACA_KEY_HOME; break;
     510                case GLUT_KEY_END : ev->data.key.ch = CACA_KEY_END; break;
     511                case GLUT_KEY_INSERT : ev->data.key.ch = CACA_KEY_INSERT; break;
     512
     513                default: ev->type = CACA_EVENT_NONE; return 0;
     514                }
     515
     516            ev->type = CACA_EVENT_KEY_PRESS;
     517            ev->data.key.ucs4 = 0;
     518            ev->data.key.utf8[0] = '\0';
     519
     520            dp->drv.p->special_key = 0;
     521            return 1;
     522        }
    523523
    524524    ev->type = CACA_EVENT_NONE;
     
    558558
    559559    if(dp->drv.p->bit) /* Do not handle reshaping at the first time */
    560     {
    561         dp->drv.p->new_width = w;
    562         dp->drv.p->new_height = h;
    563 
    564         dp->resize.w = w / dp->drv.p->font_width;
    565         dp->resize.h = (h / dp->drv.p->font_height) + 1;
    566 
    567         dp->resize.resized = 1;
    568     }
     560        {
     561            dp->drv.p->new_width = w;
     562            dp->drv.p->new_height = h;
     563
     564            dp->resize.w = w / dp->drv.p->font_width;
     565            dp->resize.h = (h / dp->drv.p->font_height) + 1;
     566
     567            dp->resize.resized = 1;
     568        }
    569569    else
    570570        dp->drv.p->bit = 1;
Note: See TracChangeset for help on using the changeset viewer.