All pastes #210775 Raw Edit

Something

public c v1 · immutable
#210775 ·published 2006-10-20 00:08 UTC
rendered paste body
void osd_render(Evas *evas, xine_stream_t *stream){   pthread_mutex_lock(&osd_lock);    if(!stream)    {        pthread_mutex_unlock(&osd_lock);        return;    }    Evas_Rectangle *r;    Evas_List *updates, *p;    // Render the canvas (to the buffer) and fetch a list of regions that    // were updated.    updates = evas_render_updates(evas);    r = malloc(sizeof(Evas_Rectangle) * (evas_list_count(updates)+1));        int i;    for (i = 0, p = updates; p; p = p->next, i++) {        memcpy(&r[i], p->data, sizeof(Evas_Rectangle));                printf("render: %dx%d+%d+%d\n", r[i].w, r[i].h, r[i].x, r[i].y);        // Iterate through each region and tell the OSD these are invalid        // and must be updated.        /*Evas_Rectangle *r = p->data;        if(stream && r)        xine_gui_send_vo_data(stream, GUI_SEND_KAA_VO_OSD_INVALIDATE_RECT, (void *)r);*/    }    r[i].w = 0;  // sentinel    xine_gui_send_vo_data(stream, GUI_SEND_KAA_VO_OSD_INVALIDATE_RECT, (void *)r);    free(r);        evas_render_updates_free(updates);    pthread_mutex_unlock(&osd_lock);}void osd_invalidate(Evas *evas, xine_stream_t *stream){    pthread_mutex_lock(&osd_lock);    if(!stream)    {        pthread_mutex_unlock(&osd_lock);        return;    }    Evas_Rectangle *r;    r = malloc(sizeof(Evas_Rectangle) * 2);    evas_output_size_get(evas, &(r[0].w), &(r[0].h));    printf("destroy: %dx%d\n", r[0].w, r[0].h);    evas_damage_rectangle_add(evas, 0, 0, r[0].w, r[0].h);    evas_render(evas);    r[0].x = r[0].y = 0;    r[1].w = 0;    //r.w = 720;    //r.h = 576;    xine_gui_send_vo_data(stream, GUI_SEND_KAA_VO_OSD_INVALIDATE_RECT, (void *)r);    pthread_mutex_unlock(&osd_lock);}