private void setTextureRect( float x, float y, float w, float h, float sw, float sh, boolean rotated) { rect_.set(x, y, w, h); rectRotated_ = rotated; setContentSize(sw, sh); updateTextureCoords(rect_); float relativeOffsetX = unflippedOffsetPositionFromCenter_.x; float relativeOffsetY = unflippedOffsetPositionFromCenter_.y; // issue #732 if (flipX_) relativeOffsetX = -relativeOffsetX; if (flipY_) relativeOffsetY = -relativeOffsetY; offsetPosition_.x = relativeOffsetX + (contentSize_.width - rect_.size.width) / 2; offsetPosition_.y = relativeOffsetY + (contentSize_.height - rect_.size.height) / 2; // rendering using SpriteSheet if (usesSpriteSheet_) { // update dirty_, don't update recursiveDirty_ dirty_ = true; } else { // self rendering // Atlas: Vertex float x1 = 0 + offsetPosition_.x; float y1 = 0 + offsetPosition_.y; float x2 = x1 + w; float y2 = y1 + h; // Don't update Z. vertexes.position(0); tmpV[0] = x1; tmpV[1] = y2; tmpV[2] = 0; tmpV[3] = x1; tmpV[4] = y1; tmpV[5] = 0; tmpV[6] = x2; tmpV[7] = y2; tmpV[8] = 0; tmpV[9] = x2; tmpV[10] = y1; tmpV[11] = 0; BufferUtils.copyFloats(tmpV, 0, vertexes, 12); // vertexes.put(x1); // vertexes.put(y2); // vertexes.put(0); // vertexes.put(x1); // vertexes.put(y1); // vertexes.put(0); // vertexes.put(x2); // vertexes.put(y2); // vertexes.put(0); // vertexes.put(x2); // vertexes.put(y1); // vertexes.put(0); vertexes.position(0); } }