From 83c3ab4b5ffffbbba14b34e8513b7d163491541b Mon Sep 17 00:00:00 2001 From: Alexey Zankevich Date: Tue, 2 Jul 2013 16:41:36 +0300 Subject: [PATCH] removed old TKTexturePack class --- TKFrameInfo.lua | 17 +++++++++++++++++ TKLayer.lua | 9 ++++----- TKResourceManager.lua | 6 +++++- TKTextureMultiPack.lua | 41 +++++++++++++++++++++++++++++++++++++++++ TKTexturePack.lua | 24 ------------------------ TKTexturePackerUtil.lua | 23 +++++++++++------------ terevaka.lua | 1 + 7 files changed, 79 insertions(+), 42 deletions(-) create mode 100644 TKFrameInfo.lua create mode 100644 TKTextureMultiPack.lua delete mode 100644 TKTexturePack.lua diff --git a/TKFrameInfo.lua b/TKFrameInfo.lua new file mode 100644 index 0000000..f3a0c83 --- /dev/null +++ b/TKFrameInfo.lua @@ -0,0 +1,17 @@ +module(..., package.seeall) + + +TKFrameInfo = {} + +function TKFrameInfo:new ( o ) + o = o or {} + setmetatable ( o, self ) + self.__index = self + return o +end + +function TKFrameInfo:init () + return self +end + +return TKFrameInfo \ No newline at end of file diff --git a/TKLayer.lua b/TKLayer.lua index 49988e1..7bf2c29 100644 --- a/TKLayer.lua +++ b/TKLayer.lua @@ -36,15 +36,14 @@ function TKLayer:fill ( params ) end function TKLayer:fillScalableLayout ( params ) - if params.texturePack then - params.deck = params.texturePack.quads - params.resourceScaleFactor = params.texturePack.resourceScaleFactor - end self.layoutWidth = params.resource.layout_width self.layoutHeight = params.resource.layout_height for i, propTable in ipairs ( params.resource.props ) do if params.texturePack then - params.index = params.texturePack.spriteNames [ propTable.name ] + local frameInfo = params.texturePack:getFrameInfo ( propTable.name ) + params.index = frameInfo.index + params.deck = frameInfo.quads + params.resourceScaleFactor = frameInfo.resourceScaleFactor end params.propTable = propTable self:addScalableProp ( params ) diff --git a/TKResourceManager.lua b/TKResourceManager.lua index 6a90c77..62f611a 100644 --- a/TKResourceManager.lua +++ b/TKResourceManager.lua @@ -3,6 +3,7 @@ module(..., package.seeall) local TKScreen = require ( 'terevaka/TKScreen' ) local TKTexturePackerUtil = require ( 'terevaka/TKTexturePackerUtil' ) +local TKTextureMultiPack = require ( 'terevaka/TKTextureMultiPack' ) local layoutFileNameCache = {} local drawableDirs = {} @@ -13,7 +14,10 @@ function loadTexturePack ( packName ) local spec = drawable.resourceDir..packName..'.lua' local pack = TKTexturePackerUtil.load ( spec, drawable.path ) pack.resourceScaleFactor = drawable.resourceScaleFactor - return pack + + local multiPack = TKTextureMultiPack:new () :init () + multiPack:addTexturePack ( pack ) + return multiPack end function loadTexture ( name, ext ) diff --git a/TKTextureMultiPack.lua b/TKTextureMultiPack.lua new file mode 100644 index 0000000..1579441 --- /dev/null +++ b/TKTextureMultiPack.lua @@ -0,0 +1,41 @@ +module(..., package.seeall) + +TKTextureMultiPack = {} + +function TKTextureMultiPack:new ( o ) + o = o or {} + setmetatable ( o, self ) + self.__index = self + return o +end + +function TKTextureMultiPack:init () + self.texturePacks = {} + return self +end + +function TKTextureMultiPack:addTexturePack ( pack ) + table.insert ( self.texturePacks, pack ) +end + +function TKTextureMultiPack:getFrameInfo ( frameName ) + for i, pack in ipairs ( self.texturePacks ) do + if pack.spriteNames [ frameName ] then + local frameInfo = {} + frameInfo.frameName = frameName + frameInfo.quads = pack.quads + frameInfo.resourceScaleFactor = pack.resourceScaleFactor + frameInfo.index = pack.spriteNames [ frameName ] + return frameInfo + end + end +end + +function TKTextureMultiPack:release () + for i, pack in ipairs ( self.texturePacks ) do + pack.texture:release () + end + self.texturePacks = {} +end + +return TKTextureMultiPack \ No newline at end of file diff --git a/TKTexturePack.lua b/TKTexturePack.lua deleted file mode 100644 index 680221a..0000000 --- a/TKTexturePack.lua +++ /dev/null @@ -1,24 +0,0 @@ -module(..., package.seeall) - --- GameScene prototype -TKTexturePack = {} - --- GameScene constructor -function TKTexturePack:new ( o ) - o = o or {} - setmetatable ( o, self ) - self.__index = self - return o -end - -function TKTexturePack:init () - return self -end - -function TKTexturePack:release () - self.texture:release () - self.quads = nil - self.names = nil -end - -return TKTexturePack \ No newline at end of file diff --git a/TKTexturePackerUtil.lua b/TKTexturePackerUtil.lua index e07ab3d..a52aead 100644 --- a/TKTexturePackerUtil.lua +++ b/TKTexturePackerUtil.lua @@ -1,14 +1,13 @@ module(..., package.seeall) -local TKTexturePack = require ( 'terevaka/TKTexturePack' ) function load( lua, png ) - local texturePack = TKTexturePack:new () :init () + local textureTable = {} local frames = dofile ( lua ).frames - texturePack.texture = MOAITexture.new () - texturePack.texture:load ( png ) - local xtex, ytex = texturePack.texture:getSize () + textureTable.texture = MOAITexture.new () + textureTable.texture:load ( png ) + local xtex, ytex = textureTable.texture:getSize () -- Annotate the frame array with uv quads and geometry rects for i, frame in ipairs ( frames ) do @@ -43,18 +42,18 @@ function load( lua, png ) end -- Construct the deck - texturePack.quads = MOAIGfxQuadDeck2D.new () - texturePack.quads:setTexture ( texturePack.texture ) - texturePack.quads:reserve ( #frames ) + textureTable.quads = MOAIGfxQuadDeck2D.new () + textureTable.quads:setTexture ( textureTable.texture ) + textureTable.quads:reserve ( #frames ) local names = {} for i, frame in ipairs ( frames ) do local q = frame.uvQuad local r = frame.geomRect names[frame.name] = i - texturePack.quads:setUVQuad ( i, q.x0,q.y0, q.x1,q.y1, q.x2,q.y2, q.x3,q.y3 ) - texturePack.quads:setRect ( i, r.x0,r.y0, r.x1,r.y1 ) + textureTable.quads:setUVQuad ( i, q.x0,q.y0, q.x1,q.y1, q.x2,q.y2, q.x3,q.y3 ) + textureTable.quads:setRect ( i, r.x0,r.y0, r.x1,r.y1 ) end - texturePack.spriteNames = names - return texturePack + textureTable.spriteNames = names + return textureTable end diff --git a/terevaka.lua b/terevaka.lua index 7af4a50..6914f97 100644 --- a/terevaka.lua +++ b/terevaka.lua @@ -9,3 +9,4 @@ TKTexturePackerUtil = require ( 'terevaka/TKTexturePackerUtil' ) TKScene = require ( 'terevaka/TKScene' ) TKTapEvent = require ( 'terevaka/TKTapEvent' ) TKTexturePack = require ( 'terevaka/TKTexturePack' ) +TKTextureMultiPack = require ( 'terevaka/TKTextureMultiPack' ) \ No newline at end of file