bool LayerBase::setMatrix(const layer_state_t::matrix22_t& matrix) { mCurrentState.sequence++; mCurrentState.transform.set( matrix.dsdx, matrix.dsdy, matrix.dtdx, matrix.dtdy); requestTransaction(); return true; }
bool LayerBase::setTransparentRegionHint(const Region& transparent) { // TODO: check the region has changed mCurrentState.sequence++; mCurrentState.transparentRegion = transparent; requestTransaction(); return true; }
bool LayerBase::setLayerStack(uint32_t layerStack) { if (mCurrentState.layerStack == layerStack) return false; mCurrentState.sequence++; mCurrentState.layerStack = layerStack; requestTransaction(); return true; }
bool LayerBase::setCrop(const Rect& crop) { if (mCurrentState.requested.crop == crop) return false; mCurrentState.sequence++; mCurrentState.requested.crop = crop; requestTransaction(); return true; }
bool LayerBase::setAlpha(uint8_t alpha) { if (mCurrentState.alpha == alpha) return false; mCurrentState.sequence++; mCurrentState.alpha = alpha; requestTransaction(); return true; }
bool LayerBase::setSize(uint32_t w, uint32_t h) { if (mCurrentState.requested.w == w && mCurrentState.requested.h == h) return false; mCurrentState.requested.w = w; mCurrentState.requested.h = h; requestTransaction(); return true; }
bool LayerBase::setLayer(uint32_t z) { if (mCurrentState.z == z) return false; mCurrentState.sequence++; mCurrentState.z = z; requestTransaction(); return true; }
bool LayerBase::setPosition(float x, float y) { if (mCurrentState.transform.tx() == x && mCurrentState.transform.ty() == y) return false; mCurrentState.sequence++; mCurrentState.transform.set(x, y); requestTransaction(); return true; }
bool LayerBase::setFlags(uint8_t flags, uint8_t mask) { const uint32_t newFlags = (mCurrentState.flags & ~mask) | (flags & mask); if (mCurrentState.flags == newFlags) return false; mCurrentState.sequence++; mCurrentState.flags = newFlags; requestTransaction(); return true; }
void LayerBase::forceVisibilityTransaction() { // this can be called without SurfaceFlinger.mStateLock, but if we // can atomically increment the sequence number, it doesn't matter. android_atomic_inc(&mCurrentState.sequence); requestTransaction(); }
bool LayerBase::setTransparentRegionHint(const Region& transparent) { mCurrentState.sequence++; mCurrentState.transparentRegion = transparent; requestTransaction(); return true; }