void imWindow::drawit() { if (!shown()) return; struct image_cb_data cbd; make_current(); if (pixelType == MONOCHROME) { if (gamma > 0.0 && gamma < 1.0) { cbd.pdata = pixelData; cbd.ndisp = ndisp; cbd.linesize = linesize; cbd.skip = skipw; cbd.gtab = gamtab; fl_draw_image_mono(gamma_image_cb_fn, (void *)&cbd, xoff, yoff, width, height, 1); } else fl_draw_image_mono(pixelData, xoff, yoff, width, height, skipw, linesize); } else if (pixelType == RGB24) { if (gamma > 0.0 && gamma < 1.0) { cbd.pdata = pixelData; cbd.ndisp = ndisp; cbd.linesize = linesize*3; cbd.skip = skipw*3; cbd.gtab = gamtab; fl_draw_image(gamma_color_image_cb_fn, (void *)&cbd, xoff, yoff, width, height, 3); } else fl_draw_image(pixelData, xoff, yoff, width, height, skipw*3, linesize*3); } else if (pixelType == DISPARITY) { cbd.pdata = pixelData; cbd.ndisp = ndisp; cbd.linesize = linesize; cbd.skip = skipw; fl_draw_image(disp_image_cb_fn, (void *)&cbd, xoff, yoff, width, height, 3); } }
void ImageView::RasterDraw() { m_mutex.Lock(); if (m_curByteImage.is_contiguous() && m_curByteImage.size() > 0) { fl_draw_image_mono(m_curByteImage.top_left_ptr(), 0, 0, m_curByteImage.ni(), m_curByteImage.nj()); } else if (m_curRGBImage.is_contiguous()) { fl_draw_image((const unsigned char*) m_curRGBImage.top_left_ptr(), 0, 0, m_curRGBImage.ni(), m_curRGBImage.nj()); } m_mutex.Release(); }
void image_window::draw() { if (mono) fl_draw_image_mono(ibuffer+1,0,0,width,height,depth,linedelta); else fl_draw_image(ibuffer,0,0,width,height,depth,linedelta); }
FL_EXPORT_C(void,flc_draw_image_mono_cb)(Fl_Draw_Image_Cb cb,void* data,int X,int Y,int W,int H){ fl_draw_image_mono(cb,data,X,Y,W,H); }
FL_EXPORT_C(void,flc_draw_image_mono_cb_with_d)(Fl_Draw_Image_Cb cb,void* data,int X,int Y,int W,int H,int D){ fl_draw_image_mono(cb,data,X,Y,W,H,D); }
FL_EXPORT_C(void,flc_draw_image_mono_buf)(const uchar* buf,int X,int Y,int W,int H){ fl_draw_image_mono(buf,X,Y,W,H,1,0); }
FL_EXPORT_C(void,flc_draw_image_mono_buf_with_l)(const uchar* buf,int X,int Y,int W,int H,int L){ fl_draw_image_mono(buf,X,Y,W,H,1,L); }