Q3 symbol list, call for participation
McZonk: if you care about glReadPixels() and glDrawPixels(), I'll take the texture and vertex array code (the latter is not really required, I believe you can switch it off by command line and use glVertex3f() as fallback - for testing).
Last edited by holger on Thu Aug 25, 2005 5:41 pm, edited 1 time in total.
[quote="MDave"]Q3 sdl anyone? ;)
Here's a link that may come in handy:
http://www.quakesrc.org/forums/viewtopic.php?t=5457 [/quote]
SDL is quite fat and consumes a lot of memory, not really something we have to waste on the PSP. Nevertheless, some people like it, but I'd prefer the GLUT code we have, this is much more lightweight and provides the same (or more?) portability.
One Question: How to make these quoted texts looking right?
Here's a link that may come in handy:
http://www.quakesrc.org/forums/viewtopic.php?t=5457 [/quote]
SDL is quite fat and consumes a lot of memory, not really something we have to waste on the PSP. Nevertheless, some people like it, but I'd prefer the GLUT code we have, this is much more lightweight and provides the same (or more?) portability.
One Question: How to make these quoted texts looking right?
Last edited by holger on Fri Aug 26, 2005 10:57 am, edited 1 time in total.
Sorry, I didn't pay attention - yes, it's in there, but it's adjacent to a website address, and so the forum software interprets it as part of the website address rather than a close quote tag. Just add a space after the webpage address next time. (or even better try it now using edit)holger wrote:it's in there, see the message above. I'm too stupid for this web... at least the forums -
Well, when I quote your email and then remove my quote section, it works just fine. I'm not sure now what's causing it. Maybe it's a one-time fluke or you have discovered a bug in the Forum software. I'll leave it be for now, because this is getting a little off-topic.
SDL is quite fat and consumes a lot of memory, not really something we have to waste on the PSP. Nevertheless, some people like it, but I'd prefer the GLUT code we have, this is much more lightweight and provides the same (or more?) portability.
One Question: How to make these quoted texts looking right?
MDave wrote:Q3 sdl anyone? ;)
Here's a link that may come in handy:
http://www.quakesrc.org/forums/viewtopic.php?t=5457
SDL is quite fat and consumes a lot of memory, not really something we have to waste on the PSP. Nevertheless, some people like it, but I'd prefer the GLUT code we have, this is much more lightweight and provides the same (or more?) portability.
One Question: How to make these quoted texts looking right?
that's a factor of more than 4 compared to psp-egl and psp-glut (including the GL implementation, is this also part of a basic SDL linked binary?):rinco wrote:Anyone not attempting to port Q3 should look into SDL as it's full of portable goodness. SDL linked programs can be as little as 250k. Although I would tend to agree that Q3 will need that 250k... plus the Q3 SDL port is incomplete (no joystick for instance).
$ psp-size test-egl/pspGL-cube
text data bss dec hex filename
46444 9816 16604 72864 11ca0 test-egl/pspGL-cube
$ psp-size test-glut/glut-simple
text data bss dec hex filename
44696 828 16672 62196 f2f4 test-glut/glut-simple
... and psp-glut supports joystick ... ;-)
On your desktop you can already run Q3/glut, just type
$ make ARCH=""
on the command line and then execute the resulting Quake3 binary, it currently uses a hardcoded resolution of 480x272 for testing.
update:
`closedir'
`glArrayElement'
`glBindTexture'
`glCallList'
`glClipPlane'
`glDeleteTextures'
`glDrawBuffer'
`glReadPixels'
`glTexSubImage2D'
`opendir'
`readdir'
opendir/closedir/readdir() are now part of newlib, but with an leading underline in the function name. Does anybody knows, why? The include file still seems to be missing.
glBindTexture/glDeleteTextures are part of Jeremy's texture object patch, but this one is not yet incorporated. glArrayElement() is part of the array-element patch.
glClipPlane() does not seems possible on the PSP (can you somehow create user-defined clip planes?), but it seems an optimization in Q3, should work without, too. glCallList() does not makes much sense without generating a list, this symbol seems to be a left-over from some dead code. Need to check this in detail.
glDrawBuffer() can be implemented, but we should check before whether we really need it, I did not investigated yet this part of the code.
McZonk: What's the status about glReadPixels()? Did you made some progress?
`closedir'
`glArrayElement'
`glBindTexture'
`glCallList'
`glClipPlane'
`glDeleteTextures'
`glDrawBuffer'
`glReadPixels'
`glTexSubImage2D'
`opendir'
`readdir'
opendir/closedir/readdir() are now part of newlib, but with an leading underline in the function name. Does anybody knows, why? The include file still seems to be missing.
glBindTexture/glDeleteTextures are part of Jeremy's texture object patch, but this one is not yet incorporated. glArrayElement() is part of the array-element patch.
glClipPlane() does not seems possible on the PSP (can you somehow create user-defined clip planes?), but it seems an optimization in Q3, should work without, too. glCallList() does not makes much sense without generating a list, this symbol seems to be a left-over from some dead code. Need to check this in detail.
glDrawBuffer() can be implemented, but we should check before whether we really need it, I did not investigated yet this part of the code.
McZonk: What's the status about glReadPixels()? Did you made some progress?
Newlib thins out the C library to make it lightweight, and to get people to write the back-end for their particular embedded system. opendir() is really a stub in newlib mapping to _opendir() which is expected to be implemented by the devs using newlib on a particular platform. Why the include file is missing, I have no idea.holger wrote: opendir/closedir/readdir() are now part of newlib, but with an leading underline in the function name. Does anybody knows, why? The include file still seems to be missing.
Parts of OpenGL are designed to be implemented in software, clip planes are one of them IIRC, because not all chipsets support clip planes.glClipPlane() does not seems possible on the PSP (can you somehow create user-defined clip planes?), but it seems an optimization in Q3, should work without, too. glCallList() does not makes much sense without generating a list, this symbol seems to be a left-over from some dead code. Need to check this in detail.
As you can see here newlib's opendir is unusable and their dirent.h is generic.Krevnik wrote:Newlib thins out the C library to make it lightweight, and to get people to write the back-end for their particular embedded system. opendir() is really a stub in newlib mapping to _opendir() which is expected to be implemented by the devs using newlib on a particular platform. Why the include file is missing, I have no idea.holger wrote: opendir/closedir/readdir() are now part of newlib, but with an leading underline in the function name. Does anybody knows, why? The include file still seems to be missing.
mmh... we could do this on-the-fly when doing vertex format conversion, but the test is not really a cheap one... especially when multiple clip planes are enabled. Maybe that's a point where using the VFPU really makes sense. For Q3 I'm still not sure whether this is worth the additional efforts, just to cull away a few more vertices when looking through a portal.Krevnik wrote:Parts of OpenGL are designed to be implemented in software, clip planes are one of them IIRC, because not all chipsets support clip planes.holger wrote: glClipPlane() does not seems possible on the PSP (can you somehow create user-defined clip planes?), but it seems an optimization in Q3, should work without, too. glCallList() does not makes much sense without generating a list, this symbol seems to be a left-over from some dead code. Need to check this in detail.
Yeah, that'd be my unfinished business... I tested _opendir, _closedir and _readdir with a locally modified dirent.h and they seem to work as expected. I was hoping to just drop the dirent.h into a newlib psp architecture, but was quickly stumped by the way newlib is built (gloss..?).holger wrote:opendir/closedir/readdir() are now part of newlib, but with an leading underline in the function name. Does anybody knows, why? The include file still seems to be missing.
I suspect crazyc or mrbrown will know the correct way to implement dirent.h. I don't think I'll figure it out anytime soon.
I don't think so, unfortunately, Well, my model for doing vertex format conversion is that its a one-off process, which is transform independent. If we have user clip planes then I think we'd need to implement a software transform pipeline, which is a big chunk of extra complexity. I think it can be done efficiently with the VFPU, but it is just a whole pile of extra code and state.holger wrote:mmh... we could do this on-the-fly when doing vertex format conversion, but the test is not really a cheap one...Krevnik wrote:Parts of OpenGL are designed to be implemented in software, clip planes are one of them IIRC, because not all chipsets support clip planes.holger wrote: glClipPlane() does not seems possible on the PSP (can you somehow create user-defined clip planes?), but it seems an optimization in Q3, should work without, too. glCallList() does not makes much sense without generating a list, this symbol seems to be a left-over from some dead code. Need to check this in detail.
The clip test can be done in modelview space, no need to transform every vertex. Nevertheless it's not for free, I'd like to avoid it - unless we really would need it for some reason.jsgf wrote:I don't think so, unfortunately, Well, my model for doing vertex format conversion is that its a one-off process, which is transform independent. If we have user clip planes then I think we'd need to implement a software transform pipeline, which is a big chunk of extra complexity. I think it can be done efficiently with the VFPU, but it is just a whole pile of extra code and state.
Sorry, last days I had a lot of stress.
Here is the first implementation of glReadPixels.c.
I don't know about getting the pointer to the framebuffer, depthbuffer and stencilbuffer with OpenGL. So someone has to fix it. The version compiles but it is untestet.
This version is only for quake 3. No dependencies to pixelformat are made and only the parameters used by quake 3 are supported.
Here is the first implementation of glReadPixels.c.
I don't know about getting the pointer to the framebuffer, depthbuffer and stencilbuffer with OpenGL. So someone has to fix it. The version compiles but it is untestet.
This version is only for quake 3. No dependencies to pixelformat are made and only the parameters used by quake 3 are supported.