static void glw_image_set(glw_t *w, va_list ap) { glw_image_t *gi = (glw_image_t *)w; glw_attribute_t attrib; do { attrib = va_arg(ap, int); switch(attrib) { case GLW_ATTRIB_ANGLE: gi->gi_angle = va_arg(ap, double); break; case GLW_ATTRIB_SATURATION: gi->gi_saturation = va_arg(ap, double); compute_colors(gi); break; case GLW_ATTRIB_ALPHA_EDGES: gi->gi_alpha_edge = va_arg(ap, int); gi->gi_mode = GI_MODE_ALPHA_EDGES; break; default: GLW_ATTRIB_CHEW(attrib, ap); break; } } while(attrib); if(w->glw_class == &glw_icon) { } }
static void glw_image_set_rgb(glw_t *w, const float *rgb) { glw_image_t *gi = (void *)w; gi->gi_color.r = rgb[0]; gi->gi_color.g = rgb[1]; gi->gi_color.b = rgb[2]; compute_colors(gi); }
static void glw_image_ctor(glw_t *w) { glw_image_t *gi = (void *)w; gi->gi_bitmap_flags = GLW_IMAGE_BORDER_LEFT | GLW_IMAGE_BORDER_RIGHT; gi->gi_autofade = 1; gi->gi_alpha_self = 1; gi->gi_color.r = 1.0; gi->gi_color.g = 1.0; gi->gi_color.b = 1.0; gi->gi_size_scale = 1.0; compute_colors(gi); if(w->glw_class == &glw_repeatedimage) gi->gi_mode = GI_MODE_REPEATED_TEXTURE; }
void sldcls_screen( VSS_INFO *vss_info, INFO_IMAGE *inf ) { int xyarray[4] ; compute_colors( vss_info, inf ) ; if ( !vss_info->do_not_cls_scr ) { xyarray[0] = 0 ; xyarray[1] = 0 ; xyarray[2] = Xmax ; xyarray[3] = Ymax ; vsf_color( handle, back_color ) ; vsf_interior( handle, FIS_SOLID ) ; if ( !vss_info->do_not_show_mouse ) v_hide_c(handle) ; vr_recfl(handle, xyarray) ; if ( !vss_info->do_not_show_mouse ) v_show_c(handle, 1) ; } }
static void glw_image_set(glw_t *w, va_list ap) { glw_image_t *gi = (glw_image_t *)w; glw_attribute_t attrib; do { attrib = va_arg(ap, int); switch(attrib) { case GLW_ATTRIB_ANGLE: gi->gi_angle = va_arg(ap, double); break; case GLW_ATTRIB_SATURATION: gi->gi_saturation = va_arg(ap, double); compute_colors(gi); break; case GLW_ATTRIB_PIXMAP: if(gi->gi_pending != NULL) glw_tex_deref(w->glw_root, gi->gi_pending); free(gi->gi_pending_filename); gi->gi_pending_filename = NULL; gi->gi_pending = glw_tex_create_from_pixmap(w->glw_root, va_arg(ap, pixmap_t *)); break; case GLW_ATTRIB_ALPHA_EDGES: gi->gi_alpha_edge = va_arg(ap, int); gi->gi_mode = GI_MODE_ALPHA_EDGES; break; default: GLW_ATTRIB_CHEW(attrib, ap); break; } } while(attrib); if(w->glw_class == &glw_icon) { } }
void vss_doslideshow( VSS_INFO *vss_info ) { GEM_WINDOW *wprog ; int (*OnKeyPressed)(int key) ; INFO_IMAGE inf ; MFDB mfdb ; CMD *cmd ; int fini = 0 ; int current_pal[256*3] ; int n ; int load_ret ; OnKeyPressed = GemApp.OnKeyPressed ; GemApp.OnKeyPressed = OnKeyPressedSldShow ; get_tospalette( current_pal ) ; cmd = vss_info->cmds ; if ( cmd == NULL ) fini = 1 ; if ( vss_info->do_not_show_mouse ) v_hide_c( handle ) ; /* Prend la configuration courante */ vss_info->wait_mini_sec = config.wait_mini_sec ; vss_info->do_not_show_mouse = config.do_not_show_mouse ; vss_info->do_not_cls_scr = config.do_not_cls_scr ; vss_info->back = config.back ; vss_info->display_type = config.display_type ; vss_info->transition = config.transition ; vss_info->cycle = config.cycle ; vss_info->ignore_vss = config.ignore_vss ; vss_info->aff_name = config.aff_name ; vss_info->aff_prog = config.aff_prog ; if ( Truecolor ) { int rvb_blanc[3] = { 1000, 1000, 1000 } ; int rvb_noir[3] = { 0, 0, 0 } ; vs_color(handle, 20, rvb_blanc) ; vs_color(handle, 21, rvb_noir) ; } stop_sldshow = 0 ; num_courant = 0 ; wprog = DisplayStdProg( "", "", "", 0 ) ; GWShowWindow( wprog, 0 ) ; while ( !fini ) { nb_steps = 0 ; switch( cmd->cmd_id ) { case CMD_DISPLAY : load_ret = load_nextimg( cmd->params, &mfdb, &inf, vss_info, wprog ) ; if ( load_ret == 0 ) { compute_colors( vss_info, &inf ) ; if ( ( num_courant > 0 ) && ( wait_for_event( vss_info ) < 0 ) ) fini = 1 ; else { sldcls_screen( vss_info, &inf ) ; display_img( &mfdb, &inf, vss_info, cmd->params ) ; } } if ( load_ret == 0 ) { if ( inf.palette != NULL ) free( inf.palette ) ; if ( mfdb.fd_addr != NULL ) free( mfdb.fd_addr ) ; } nb_steps++ ; break ; default : /* Impossible */ break ; } for (n = 0; n < nb_steps; n++ ) { if ( cmd != NULL ) { cmd = cmd->next_cmd ; num_courant++ ; } if ( (cmd == NULL ) && vss_info->cycle ) { cmd = vss_info->cmds ; num_courant = 0 ; } } if ( stop_sldshow || !cmd ) fini = 1 ; } if ( !cmd ) { PerfInfo.total_load_time = 0 ; wait_for_event( vss_info ) ; } restore_gemscreen( GemApp.Menu ) ; set_tospalette( current_pal, nb_colors ) ; if ( vss_info->do_not_show_mouse ) v_show_c( handle, 1 ) ; GWDestroyWindow( wprog ) ; GemApp.OnKeyPressed = OnKeyPressed ; }