Ejemplo n.º 1
0
static void my_draw( BotViewer *viewer, BotRenderer *renderer )
{
    //Enable transparency
    glEnable(GL_BLEND);
    glEnable(GL_DEPTH_TEST);

    BotLcmglRenderer *self = (BotLcmglRenderer*) renderer->user;

    // iterate over each channel
    GList *keys = bot_g_hash_table_get_keys(self->channels);

    for (GList *kiter = keys; kiter; kiter=kiter->next) {
        lcmgl_channel_t *chan = g_hash_table_lookup(self->channels,
                                                   kiter->data);
        glPushMatrix();
        glPushAttrib(GL_ENABLE_BIT);

        if (chan->enabled) {
            // iterate over all the messages received for this channel
            for (int i = 0; i < chan->frontbuffer->len; i++) {
                bot_lcmgl_data_t *data =
                    g_ptr_array_index(chan->frontbuffer, i);

                bot_lcmgl_decode(data->data, data->datalen);
            }
        }
        glPopAttrib ();
        glPopMatrix();
    }
    g_list_free (keys);
}
Ejemplo n.º 2
0
static void my_draw( Viewer *viewer, Renderer *renderer )
{
    RendererLcmgl *self = (RendererLcmgl*) renderer->user;

    // iterate over each channel
    GList *keys = bot_g_hash_table_get_keys(self->channels);

    for (GList *kiter = keys; kiter; kiter=kiter->next) {
        lcgl_channel_t *chan = (lcgl_channel_t*) g_hash_table_lookup(self->channels, 
                                                   kiter->data);
        glPushMatrix();
        glPushAttrib(GL_ENABLE_BIT);

        if (chan->enabled) {
            // iterate over all the messages received for this channel
            for (int i = 0; i < (int) chan->frontbuffer->len; i++) {
                botlcm_lcmgl_data_t *data = (botlcm_lcmgl_data_t*)
                    g_ptr_array_index(chan->frontbuffer, i);
                
                bot_lcmgl_decode(data->data, data->datalen);
            }
        }
        glPopAttrib ();
        glPopMatrix();
    }
    g_list_free (keys);
}