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); }
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); }