I have following code blocks in my game:
for tileY in self.bigAxisRangeX:
for tileX in self.bigAxisRangeY:
for y in self.smallAxisRange:
for x in self.smallAxisRange:
vertex.addData3f(self.X+tileX+x, self.Y+tileY+y, self.vertices[tileY+y][tileX+x].height)
and
for i in self.fourRange:
tilesetID = 0
tileID = 0
if i < len(tilesetList):
tilesetID = tilesetList[i]
tileID = tileIDList[i]
tileset = self.tc.tilesets[tilesetID]
tX = tileID/ 4
tY = 3 - (tileID % 4)
left = (tileset.tcX+tX*tileset.tileWidth)/float(self.tc.width)
right = (tileset.tcX+(tX+1)*tileset.tileWidth)/float(self.tc.width)
top = (self.tc.height-tileset.tcY-tileset.height + (tY+1)*tileset.tileHeight)/float(self.tc.height)
bottom = (self.tc.height-tileset.tcY-tileset.height + tY*tileset.tileHeight)/float(self.tc.height)
texcoord[i].addData2f(left, bottom)
texcoord[i].addData2f(right, bottom)
texcoord[i].addData2f(left,top)
texcoord[i].addData2f(right, top)
As profiler shows, most tame takes methods addData2f and addData3f. Is there any way to optimize performance of custom geometry creation? Right now to create tile map 124x124 takes 16 seconds. ~90% of time is taken by methods addData2f and addData3f.