static void create_xil_window( void){ is_double_buffered = 1; if((window_image = xil_create_double_buffered_window( xil_state, x_disp, x_win)) == NULL){ is_double_buffered = 0; window_image = xil_create_from_window( xil_state, x_disp, x_win); } }
int XILWindowAssistor::command(int argc, const char*const* argv) { u_int nbands; XilDataType datatype; // fprintf(stderr,"XILWindowAssistor::"__FUNCTION__"\n"); if (argc == 3 && strcmp(argv[1], "window") == 0) { sentfirstheader=0; imageYCC = NULL; ximage_ = NULL; window_ = VideoWindow::lookup(argv[2]); Tk_MakeWindowExist(window_->tkwin()); // gc_ = Tk_GetGC(window_->tkwin(), 0, 0); gc_ = XCreateGC(Tk_Display(window_->tkwin()), Tk_WindowId(window_->tkwin()), 0, NULL); Tk_CreateEventHandler(window_->tkwin(), ExposureMask, handle_exposure_callback, (ClientData)this); //fprintf(stderr,"xil_create_from_window(%p,%p,%08lx)\n", xil_,Tk_Display(window_->tkwin()),Tk_WindowId(window_->tkwin())); displayimage_=xil_create_from_window(xil_,Tk_Display(window_->tkwin()),Tk_WindowId(window_->tkwin())); //fprintf(stderr,"HW_DECOMPRESS_CIS\n"); // disable (osprey) hardware decompression for Windowed Display. // the software decoder is fast enough xil_set_attribute(displayimage_,"HW_DECOMPRESS_CIS",(void *)-1); /* int arg; xil_get_device_attribute(displayimage_,"VIDEO_OUT",(void**)&arg); //fprintf(stderr,"VIDEO_OUT-> %d\n",arg); xil_set_device_attribute(displayimage_,"VIDEO_OUT",(void*)FALSE); */ // xil_set_device_attribute(displayimage_,"H261_PIP",(void*)TRUE); xil_get_info(displayimage_, &targetw_, &targeth_, &nbands, &datatype); //fprintf(stderr,"w=%d,h=%d,bands=%d,dt=%d\n", targetw_,targeth_,nbands,datatype); switch (Tk_Depth(window_->tkwin())) { case 8: visual = PSEUDOCOLOR; break; case 24: visual = TRUECOLOR; break; default: fprintf(stderr,"XILWindowAssistor:command(window), unknown depth %d!\n",Tk_Depth(window_->tkwin())); visual = PSEUDOCOLOR; break; } x_cmap = 0; return (TCL_OK); } return (Renderer::command(argc, argv)); }