Пример #1
0
void jump(int start_x,int x_end,int start_y,cv::Mat character,cv::Mat back,int width,int height){

	cv::Mat blend;
	cv::Mat img;
	
	char c;
	int walk_end_x = x_end-start_x-329;
	int top_x =(start_x+x_end)/2;
	int y = start_y-50; 
	int x = start_x;
	int up_y=start_y+character.rows;
	std::cout<<"y="<<y<<",start_y"<<start_y<<std::endl;
	std::cout<<"x="<<x<<std::endl;
	img = character;
	x= 0;
	std::cout<<"top_x"<<top_x<<std::endl;	
	while(start_x<=x_end){
		overlay(img, back, blend, cv::Point(start_x+200,start_y));
		cv::Mat anime(blend,cv::Rect(x+start_x,0,width,height));
		//std::cout<<"x="<<start_x<<",y="<<start_y<<std::endl;
		imshow(winname,anime);

		if(start_y >= 255-img.rows){
			start_y=start_y-6;
		}else if(start_x<x_end){
			start_x=start_x+6;
			//std::cout<<"x_2="<<x+start_x<<std::endl;
		}

		c=cv::waitKey(10);
		if(c==27){
			break;
		}
	}
	while(start_x>=x_end){
		overlay(img, back, blend, cv::Point(start_x+200,start_y));
		cv::Mat anime(blend,cv::Rect(x+start_x,0,width,height));
		//std::cout<<"x="<<start_x<<",y="<<start_y<<std::endl;
		imshow(winname,anime);

		if(start_y <= y){
			start_y=start_y+6;
		}
		else if(start_y>=y){
			break;
		}

		c=cv::waitKey(10);
		if(c==27){
			break;
		}
	}
}
Пример #2
0
void Theme::build_transport(char *title,
	unsigned char *png_overlay,
	VFrame **bg_data,
	int third)
{
	if(!png_overlay) return;
	VFrame default_data(png_overlay);
	VFrame *data[3];
	data[0] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[1] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[2] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[0]->clear_frame();
	data[1]->clear_frame();
	data[2]->clear_frame();

	for(int i = 0; i < 3; i++)
	{
		int in_x1;
		int in_x2;
		if(!bg_data[i]) break;

		switch(third)
		{
			case 0:
				in_x1 = 0;
				in_x2 = default_data.get_w();
				break;

			case 1:
				in_x1 = (int)(bg_data[i]->get_w() * 0.33);
				in_x2 = in_x1 + default_data.get_w();
				break;

			case 2:
				in_x1 = bg_data[i]->get_w() - default_data.get_w();
				in_x2 = in_x1 + default_data.get_w();
				break;
		}

		overlay(data[i], 
			bg_data[i],
			in_x1,
			in_x2);
		overlay(data[i], 
			&default_data);
	}

	new_image_set_images(title, 3, data[0], data[1], data[2]);
}
Пример #3
0
void build_gcsa_lcp(const HandleGraph& graph,
                    gcsa::GCSA*& gcsa,
                    gcsa::LCPArray*& lcp,
                    int kmer_size,
                    size_t doubling_steps,
                    size_t size_limit,
                    const string& base_file_name) {
    
    // Add an overlay with the source and sink nodes for GCSA
    SourceSinkOverlay overlay(&graph, kmer_size);
    gcsa::ConstructionParameters params;
    params.setSteps(doubling_steps);
    params.setLimit(size_limit);

    // Generate the kmers and reduce the size limit by their size.
    size_t kmer_bytes = params.getLimitBytes();
    string tmpfile = write_gcsa_kmers_to_tmpfile(overlay, kmer_size,
                                                 kmer_bytes,
                                                 overlay.get_id(overlay.get_source_handle()),
                                                 overlay.get_id(overlay.get_sink_handle()),
                                                 base_file_name);
    params.reduceLimit(kmer_bytes);

    // set up the input graph using the kmers
    gcsa::InputGraph input_graph({ tmpfile }, true);
    // run the GCSA construction
    gcsa = new gcsa::GCSA(input_graph, params);
    // and the LCP array construction
    lcp = new gcsa::LCPArray(input_graph, params);
    // delete the temporary debruijn graph file
    temp_file::remove(tmpfile);
    // results returned by reference
}
Пример #4
0
START_NS

ModelViewReadOnly::ModelViewReadOnly(QWidget * parent):
	TreeView(parent)
{
	setHeaderHidden(true);
	//header()->setResizeMode(QHeaderView::Stretch);
	setRootIsDecorated(false);
	setIndentation(0);
	setExpandsOnDoubleClick(true);
	setItemDelegateForColumn(0, new ModelTreeDelegate());
	setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
	setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);

	setSelectionMode( SingleSelection );
	setSelectionBehavior(SelectRows);
	// we disable the provided dnd features,
	// as we use a proprietary solution
	setDragDropMode(QAbstractItemView::DragDrop);
	setDragEnabled(true);
	setAcceptDrops(false);


	overlay()->setText(tr("Please load a model"));

	connect(this, SIGNAL(clicked(QModelIndex)), this, SLOT(__clicked(QModelIndex)));
}
Пример #5
0
balls()
{

  overlay(treescrn, treescrn2);

  mvwaddch(treescrn2, 3, 9, (chtype)'@');
  mvwaddch(treescrn2, 3, 15, (chtype)'@');
  mvwaddch(treescrn2, 4, 8, (chtype)'@');
  mvwaddch(treescrn2, 4, 16, (chtype)'@');
  mvwaddch(treescrn2, 5, 7, (chtype)'@');
  mvwaddch(treescrn2, 5, 17, (chtype)'@');
  mvwaddch(treescrn2, 7, 6, (chtype)'@');
  mvwaddch(treescrn2, 7, 18, (chtype)'@');
  mvwaddch(treescrn2, 8, 5, (chtype)'@');
  mvwaddch(treescrn2, 8, 19, (chtype)'@');
  mvwaddch(treescrn2, 10, 4, (chtype)'@');
  mvwaddch(treescrn2, 10, 20, (chtype)'@');
  mvwaddch(treescrn2, 11, 2, (chtype)'@');
  mvwaddch(treescrn2, 11, 22, (chtype)'@');
  mvwaddch(treescrn2, 12, 1, (chtype)'@');
  mvwaddch(treescrn2, 12, 23, (chtype)'@');

  wrefresh(treescrn2);
  wrefresh(w_del_msg);
  return( 0 );
}
Пример #6
0
texture_2d fdog_filter(const texture_2d& src, 
                       const texture_2d& tfm,
                       int n,
                       float sigma_e,
                       float sigma_r,
                       float tau,
                       float sigma_m,
                       float phi) 
{
    texture_2d tmp(src.clone_format());
    texture_2d dst(src.clone_format());

    for (int i = 0; i < n; ++i) {
        texture_2d img = (i == 0)? src : overlay(dst, src);
        glsl_program fdog0("fdog0_fs.glsl");
        fdog0.use();
        fdog0.bind_sampler("img", img, GL_LINEAR);
        fdog0.bind_sampler("tfm", tfm, GL_NEAREST);
        fdog0.set_uniform_1f("sigma_e", sigma_e);
        fdog0.set_uniform_1f("sigma_r", sigma_r);
        fdog0.set_uniform_1f("tau", tau);
        fdog0.set_uniform_2f("img_size", (float)src.get_width(), (float)src.get_height());
        fdog0.draw(&tmp);

        glsl_program fdog1("fdog1_fs.glsl");
        fdog1.use();
        fdog1.bind_sampler("img", tmp, GL_LINEAR);
        fdog1.bind_sampler("tfm", tfm, GL_NEAREST);
        fdog1.set_uniform_1f("sigma_m", sigma_m);
        fdog1.set_uniform_1f("phi", phi);
        fdog1.set_uniform_2f("img_size", (float)src.get_width(), (float)src.get_height());
        fdog0.draw(&dst);
    }
    return dst;
}
Пример #7
0
void Theme::build_toggle(VFrame** &data,
	unsigned char *png_overlay,
	VFrame *up_vframe,
	VFrame *hi_vframe,
	VFrame *checked_vframe,
	VFrame *dn_vframe,
	VFrame *checkedhi_vframe)
{
	if(!png_overlay || 
		!up_vframe || 
		!hi_vframe || 
		!checked_vframe || 
		!dn_vframe || 
		!checkedhi_vframe) return;
	VFrame default_data(png_overlay);
	data = new VFrame*[5];
	data[0] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[1] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[2] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[3] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[4] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[0]->copy_from(up_vframe);
	data[1]->copy_from(hi_vframe);
	data[2]->copy_from(checked_vframe);
	data[3]->copy_from(dn_vframe);
	data[4]->copy_from(checkedhi_vframe);
	for(int i = 0; i < 5; i++)
		overlay(data[i], 
			&default_data);
}
Пример #8
0
void walk(int start_x,int end_x,int y,cv::Mat character1,cv::Mat character2,cv::Mat back,int width,int height){
	int x=0;
	char c;
	cv::Mat blend;
	cv::Mat img;

	while(start_x+x<=end_x){
		if(x%3==0){
			if(!img.data) img = character1;
			else if(img.data==character1.data) img = character2;
			else if(img.data==character2.data) img = character1;
		}	

//		std::cout<<"x="<<x+start_x<<",y="<<y<<std::endl;
//		std::cout<<"width="<<width<<",height="<<height<<std::endl;
		overlay(img, back, blend, cv::Point(200+x+start_x,225)); //合成
		cv::Mat anime(blend,cv::Rect(start_x+x,0,width,height));
		imshow(winname,anime);
	
		x=x+4;
		c=cv::waitKey(10);
		if(c==27){
			break;
		}
	}
}
Пример #9
0
START_NS

ProposalTreeWidget::ProposalTreeWidget(QWidget * p)
	: QTreeWidget(p),
	mOverlay(new Overlay(this)),
	  mAddRemoveEnabled(false),
	  mSolutionSelectionMultiple(true)
	//mSolutionDelegate(new SolutionCheckDelegate(this) )
{
	setDragEnabled(true);
	setDragDropMode(InternalMove);
	viewport()->setAcceptDrops(true);
	setDropIndicatorShown(true);
	setSelectionMode(SingleSelection);
	setEditTriggers(AllEditTriggers);
	// maintain order accordingly to ColumnId, ColumnProposalText, etc.
	setHeaderLabels( QStringList() << tr("Id") << tr("Text") << tr("Solution") );
	setRootIsDecorated(false);
	setWordWrap(true);
	overlay()->setText( tr("Right click to add new proposal") );


	connect(this, SIGNAL(itemSelectionChanged()),this, SLOT(onSelectionChange()));
	connect(this, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(onItemChange(QTreeWidgetItem*,int)));
	connect(this,SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(onClicked(QTreeWidgetItem*,int)));

}
Пример #10
0
void item_palette::setup(const config& cfg)
{

	for (const config& group : cfg.child_range("item_group")) {

		groups_.push_back(item_group(group));

		for (const config& item : group.child_range("item")) {

			item_map_.insert(std::pair<std::string, overlay>(item["id"], overlay(item)));
			group_map_[group["id"]].push_back(item["id"]);
			if (!group["core"].to_bool(false))
				non_core_items_.insert(item["id"]);
		}
		nmax_items_ = std::max(nmax_items_, group_map_[group["id"]].size());
	}

	select_fg_item("anvil");
	select_bg_item("altar");

	// Set the default group
	set_group("items");

	if(active_group().empty()) {
		ERR_ED << "No items found." << std::endl;
	}
}
Пример #11
0
gui::OverlayPtr_T UIFactory::createOverlay(const gui::Coords& position, const gui::Coords& size)
{
	gui::OverlayPtr_T overlay(new gui::Overlay());
	overlay->setPosition(position);
	overlay->setSize(size);

	return overlay;
}
Пример #12
0
void ProposalTreeWidget::onActionRemove()
{

	Q_ASSERT_X(mClickedIndex.isValid(), "ProposalTreeWidget::onActionRemove","Invalid model index");

	model()->removeRow( mClickedIndex.row() );
	overlay()->setVisible( model()->rowCount()==0 );
	renumber();
}
Пример #13
0
void Theme::build_patches(VFrame** &data,
	unsigned char *png_overlay,
	VFrame **bg_data,
	int region)
{
	if(!png_overlay || !bg_data) return;
	VFrame default_data(png_overlay);
	data = new VFrame*[5];
	data[0] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[1] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[2] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[3] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);
	data[4] = new VFrame(0, default_data.get_w(), default_data.get_h(), BC_RGBA8888);

	for(int i = 0; i < 5; i++)
	{
		int in_x1;
		int in_x2;

		switch(region)
		{
			case 0:
				in_x1 = 0;
				in_x2 = default_data.get_w();
				break;

			case 1:
				in_x1 = (int)(bg_data[i]->get_w() * 0.33);
				in_x2 = in_x1 + default_data.get_w();
				break;

			case 2:
				in_x1 = bg_data[i]->get_w() - default_data.get_w();
				in_x2 = in_x1 + default_data.get_w();
				break;
		}

		overlay(data[i], 
			bg_data[i]);
		overlay(data[i], 
			&default_data);
	}
}
Пример #14
0
bool IMGUI::findCollision(Box &r, Box &out){
	for(auto &it : m_collRects){

		if(overlay(it, r)){
			out = it;
			return true;
		}
	}
	return false;
}
Пример #15
0
void QBlittablePixmapData::mergeOverlay()
{
    if (m_unmergedCopy || !showRasterOverlay)
        return;
    m_unmergedCopy = new QImage(buffer()->copy());
    QPainter p(buffer());
    p.setCompositionMode(QPainter::CompositionMode_SourceOver);
    p.drawImage(0,0,*overlay());
    p.end();
}
Пример #16
0
// trivial implementation to highlight how to use
// wildcard search combined with exchange.
bool prehash_search_and_replace(const char *file) {
    if (FILE *f = fopen(file, "rb")) {
        fseek(f, 0, SEEK_END);
        size_t size = ftell(f);
        fseek(f, 0, SEEK_SET);
        size_t buffer_size = size + PHASH_MAX_MARGIN;
        if (void *buffer = malloc(buffer_size)) {
            fread(buffer, size, 1, f);
            fclose(f);
            
            // create an overlay string to start scanning
            strovl overlay((char*)buffer, (strl_t)buffer_size, (strl_t)size);
            
            // calculate hash of entire file
            unsigned int original_hash = overlay.fnv1a();
            
            // find all instances of PHASH token
            // extra quotes inserted to allow running tool over this file
            strref pattern("P""HASH(*{ \t}\"*@\"*{!\n\r/})");
            strref match;
            strown<PHASH_MAX_LENGTH> replace;
            while ((match = overlay.wildcard_after(pattern, match))) {
                // get the keyword to hash
                strref keyword = match.between('"', '"');
                
                // generate a replacement to the original string
                replace.sprintf("PHASH(\"" STRREF_FMT "\", 0x%08x)", STRREF_ARG(keyword), keyword.fnv1a());
                
                // exchange the match with the evaluated string
                overlay.exchange(match, replace.get_strref());
                
                // if about to run out of space, early out.
                if (overlay.len()>(overlay.cap()-PHASH_EXTEND_CHARACTERS))
                    break;
            }
            
            // check if there was a change to the data
            if (size != overlay.len() || original_hash != overlay.fnv1a()) {
                // write back if possible
                if ((f = fopen(file, "wb"))) {
                    fwrite(overlay.get(), overlay.len(), 1, f);
                    fclose(f);
				} else {
					free(buffer);
					return false;
				}
            }
			free(buffer);
            return true;
        } else
            fclose(f);
    }
    return false;
}
Пример #17
0
OverlayID OverlayManager::new_overlay_from_file(const unicode& rml_file) {
    auto new_ui = new_overlay();
    window_->loader_for(rml_file.encode())->into(std::shared_ptr<Overlay>(overlay(new_ui)));
    try {

    } catch(...) {
        delete_overlay(new_ui);
        throw;
    }

    return new_ui;
}
Пример #18
0
plotsDialog::plotsDialog(QString startPlot, bool fromTable, QWidget *parent) :
    QDialog(parent),
    ui(new Ui::plotsDialog)
{
    ui->setupUi(this);

    tabs = ui->tabWidget;
//    setContextMenuPolicy(Qt::NoContextMenu);
    setWindowFlags(Qt::Window);
    setWindowModality(Qt::WindowModal);
    setWindowTitle("Plots");

    connect(tabs,SIGNAL(currentChanged(int)),SLOT(resetZoomer(int)));

    contextMenu = new QMenu(this);

    QAction *actionZoom = new QAction("Zoom",this);
    actionZoom->setCheckable(true);
    connect(actionZoom,SIGNAL(toggled(bool)),this,SLOT(enableZoomMode(bool)));
    contextMenu->addAction(actionZoom);

    QAction *actionFormat = new QAction("Format Plot",this);
    connect(actionFormat,SIGNAL(triggered()),this,SLOT(edit()));
    contextMenu->addAction(actionFormat);

    ui->overlayButton->setText("Overlay");
    connect(ui->overlayButton,SIGNAL(clicked()),SLOT(overlay()));

    ui->deleteButton->setText("Delete");
    connect(ui->deleteButton,SIGNAL(clicked()),SLOT(deleteCurrentPlot()));

    statusBar = new QStatusBar;
    ui->statusBarLayout->addWidget(statusBar);


    QMenu* exportMenu = new QMenu;
    exportMenu->addAction("Print");
    exportMenu->addAction("pdf File");
    exportButton = ui->exportMenuButton;
    exportButton->setPopupMode(QToolButton::MenuButtonPopup);
    exportButton->setMenu(exportMenu);

    startPName = startPlot;
    isFromTable = fromTable;

    ui->zoomButton->setCheckable(true);

    setupPlots(true);

    theMainwindow->setTPMenu();

    actionZoom->setChecked(false);
}
Пример #19
0
void QBlittablePixmapData::markRasterOverlayImpl(const QRectF &rect)
{
    if (!showRasterOverlay)
        return;
    QRectF transformationRect = clipAndTransformRect(rect);
    if(!transformationRect.isEmpty()) {
        QPainter p(overlay());
        p.setBrush(m_overlayColor);
        p.setCompositionMode(QPainter::CompositionMode_Source);
        p.fillRect(transformationRect,QBrush(m_overlayColor));
    }
}
Пример #20
0
// Create "overlay" lookup table (multiply and screen combined)
unsigned char * palette_table_overlay(unsigned char *pal){
	int fg, bg;
	int red, green, blue;
	unsigned char * lut;

	if(pal==NULL) return NULL;

	lut = (unsigned char*)malloc(256*256);
	if(lut==NULL) return NULL;

	for(fg=0; fg<256; fg++){
		for(bg=fg; bg<256; bg++){
			red = overlay(pal[bg*3], pal[fg*3]);
			green = overlay(pal[bg*3+1], pal[fg*3+1]);
			blue = overlay(pal[bg*3+2], pal[fg*3+2]);

			lut[(fg<<8)+bg] = palette_find(pal, red, green, blue);
			lut[(bg<<8)+fg] = lut[(fg<<8)+bg];
		}
	}
	return lut;
}
Пример #21
0
void
IconShack::GenerateIpodScrobblingIcons( MooseEnums::UserIconColour eColour )
{
    for( int i = 0; i < 4; i++ )
    {
        QImage icon = maGoodIcons[ eColour ].toImage();
        QPainter iconPainter( &icon );
        iconPainter.setCompositionMode( QPainter::CompositionMode_SourceOver );
        QPixmap overlay( MooseUtils::dataPath( QString( "icons/ipod_overlay_%1.png" ).arg( i ) ) );
        iconPainter.drawPixmap( 0, 0, overlay );
        mIpodScrobblingIcons[ eColour ].push_back( QPixmap::fromImage( icon ) );
    }
}
Пример #22
0
static TfToken 
_GetProxyOverlayMode()
{
    TfToken overlay(TfGetEnvSetting(USDVMP_PROXY_OVERLAY));
    if (overlay != _tokens->ghosted
        and overlay != _tokens->none
        and overlay != _tokens->wireframe)
    {
        TF_WARN("Invalid proxy USDVMP_PROXY_OVERLAY mode: %s\n", overlay.GetText());
        return _tokens->ghosted;
    }
    return overlay;
}
Пример #23
0
 QSharedPointer<Node> Node::CreateClientServer(const PrivateIdentity &ident,
     const Group &group, const QList<Address> &local,
     const QList<Address> &remote, const QSharedPointer<ISink> &sink,
     SessionFactory::SessionType session, AuthFactory::AuthType auth,
     const QSharedPointer<KeyShare> &keys)
 {
   QSharedPointer<GroupHolder> gh(new GroupHolder(group));
   QSharedPointer<ClientServer::Overlay> overlay(new ClientServer::Overlay(
         ident.GetLocalId(), local, remote, QList<Connections::Id>(), ident.GetSuperPeer()));
   QObject::connect(gh.data(), SIGNAL(GroupUpdated()),
       overlay.data(), SLOT(GroupUpdated()));
   QSharedPointer<Network> network(new CSNetwork(overlay));
   return QSharedPointer<Node>(new Node(ident, gh, overlay,
         network, sink, session, auth, keys));
 }
Пример #24
0
 QSharedPointer<Node> Node::CreateBasicGossip(const PrivateIdentity &ident,
     const Group &group, const QList<Address> &local,
     const QList<Address> &remote, const QSharedPointer<ISink> &sink,
     SessionFactory::SessionType session, AuthFactory::AuthType auth,
     const QSharedPointer<KeyShare> &keys)
 {
   QSharedPointer<GroupHolder> gh(new GroupHolder(group));
   QSharedPointer<BaseOverlay> overlay(new BasicGossip(ident.GetLocalId(),
         local, remote));
   QSharedPointer<Network> network(new DefaultNetwork(
         overlay->GetConnectionManager(),
         overlay->GetRpcHandler()));
   return QSharedPointer<Node>(new Node(ident, gh, overlay,
         network, sink, session, auth, keys));
 }
Пример #25
0
void ProposalTreeWidget::addProposalItem(const Proposal &proposal, bool solution)
{

	QTreeWidgetItem * item = new QTreeWidgetItem();
	item->setFlags(  Qt::ItemIsEnabled | Qt::ItemIsSelectable  );
	addTopLevelItem(item);

	item->setText(ColumnProposalText, proposal.text);
	//item->setText(ColumnId, proposal.id); will be reset by renumber()

	setItemSolution(item, solution);

	renumber(); // resets id
	resizeColumnToContents(ColumnId);
	overlay()->hide();
}
Пример #26
0
int main( int argc, char const **argv ) {
        parseArgs(argc,argv);

        printf( "%ux%u\n", outw, outh );

        fb2_overlay_t overlay(x,y,outw,outh,alpha,format); // V4L2_PIX_FMT_SGRBG8 ; // 
        if ( overlay.isOpen() ) {
                printf( "opened successfully: mem=%p/%lu\n", overlay.getMem(), overlay.getMemSize() );
                unsigned char val = 0 ;
                while(1){
                    memset(overlay.getMem(), val++, overlay.getMemSize());
                }
        }
        else
                ERRMSG( "Error opening v4l output\n" );
        return 0 ;
}
Пример #27
0
static int draw_text(struct panel *panel, struct vidframe *frame)
{
	char buf[256];
	int width = panel->size_text.w;
	int height = panel->size_text.h;
	struct vidframe f;
	struct vidframe *f2 = NULL;
	cairo_t *cr = panel->cr;
	double tx, ty;
	int err;

	tx = 1;
	ty = height - 3;

	/* draw background */
	cairo_rectangle (cr, 0, 0, width, height);
	cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
	cairo_fill (cr);

	/* Draw text */
	if (re_snprintf(buf, sizeof(buf), "%s %2.2f fps",
			panel->label, panel->fps) < 0)
		return ENOMEM;

	cairo_move_to (cr, tx, ty);
	cairo_text_path (cr, buf);
	cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
	cairo_fill_preserve (cr);
	cairo_set_line_width (cr, 0.6);
	cairo_stroke (cr);

	vidframe_init_buf(&f, VID_FMT_ARGB, &panel->size_text,
			  cairo_image_surface_get_data(panel->surface));

	err = vidframe_alloc(&f2, frame->fmt, &panel->size_text);
	if (err)
		goto out;

	vidconv(f2, &f, 0);

	overlay(frame, panel->yoffs, f2);

 out:
	mem_deref(f2);
	return err;
}
Пример #28
0
strng5()
{
  mvwaddch(treescrn2, 11, 19, (chtype)'\'');
  mvwaddch(treescrn2, 11, 18, (chtype)':');
  mvwaddch(treescrn2, 11, 17, (chtype)'.');
  mvwaddch(treescrn2, 11, 16, (chtype)',');
  mvwaddch(treescrn2, 12, 15, (chtype)'\'');
  mvwaddch(treescrn2, 12, 14, (chtype)':');
  mvwaddch(treescrn2, 12, 13, (chtype)'.');
  mvwaddch(treescrn2, 12, 12, (chtype)',');

  /* save a fully lit tree */
  overlay(treescrn2, treescrn);

  wrefresh(treescrn2);
  wrefresh(w_del_msg);
  return( 0 );
}
Пример #29
0
/*!
 * Иконка канала.
 */
QIcon ChatIcons::icon(ClientChannel channel, int options)
{
  QString file = LS(":/images/channel.png");

  if (channel->type() == ChatId::UserId || channel->id().isEmpty()) {
    file = LS(":/images/user");
    int gender = channel->gender().value();
    int color  = channel->gender().color();

    if (gender == Gender::Unknown) {
      file += LS("-unknown");
    }
    else if (gender == Gender::Ghost) {
      file += LS("-ghost");
    }
    else if (gender == Gender::Bot) {
      file += LS("-bot");
    }
    else if (color != Gender::Default) {
      file += LS("-") + Gender::colorToString(color);
    }

    if (gender == Gender::Female)
      file += LS("-female");

    file += LS(".png");
  }
  else if (channel->type() == ChatId::ChannelId && channel->gender().color() == Gender::Green) {
    file = LS(":/images/secure.png");
  }

  const Status& status = channel->status();
  if (options & OfflineStatus && status.value() == Status::Offline && !(options & Statuses))
    options |= Statuses;

  if (options & Statuses) {
    if (options & OfflineStatus && (status.value() == Status::Offline || !channel->isSynced()))
      return QIcon(QIcon(file).pixmap(16, 16, QIcon::Disabled));

    return ChatIcons::icon(file, overlay(status.value()));
  }

  return QIcon(file);
}
Пример #30
0
int main ()
{
  // Construct the first arrangement, containing a square-shaped face.
  Arrangement_2          arr1;

  Segment_2      s1 (Point_2(2, 2), Point_2(6, 2));
  Segment_2      s2 (Point_2(6, 2), Point_2(6, 6));
  Segment_2      s3 (Point_2(6, 6), Point_2(2, 6));
  Segment_2      s4 (Point_2(2, 6), Point_2(2, 2));

  insert_non_intersecting_curve (arr1, s1);
  insert_non_intersecting_curve (arr1, s2);
  insert_non_intersecting_curve (arr1, s3);
  insert_non_intersecting_curve (arr1, s4);

  // Construct the second arrangement, containing a rhombus-shaped face.
  Arrangement_2          arr2;

  Segment_2      t1 (Point_2(4, 1), Point_2(7, 4));
  Segment_2      t2 (Point_2(7, 4), Point_2(4, 7));
  Segment_2      t3 (Point_2(4, 7), Point_2(1, 4));
  Segment_2      t4 (Point_2(1, 4), Point_2(4, 1));

  insert_non_intersecting_curve (arr2, t1);
  insert_non_intersecting_curve (arr2, t2);
  insert_non_intersecting_curve (arr2, t3);
  insert_non_intersecting_curve (arr2, t4);

  // Compute the overlay of the two arrangements.
  Arrangement_2          overlay_arr;
  Overlay_traits         overlay_traits;

  overlay (arr1, arr2, overlay_arr, overlay_traits);

  // Print the size of the overlaid arrangement.
  std::cout << "The overlaid arrangement size:" << std::endl
            << "   V = " << overlay_arr.number_of_vertices()
            << ",  E = " << overlay_arr.number_of_edges() 
            << ",  F = " << overlay_arr.number_of_faces() << std::endl;

  return 0;
}