From: Britton <fs...@au...> - 2002-11-25 22:38:46
|
I get a seg fault in glPixlZoom when I try to load images 5639 or wider with a zoom other than 1.0, like this: glRasterPos2d(anchor_x, anchor_y); glPixelZoom(zoom, zoom); glDrawPixels(img_width, img_height, GL_RGB, GL_UNSIGNED_BYTE, gamma_corrected_image); gamma_corrected_image is definately big enough. 5638 wide works for lots of zoom values. In init function I have set glPixelStorei(GL_UNPACK_ALIGNMENT, 1); It doesn't matter if img_width is 2 or 1000. I have looked for some symbol of value I can glGet which will tell me if there is some limit that relates to this problem, but so far no luck. If anyone can give me an idea whats going on I'd really appreciate it. Britton Kerin -- GNU GPL: "The Source will be with you... always." |
From: Brian P. <br...@tu...> - 2002-11-26 03:26:57
|
Britton wrote: > I get a seg fault in glPixlZoom when I try to load images 5639 or wider > with a zoom other than 1.0, like this: > > glRasterPos2d(anchor_x, anchor_y); > glPixelZoom(zoom, zoom); > glDrawPixels(img_width, img_height, > GL_RGB, GL_UNSIGNED_BYTE, > gamma_corrected_image); > > gamma_corrected_image is definately big enough. 5638 wide works for lots > of zoom values. In init function I have set > > glPixelStorei(GL_UNPACK_ALIGNMENT, 1); > > It doesn't matter if img_width is 2 or 1000. > > I have looked for some symbol of value I can glGet which will tell me > if there is some limit that relates to this problem, but so far no luck. > If anyone can give me an idea whats going on I'd really appreciate it. Hmmm, I can't reproduce this. I hacked Mesa/demos/drawpix to malloc a 5639x100 RGB image buffer and it draws with zooming - no crash. Which version of Mesa are you using? Can I get a test program? -Brian |
From: Britton <fs...@au...> - 2002-12-04 01:27:13
|
Attached is a fairly boiled down version of the program that fails for me. I built it like this: export LD_RUN_PATH=/home/bkerin/local/lib ; /usr/bin/mh/gcc -D_GNU_SOURCE -L/home/bkerin/local/lib -lm -lGL -lGLU -lglut test_glPixelZoom.c -o test_glPixelZoom and you can run it like this: ./test_glPixelZoom /dev/zero 5639 100 Note that it also tests glGetString(GL_VERSION), which seems to not work (it returns null). I know that I build Mesa 5.0 and successfully linked against it though, ldd confirms this. Also, a large enough value for height (the third command line argument), also causes a seg fault on zoom, even if the width argument is smaller than 5639. Best regargs, Britton Kerin -- GNU GPL: "The Source will be with you... always." On Mon, 25 Nov 2002, Brian Paul wrote: > Britton wrote: > > I get a seg fault in glPixlZoom when I try to load images 5639 or wider > > with a zoom other than 1.0, like this: > > > > glRasterPos2d(anchor_x, anchor_y); > > glPixelZoom(zoom, zoom); > > glDrawPixels(img_width, img_height, > > GL_RGB, GL_UNSIGNED_BYTE, > > gamma_corrected_image); > > > > gamma_corrected_image is definately big enough. 5638 wide works for lots > > of zoom values. In init function I have set > > > > glPixelStorei(GL_UNPACK_ALIGNMENT, 1); > > > > It doesn't matter if img_width is 2 or 1000. > > > > I have looked for some symbol of value I can glGet which will tell me > > if there is some limit that relates to this problem, but so far no luck. > > If anyone can give me an idea whats going on I'd really appreciate it. > > Hmmm, I can't reproduce this. I hacked Mesa/demos/drawpix to malloc a > 5639x100 RGB image buffer and it draws with zooming - no crash. > > Which version of Mesa are you using? > > Can I get a test program? > > -Brian > > > |
From: Brian P. <br...@tu...> - 2002-12-04 01:33:22
|
Britton wrote: > Attached is a fairly boiled down version of the program that fails for me. I don't see an attachment. > I built it like this: > > export LD_RUN_PATH=/home/bkerin/local/lib ; /usr/bin/mh/gcc > -D_GNU_SOURCE -L/home/bkerin/local/lib -lm -lGL -lGLU -lglut > test_glPixelZoom.c -o test_glPixelZoom > > and you can run it like this: > > ./test_glPixelZoom /dev/zero 5639 100 > > Note that it also tests glGetString(GL_VERSION), which seems to not work > (it returns null). This is typically caused by calling glGetString() without first binding a rendering context. > I know that I build Mesa 5.0 and successfully linked > against it though, ldd confirms this. > > Also, a large enough value for height (the third command line argument), > also causes a seg fault on zoom, even if the width argument is smaller > than 5639. -Brian |
From: Britton <fs...@au...> - 2002-12-04 01:58:02
Attachments:
test_glPixelZoom.c
|
On Tue, 3 Dec 2002, Brian Paul wrote: > Britton wrote: > > Attached is a fairly boiled down version of the program that fails for me. > > I don't see an attachment. Sorry, here it is. > > I built it like this: > > > > export LD_RUN_PATH=/home/bkerin/local/lib ; /usr/bin/mh/gcc > > -D_GNU_SOURCE -L/home/bkerin/local/lib -lm -lGL -lGLU -lglut > > test_glPixelZoom.c -o test_glPixelZoom > > > > and you can run it like this: > > > > ./test_glPixelZoom /dev/zero 5639 100 > > > > Note that it also tests glGetString(GL_VERSION), which seems to not work > > (it returns null). > > This is typically caused by calling glGetString() without first > binding a rendering context. Ah, you are right, thanks. Britton |
From: Brian P. <br...@tu...> - 2002-12-04 02:38:12
|
Britton wrote: > On Tue, 3 Dec 2002, Brian Paul wrote: > > >>Britton wrote: >> >>>Attached is a fairly boiled down version of the program that fails for me. >> >>I don't see an attachment. > > > Sorry, here it is. > > >>>I built it like this: >>> >>> export LD_RUN_PATH=/home/bkerin/local/lib ; /usr/bin/mh/gcc >>>-D_GNU_SOURCE -L/home/bkerin/local/lib -lm -lGL -lGLU -lglut >>>test_glPixelZoom.c -o test_glPixelZoom >>> >>>and you can run it like this: >>> >>> ./test_glPixelZoom /dev/zero 5639 100 >>> >>>Note that it also tests glGetString(GL_VERSION), which seems to not work >>>(it returns null). >> >>This is typically caused by calling glGetString() without first >>binding a rendering context. > > > Ah, you are right, thanks. > > Britton > OK, the following change seems to fix it, though I think the "right" solution for the long term will involve more work. diff -r1.40 s_drawpix.c 196c196,197 < ASSERT(drawWidth < MAX_WIDTH); --- > if (drawWidth > MAX_WIDTH) > return GL_FALSE; /* fall back to general case path */ -Brian |