Hi Andrew,

I am trying to display data sets (in a scrolling window) which contain ~100 000 
points.  I do this by having a ScrolledWindow with a ViewPort on a DrawingArea.  The 
latter is the size of  my data set taking into account scale.  This implies that for 
12 bit data and 100 000 points at 1/10 scale for x and y a Drawing Area of 410x10000.  
This seems to work fine.  It is when I change scaling (say to 1/2 on x) that things go 
wonky.  On smaller data sets the scaling changes work fine.

I do see your point concerning X requests (by that I assume you are talking about 
X-windows).  I hadn't thought of that, but it makes sense.  I suppose I could use a 
paging mechanism where only one screen of data is plotted at a time in stead of a 
scrolling display of all of the data or limit the drawingarea size to signed short.  I 
could also have a look at PyOpenGL.

There may be a better way to do this.  One would think that the scrolling could 
trigger a redraw that is updated by drawing new stuff in the drawingarea.  I'm not 
sure how to go about this without having the associated drawingarea be of 
representative size.  I may look into how to change the scrollbar attributes so that 
the show the proper proportions while the drawing area is the same size as the 
viewport (or would I then need a viewport at all...).

Any further insight/suggestions welcome.

cheers

On Wed, 28 Jan 2004 02:18:50 -0800 (PST)
"Andrew P. Lentvorski, Jr." <[EMAIL PROTECTED]> wrote:

> On Tue, 27 Jan 2004, Luc Lefebvre wrote:
> 
> > Whenever I try to set a DrawingArea widget width > 10000, glade reverts
> > the value to 10000.  Oddly enough when I do
> > drawingarea.set_size_request(width,height) it will accept the value but
> > then the drawing appears to go wonky.  Is there a limit to the width
> > that one can assign to a DrawingArea widget?  Things do seem to break
> > down passed 10000.
> 
> What are you actually trying to do?
> 
> There will be two issues that I can think of right off the bat.
> 
> First, if the DrawingArea is 10,000 x 10,000 square, Gtk immediately
> allocates a backing store of 100,000,000 pixels x 3 bytes/pixel or
> approximately 300 Megabytes right off the top just for the backing store.
> How much memory do you have in your computer?
> 
> Second, X requests generally fail when their values get outside of a
> signed short (-32768/+32767).
> 
> If you really want coordinates that cover that large a dynamic range, you
> probably want to handle that stuff yourself, and you might want to think
> about using PyOpenGL/PyGtkGLExt which can use floating point operands (at
> least 24 bits of precision) or standard integers (normally at least 32
> bits of precision).
> 
> -a


-- 
Luc Lefebvre

In the beginner's mind there are many possibilities,
in the expert's mind there are few.                     <Shunryu Suzuki>

Key fingerprint = D2E5 5E35 B910 6F4E 0242  EC63 0FD9 96D0 C7F4 784E
_______________________________________________
pygtk mailing list   [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to