[Mono-list] Ok this is probably an odd question and very general

tmasey epiphanygs at gmail.com
Fri Jun 20 01:19:53 EDT 2008


ok So hears the deal now. I have another method of getting the frames to jpg.
So now I am working with the simple fact every 10 seconds I want to show a
new frame for now. but my problem is I have a window with a Gtk.Image widget
and I have loaded up a dynamic pixbuf with that image and for now I have a
timer object in the future no but for testing purposes I am using a timer. I
have on each timer_Elapsed even i create a new Pixbuff from a new image. and
clear or not clear the widget. then I set the Pixbuf for the image widget
and after about 2 or three ticks of the timer I get no images showing up.
Now this is odd. I also notice that my memory is going crazy. so i added a
GC.Collect. in there for good measure and that allows me a few more ticks
but then back to the same issue nothing after the 5 frame. I will attach my
code. any advice would be helpfull I am going nuts on this. Something I
normaly would be able to do in ms world not working as I would expect it
here. But I am sure it is because I dont understand something about the gtk
and gdk libs. when looking at the code you will notice commented code paths
I have tried. I am thinking it might be timeout issues. 

thanks,
Terry

//=========================
// MainWindow.cs created with MonoDevelop
// User: tmassey at 10:28 PM 6/18/2008
//Copyright 2008 Epiphany Studios
//=========================
//
using System;
using System.Timers;
using Gtk;

public partial class MainWindow: Gtk.Window
{	
	private System.Timers.Timer tmr = new System.Timers.Timer(10000);
	private Gtk.Image image1;	
	private Gdk.Pixbuf img;
	private int i=1;
	public MainWindow (): base (Gtk.WindowType.Toplevel)
	{
		Build ();
		image1 = new Gtk.Image();
		tmr.Elapsed += new ElapsedEventHandler(tmr_elapsed);
		Gdk.Pixbuf x= new Gdk.Pixbuf("/imgpath/1");
		x = x.ScaleSimple(800 ,600 ,Gdk.InterpType.Bilinear);
		image1.Pixbuf = x;
		hbox1.PackStart(image1,true,true,0);
		this.ShowAll();
		tmr.Start();
	}
	public void tmr_elapsed(object sender, ElapsedEventArgs a)
	{	
		i+=1;		
		img = new Gdk.Pixbuf("/imgpath/"+i.ToString() ); //images are sequenced no
ext for now
		img = img.ScaleSimple(800 ,600 ,Gdk.InterpType.Bilinear);
		image1.Clear();		
		image1.Pixbuf  = img ;
		this.ShowAll();
		GC.Collect();
		Console.WriteLine("/imgpath/"+i.ToString());		
	}
	
	protected void OnDeleteEvent (object sender, DeleteEventArgs a)
	{
		Application.Quit ();
		a.RetVal = true;
	}
}

-- 
View this message in context: http://www.nabble.com/Ok-this-is-probably-an-odd-question-and-very-general-tp18012126p18023248.html
Sent from the Mono - General mailing list archive at Nabble.com.



More information about the Mono-list mailing list