mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Several optimizations and speed improvements.
cstubs: Use Matrix type instead of float[4][4].
This commit is contained in:
parent
a75d306e2b
commit
3bb8a05947
10 changed files with 216 additions and 63 deletions
|
@ -529,21 +529,21 @@ gl_getmatrix(self, args)
|
|||
object *self;
|
||||
object *args;
|
||||
{
|
||||
float arg1 [ 16 ] ;
|
||||
Matrix arg1;
|
||||
object *v, *w;
|
||||
int i;
|
||||
int i, j;
|
||||
getmatrix( arg1 );
|
||||
v = newlistobject(16);
|
||||
if (v == NULL) {
|
||||
return err_nomem();
|
||||
}
|
||||
for (i = 0; i < 16; i++) {
|
||||
w = mknewfloatobject(arg1[i]);
|
||||
for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) {
|
||||
w = mknewfloatobject(arg1[i][j]);
|
||||
if (w == NULL) {
|
||||
DECREF(v);
|
||||
return NULL;
|
||||
}
|
||||
setlistitem(v, i, w);
|
||||
setlistitem(v, i*4+j, w);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
@ -559,7 +559,7 @@ gl_altgetmatrix(self, args)
|
|||
object *self;
|
||||
object *args;
|
||||
{
|
||||
float arg1 [ 4 ] [ 4 ] ;
|
||||
Matrix arg1;
|
||||
object *v, *w;
|
||||
int i, j;
|
||||
getmatrix( arg1 );
|
||||
|
@ -742,7 +742,7 @@ gl_packrect(self, args)
|
|||
if (packed == NULL)
|
||||
return NULL;
|
||||
parray = (unsigned long *) getstringvalue(unpacked);
|
||||
p = getstringvalue(packed);
|
||||
p = (unsigned char *) getstringvalue(packed);
|
||||
for (y = 0; y < height; y += packfactor, parray += packfactor*width) {
|
||||
for (x = 0; x < width; x += packfactor) {
|
||||
pixel = parray[x];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue