From: <mth...@us...> - 2009-11-30 00:18:35
|
Revision: 10838 http://openmsx.svn.sourceforge.net/openmsx/?rev=10838&view=rev Author: mthuurne Date: 2009-11-30 00:14:58 +0000 (Mon, 30 Nov 2009) Log Message: ----------- Eliminated computeTable() by producing a stream of values rather than a data structure and then inlining the remaining code to avoid the lambda construct in computeWeights(). Modified Paths: -------------- openmsx/trunk/src/video/hq2.py Modified: openmsx/trunk/src/video/hq2.py =================================================================== --- openmsx/trunk/src/video/hq2.py 2009-11-30 00:12:51 UTC (rev 10837) +++ openmsx/trunk/src/video/hq2.py 2009-11-30 00:14:58 UTC (rev 10838) @@ -131,19 +131,16 @@ for c in cellFunc(weights) ) -def computeTable(pixelExpr, transform): - # TODO: This structure will be flattened when generating the data files. - # Only the format routines need the structure, but it might be - # simpler to let them call the transform function directly and - # skip the generation of the data structure. - return [ - [ transform(weights) for weights in pixelCase ] - for pixelCase in pixelExpr - ] - def computeOffsets(pixelExpr): - return computeTable(pixelExpr, transformOffsets) + for expr in pixelExpr: + for weights in expr: + yield transformOffsets(weights) +def computeWeights(pixelExpr, cellFunc): + for expr in pixelExpr: + for weights in expr: + yield transformWeights(weights, cellFunc) + def computeWeightCells(weights): neighbours = computeNeighbours(weights) return (neighbours[0], neighbours[1], 4) @@ -151,12 +148,6 @@ def computeLiteWeightCells(weights_): return (3, 4, 5) -def computeWeights(pixelExpr): - return computeTable( - pixelExpr, - lambda weights: transformWeights(weights, computeWeightCells) - ) - def genHQLiteOffsetsTable(pixelExpr): '''In the hqlite case, the result color depends on at most one neighbour color. Therefore, an offset into an interpolated texture is used instead @@ -384,7 +375,7 @@ ) writeBinaryFile( 'HQ2xWeights.dat', - byteStream(computeWeights(fullTableVariant.pixelExpr)) + byteStream(computeWeights(fullTableVariant.pixelExpr, computeWeightCells)) ) writeBinaryFile( 'HQ2xLiteOffsets.dat', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |