Move interpreter g3s_lrgb onto stack
MAX_POINTS_PER_POLY is 25, so storing lrgb on the stack fits easily and saves memory allocation/deallocation.
This commit is contained in:
parent
cbd341e8ee
commit
22a34809ee
|
@ -12,7 +12,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <vector>
|
|
||||||
#include "dxxerror.h"
|
#include "dxxerror.h"
|
||||||
|
|
||||||
#include "interp.h"
|
#include "interp.h"
|
||||||
|
@ -400,9 +399,10 @@ void g3_draw_polygon_model(ubyte *p,grs_bitmap **model_bitmaps,vms_angvec *anim_
|
||||||
//now poke light into l values
|
//now poke light into l values
|
||||||
uvl_list = (g3s_uvl *) (p+30+((nv&~1)+1)*2);
|
uvl_list = (g3s_uvl *) (p+30+((nv&~1)+1)*2);
|
||||||
|
|
||||||
std::vector<g3s_lrgb> lrgb_list(nv, light);
|
array<g3s_lrgb, MAX_POINTS_PER_POLY> lrgb_list;
|
||||||
for (i=0;i<nv;i++)
|
for (i=0;i<nv;i++)
|
||||||
{
|
{
|
||||||
|
lrgb_list[i] = light;
|
||||||
uvl_list[i].l = (light.r+light.g+light.b)/3;
|
uvl_list[i].l = (light.r+light.g+light.b)/3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -576,7 +576,8 @@ void g3_draw_morphing_model(ubyte *p,grs_bitmap **model_bitmaps,vms_angvec *anim
|
||||||
//now poke light into l values
|
//now poke light into l values
|
||||||
uvl_list = (g3s_uvl *) (p+30+((nv&~1)+1)*2);
|
uvl_list = (g3s_uvl *) (p+30+((nv&~1)+1)*2);
|
||||||
|
|
||||||
std::vector<g3s_lrgb> lrgb_list(nv, light);
|
array<g3s_lrgb, 3> lrgb_list;
|
||||||
|
lrgb_list.fill(light);
|
||||||
|
|
||||||
for (i=0;i<3;i++)
|
for (i=0;i<3;i++)
|
||||||
morph_uvls[i].l = (light.r+light.g+light.b)/3;
|
morph_uvls[i].l = (light.r+light.g+light.b)/3;
|
||||||
|
|
Loading…
Reference in a new issue