@Override public void main() { RVec2 gTextureCoord = (RVec2) getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RFloat tileSizeX = new RFloat("tileSizeX"); tileSizeX.assign(1.f / mNumTiles[0]); RFloat tileSizeY = new RFloat("tileSizeY"); tileSizeY.assign(1.f / mNumTiles[1]); RFloat texSOffset = new RFloat("texSOffset", gTextureCoord.s().multiply(tileSizeX)); RFloat texTOffset = new RFloat("texTOffset", gTextureCoord.t().multiply(tileSizeY)); gTextureCoord.s().assign(mod(muCurrentFrame, muNumTiles.x()).multiply(tileSizeX).add(texSOffset)); gTextureCoord.t().assign(tileSizeY.multiply(floor(muCurrentFrame.divide(muNumTiles.y()))).add(texTOffset)); }
@Override public void main() { RVec2 v = new RVec2("v"); v.assign(0); v.assign(0, 0); v.assignAdd(0); v.assignAdd(v); v.assignSubtract(0); v.assignSubtract(v); v.assignMultiply(0); v.assignMultiply(v); v.s().assign(0); v.s().assign(0x00); v.s().assign("(0+0)"); v.t().assign(0); v.t().assign(0x00); v.t().assign("(0+0)"); v.x().assign(0); v.x().assign(0x00); v.x().assign("(0+0)"); v.y().assign(0); v.y().assign(0x00); v.y().assign("(0+0)"); } };
@Override public void main() { RVec2 gTextureCoord = (RVec2) getGlobal(DefaultShaderVar.G_TEXTURE_COORD); RFloat tileSizeX = new RFloat("tileSizeX"); tileSizeX.assign(1.f / mNumTiles[0]); RFloat tileSizeY = new RFloat("tileSizeY"); tileSizeY.assign(1.f / mNumTiles[1]); RFloat texSOffset = new RFloat("texSOffset", gTextureCoord.s().multiply(tileSizeX)); RFloat texTOffset = new RFloat("texTOffset", gTextureCoord.t().multiply(tileSizeY)); gTextureCoord.s().assign(mod(muCurrentFrame, muNumTiles.x()).multiply(tileSizeX).add(texSOffset)); gTextureCoord.t().assign(tileSizeY.multiply(floor(muCurrentFrame.divide(muNumTiles.y()))).add(texTOffset)); }