Merge pull request #38 from bendmorris/master

DrawTiles optimization
This commit is contained in:
Joshua Granick
2014-02-07 12:04:58 -08:00

View File

@@ -2343,7 +2343,7 @@ value lime_gfx_draw_datum(value inGfx,value inDatum)
} }
DEFINE_PRIM(lime_gfx_draw_datum,2); DEFINE_PRIM(lime_gfx_draw_datum,2);
value lime_gfx_draw_tiles(value inGfx,value inSheet, value inXYIDs,value inFlags) value lime_gfx_draw_tiles(value inGfx,value inSheet, value inXYIDs,value inFlags,value inDataSize)
{ {
Graphics *gfx; Graphics *gfx;
Tilesheet *sheet; Tilesheet *sheet;
@@ -2402,7 +2402,9 @@ value lime_gfx_draw_tiles(value inGfx,value inSheet, value inXYIDs,value inFlags
if (flags & TILE_ALPHA) if (flags & TILE_ALPHA)
components++; components++;
int n = val_array_size(inXYIDs)/components; int n = val_int(inDataSize);
if (n < 0) n = val_array_size(inXYIDs);
n /= components;
double *vals = val_array_double(inXYIDs); double *vals = val_array_double(inXYIDs);
float *fvals = val_array_float(inXYIDs); float *fvals = val_array_float(inXYIDs);
int max = sheet->Tiles(); int max = sheet->Tiles();
@@ -2523,7 +2525,7 @@ value lime_gfx_draw_tiles(value inGfx,value inSheet, value inXYIDs,value inFlags
} }
return alloc_null(); return alloc_null();
} }
DEFINE_PRIM(lime_gfx_draw_tiles,4); DEFINE_PRIM(lime_gfx_draw_tiles,5);
static bool sNekoLutInit = false; static bool sNekoLutInit = false;