In osmesa.c:
--- osmesa.c Mon Apr 3 05:47:32 2000
+++ osmesa.c Mon Apr 3 05:46:29 2000
@@ -252,6 +252,7 @@
indexBits,
8, 8, 8, alphaBits );
if (!osmesa->gl_visual) {
+ FREE(osmesa);
return NULL;
}
Also, two performance enhancements that sped our code up by approximately 30%:
@@ -631,9 +660,14 @@
GLuint i, n, *ptr4;
n = osmesa->rowlength * osmesa->height;
ptr4 = (GLuint *) osmesa->buffer;
- for (i=0;i<n;i++) {
- *ptr4++ = osmesa->clearpixel;
- }
+ if (osmesa->clearpixel) {
+ for (i=0;i<n;i++) {
+ *ptr4++ = osmesa->clearpixel;
+ }
+ }
+ else {
+ bzero(ptr4, n * sizeof(GLuint));
+ }
}
else {
/* Clear part of RGBA buffer */
--- depth.c.old Mon Apr 3 05:50:21 2000
+++ depth.c Mon Apr 3 05:11:32 2000
@@ -861,9 +861,14 @@
else {
/* clear whole buffer */
if (sizeof(GLdepth)==2 && (clear_value&0xff)==(clear_value>>8)) {
+ if (clear_value == 0) {
+ bzero( ctx->Buffer->Depth, 2*ctx->Buffer->Width*ctx->Buffer->Height);
+ }
+ else {
/* lower and upper bytes of clear_value are same, use MEMSET */
- MEMSET( ctx->Buffer->Depth, clear_value&0xff,
- 2*ctx->Buffer->Width*ctx->Buffer->Height);
+ MEMSET( ctx->Buffer->Depth, clear_value&0xff,
+ 2*ctx->Buffer->Width*ctx->Buffer->Height);
+ }
}
else {
GLdepth *d = ctx->Buffer->Depth;
I'm not sure what the rules are for using bzero, something may probably have
to be added to configure to support/not support this. (bzero is much faster
than memset on freebsd)
Please let me know if you have any comments or suggestions.
Thanks,
Kevin Day
Midway Games
_______________________________________________
Mesa-bug maillist - [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-bug
_______________________________________________
Mesa-dev maillist - [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-dev