コード例 #1
0
ファイル: scopewindow.C プロジェクト: Cuchulain/cinelerra
int ScopeGUI::resize_event(int w, int h)
{
	clear_box(0, 0, w, h);
	this->w = w;
	this->h = h;
	calculate_sizes(w, h);
	
	if(waveform)
	{
		waveform->reposition_window(wave_x, wave_y, wave_w, wave_h);
		waveform->clear_box(0, 0, wave_w, wave_h);
	}
	
	if(histogram)
	{
		histogram->reposition_window(hist_x, hist_y, hist_w, hist_h);
		histogram->clear_box(0, 0, hist_w, hist_h);
	}
	
	if(vectorscope)
	{
		vectorscope->reposition_window(vector_x, vector_y, vector_w, vector_h);
		vectorscope->clear_box(0, 0, vector_w, vector_h);
	}

	allocate_bitmaps();


	clear_points(0);
	draw_overlays(1, 1, 1);

	return 1;
}
コード例 #2
0
void viewport_draw(viewport_t *viewport)
{
//	usleep(14000);

	clear_viewport();

//printf("viewport_draw 2\n");
	draw_thing(viewport);

//printf("viewport_draw 3\n");
	draw_overlays();
//printf("viewport_draw 4\n");

	texture_iterate(viewport);
	viewport->status.frames++;
	update_status(&viewport->status);
	if(!viewport->button_down) viewport->xrot += 0.1;
};
コード例 #3
0
ファイル: scopewindow.C プロジェクト: Cuchulain/cinelerra
void ScopeGUI::process(VFrame *output_frame)
{
	lock_window("ScopeGUI::process");
	this->output_frame = output_frame;
	frame_w = output_frame->get_w();
	//float radius = MIN(vector_w / 2, vector_h / 2);

	bzero(waveform_bitmap->get_data(), waveform_bitmap->get_data_size());
	bzero(vector_bitmap->get_data(), vector_bitmap->get_data_size());


	engine->process();

	if(histogram)
	{
		histogram->draw(0, 0);
	}

	if(waveform)
	{
		waveform->draw_bitmap(waveform_bitmap, 
			1,
			0,
			0);
	}

	if(vectorscope)
	{
		vectorscope->draw_bitmap(vector_bitmap, 
			1,
			0,
			0);
	}

	draw_overlays(1, 0, 1);
	unlock_window();
}
コード例 #4
0
void VWindowCanvas::draw_refresh(int flush)
{
	EDL *edl = gui->vwindow->get_edl();

	if(!get_canvas()->get_video_on()) get_canvas()->clear_box(0, 0, get_canvas()->get_w(), get_canvas()->get_h());
	if(!get_canvas()->get_video_on() && refresh_frame && edl)
	{
		float in_x1, in_y1, in_x2, in_y2;
		float out_x1, out_y1, out_x2, out_y2;
		get_transfers(edl, 
			in_x1, 
			in_y1, 
			in_x2, 
			in_y2, 
			out_x1, 
			out_y1, 
			out_x2, 
			out_y2);
		get_canvas()->draw_vframe(refresh_frame,
				(int)out_x1, 
				(int)out_y1, 
				(int)(out_x2 - out_x1), 
				(int)(out_y2 - out_y1),
				(int)in_x1, 
				(int)in_y1, 
				(int)(in_x2 - in_x1), 
				(int)(in_y2 - in_y1),
				0);
	}

	if(!get_canvas()->get_video_on())
	{
		draw_overlays();
		get_canvas()->flash(flush);
	}
}
コード例 #5
0
ファイル: scopewindow.C プロジェクト: Cuchulain/cinelerra
void ScopeGUI::create_panels()
{
	calculate_sizes(get_w(), get_h());


	if((use_wave || use_wave_parade))
	{
		if(!waveform)
		{
			add_subwindow(waveform = new ScopeWaveform(this,
				wave_x, 
				wave_y, 
				wave_w, 
				wave_h));
			waveform->create_objects();
		}
		else
		{
			waveform->reposition_window(wave_x, 
				wave_y, 
				wave_w, 
				wave_h);
			waveform->clear_box(0, 0, wave_w, wave_h);
		}
	}
	else
	if(!(use_wave || use_wave_parade) && waveform)
	{
		delete waveform;
		waveform = 0;
	}
	
	if(use_vector)
	{
		if(!vectorscope)
		{
			add_subwindow(vectorscope = new ScopeVectorscope(this,
				vector_x, 
				vector_y, 
				vector_w, 
				vector_h));
			vectorscope->create_objects();
		}
		else
		{
			vectorscope->reposition_window(vector_x, 
				vector_y, 
				vector_w, 
				vector_h);
			vectorscope->clear_box(0, 0, vector_w, vector_h);
		}
	}
	else
	if(!use_vector && vectorscope)
	{
		delete vectorscope;
		vectorscope = 0;
	}
	
	if((use_hist || use_hist_parade))
	{
		if(!histogram)
		{
// printf("ScopeGUI::create_panels %d %d %d %d %d\n", __LINE__, hist_x, 
// hist_y, 
// hist_w, 
// hist_h);
			add_subwindow(histogram = new ScopeHistogram(this,
				hist_x, 
				hist_y, 
				hist_w, 
				hist_h));
			histogram->create_objects();
		}
		else
		{
			histogram->reposition_window(hist_x, 
				hist_y, 
				hist_w, 
				hist_h);
			histogram->clear_box(0, 0, hist_w, hist_h);
		}
	}
	else
	if(!(use_hist || use_hist_parade))
	{
		delete histogram;
		histogram = 0;
	}
	
	

	allocate_bitmaps();
	clear_points(0);
	draw_overlays(1, 1, 0);
}