Ignore:
Timestamp:
Sep 27, 2008, 3:12:46 PM (11 years ago)
Author:
Sam Hocevar
Message:

Starting refactoring to get rid of libcucul. The initial reason for the
split is rendered moot by the plugin system: when enabled, binaries do
not link directly with libX11 or libGL. I hope this is a step towards
more consisteny and clarity.

File:
1 edited

Legend:

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

    r2305 r2821  
    3636#include <stdio.h>
    3737
    38 #include "cucul.h"
    3938#include "caca.h"
    4039#include "caca_internals.h"
     
    6665    int width, height;
    6766    int new_width, new_height;
    68     cucul_font_t *f;
     67    caca_font_t *f;
    6968    float font_width, font_height;
    7069    float incx, incy;
     
    8887    char *argv[2] = { "", NULL };
    8988    char const * const * fonts;
    90     int width = cucul_get_canvas_width(dp->cv);
    91     int height = cucul_get_canvas_height(dp->cv);
     89    int width = caca_get_canvas_width(dp->cv);
     90    int height = caca_get_canvas_height(dp->cv);
    9291    int argc = 1;
    9392
     
    103102
    104103    dp->resize.allow = 1;
    105     cucul_set_canvas_size(dp->cv, width ? width : 80, height ? height : 32);
     104    caca_set_canvas_size(dp->cv, width ? width : 80, height ? height : 32);
    106105    dp->resize.allow = 0;
    107106
    108     /* Load a libcucul internal font */
    109     fonts = cucul_get_font_list();
     107    /* Load a libcaca internal font */
     108    fonts = caca_get_font_list();
    110109    if(fonts[0] == NULL)
    111110    {
    112         fprintf(stderr, "error: libcucul was compiled without any fonts\n");
     111        fprintf(stderr, "error: libcaca was compiled without any fonts\n");
    113112        return -1;
    114113    }
    115     dp->drv.p->f = cucul_load_font(fonts[0], 0);
     114    dp->drv.p->f = caca_load_font(fonts[0], 0);
    116115    if(dp->drv.p->f == NULL)
    117116    {
     
    120119    }
    121120
    122     dp->drv.p->font_width = cucul_get_font_width(dp->drv.p->f);
    123     dp->drv.p->font_height = cucul_get_font_height(dp->drv.p->f);
    124 
    125     dp->drv.p->width = cucul_get_canvas_width(dp->cv) * dp->drv.p->font_width;
    126     dp->drv.p->height = cucul_get_canvas_height(dp->cv) * dp->drv.p->font_height;
     121    dp->drv.p->font_width = caca_get_font_width(dp->drv.p->f);
     122    dp->drv.p->font_height = caca_get_font_height(dp->drv.p->f);
     123
     124    dp->drv.p->width = caca_get_canvas_width(dp->cv) * dp->drv.p->font_width;
     125    dp->drv.p->height = caca_get_canvas_height(dp->cv) * dp->drv.p->font_height;
    127126
    128127#ifdef HAVE_GLUTCLOSEFUNC
     
    193192    glutHideWindow();
    194193    glutDestroyWindow(dp->drv.p->window);
    195     cucul_free_font(dp->drv.p->f);
     194    caca_free_font(dp->drv.p->f);
    196195    free(dp->drv.p->txid);
    197196    free(dp->drv.p);
     
    217216static void gl_display(caca_display_t *dp)
    218217{
    219     uint32_t const *cvchars = (uint32_t const *)cucul_get_canvas_chars(dp->cv);
    220     uint32_t const *cvattrs = (uint32_t const *)cucul_get_canvas_attrs(dp->cv);
    221     int width = cucul_get_canvas_width(dp->cv);
     218    uint32_t const *cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv);
     219    uint32_t const *cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv);
     220    int width = caca_get_canvas_width(dp->cv);
    222221    int x, y, line;
    223222
     
    233232        for(x = 0; x < dp->drv.p->width; x += dp->drv.p->font_width)
    234233        {
    235             uint16_t bg = cucul_attr_to_rgb12_bg(*attrs++);
     234            uint16_t bg = caca_attr_to_rgb12_bg(*attrs++);
    236235
    237236            glColor4b(((bg & 0xf00) >> 8) * 8,
     
    267266            int i, b, fullwidth;
    268267
    269             fullwidth = cucul_utf32_is_fullwidth(ch);
     268            fullwidth = caca_utf32_is_fullwidth(ch);
    270269
    271270            for(b = 0, i = 0; dp->drv.p->blocks[i + 1]; i += 2)
     
    285284                                        - (uint32_t)dp->drv.p->blocks[i]]);
    286285
    287                 fg = cucul_attr_to_rgb12_fg(*attrs);
     286                fg = caca_attr_to_rgb12_fg(*attrs);
    288287                glColor3b(((fg & 0xf00) >> 8) * 8,
    289288                          ((fg & 0x0f0) >> 4) * 8,
     
    353352    {
    354353        ev->type = CACA_EVENT_RESIZE;
    355         ev->data.resize.w = cucul_get_canvas_width(dp->cv);
    356         ev->data.resize.h = cucul_get_canvas_height(dp->cv);
     354        ev->data.resize.w = caca_get_canvas_width(dp->cv);
     355        ev->data.resize.h = caca_get_canvas_height(dp->cv);
    357356        return 1;
    358357    }
     
    514513static void gl_compute_font(caca_display_t *dp)
    515514{
    516     cucul_canvas_t *cv;
     515    caca_canvas_t *cv;
    517516    uint32_t *image;
    518517    int i, b, w, h, x, y;
    519518
    520519    /* Count how many glyphs this font has */
    521     dp->drv.p->blocks = cucul_get_font_blocks(dp->drv.p->f);
     520    dp->drv.p->blocks = caca_get_font_blocks(dp->drv.p->f);
    522521
    523522    for(b = 0, i = 0; dp->drv.p->blocks[i + 1]; i += 2)
    524523        b += (int)(dp->drv.p->blocks[i + 1] - dp->drv.p->blocks[i]);
    525524
    526     /* Allocate a libcucul canvas and print all the glyphs on it */
    527     cv = cucul_create_canvas(2, b);
    528     cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK);
     525    /* Allocate a libcaca canvas and print all the glyphs on it */
     526    cv = caca_create_canvas(2, b);
     527    caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK);
    529528
    530529    for(b = 0, i = 0; dp->drv.p->blocks[i + 1]; i += 2)
     
    533532
    534533        for(j = 0; j < n; j++)
    535             cucul_put_char(cv, 0, b + j, dp->drv.p->blocks[i] + j);
     534            caca_put_char(cv, 0, b + j, dp->drv.p->blocks[i] + j);
    536535
    537536        b += n;
    538537    }
    539538
    540     /* Draw the cucul canvas onto an image buffer */
     539    /* Draw the caca canvas onto an image buffer */
    541540    image = malloc(b * dp->drv.p->font_height *
    542541                   2 * dp->drv.p->font_width * sizeof(uint32_t));
    543     cucul_render_canvas(cv, dp->drv.p->f, image, 2 * dp->drv.p->font_width,
     542    caca_render_canvas(cv, dp->drv.p->f, image, 2 * dp->drv.p->font_width,
    544543                        b * dp->drv.p->font_height, 8 * dp->drv.p->font_width);
    545     cucul_free_canvas(cv);
     544    caca_free_canvas(cv);
    546545
    547546    /* Convert all glyphs in the image buffer to GL textures */
     
    561560                                            * dp->drv.p->font_height);
    562561            int fullwidth =
    563                     cucul_utf32_is_fullwidth(dp->drv.p->blocks[i] + j);
     562                    caca_utf32_is_fullwidth(dp->drv.p->blocks[i] + j);
    564563
    565564            memset(tmp, 0, 16 * 8 * 16);
Note: See TracChangeset for help on using the changeset viewer.