Loading libs/gui/LayerState.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ status_t DisplayState::write(Parcel& output) const { output.writeInt32(orientation); output.write(viewport); output.write(frame); output.writeInt32(width); output.writeInt32(height); return NO_ERROR; } Loading @@ -92,6 +94,8 @@ status_t DisplayState::read(const Parcel& input) { orientation = input.readInt32(); input.read(viewport); input.read(frame); width = input.readInt32(); height = input.readInt32(); return NO_ERROR; } Loading services/surfaceflinger/DisplayDevice.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,7 @@ DisplayDevice::DisplayDevice( if (mType >= DisplayDevice::DISPLAY_VIRTUAL) window->setSwapInterval(window, 0); mConfig = config; mDisplay = display; mSurface = surface; mFormat = format; Loading Loading @@ -397,6 +398,22 @@ status_t DisplayDevice::orientationToTransfrom( return NO_ERROR; } void DisplayDevice::setDisplaySize(const int newWidth, const int newHeight) { dirtyRegion.set(getBounds()); mDisplaySurface->resizeBuffers(newWidth, newHeight); ANativeWindow* const window = mNativeWindow.get(); mSurface = eglCreateWindowSurface(mDisplay, mConfig, window, NULL); eglQuerySurface(mDisplay, mSurface, EGL_WIDTH, &mDisplayWidth); eglQuerySurface(mDisplay, mSurface, EGL_HEIGHT, &mDisplayHeight); LOG_FATAL_IF(mDisplayWidth != newWidth, "Unable to set new width to %d", newWidth); LOG_FATAL_IF(mDisplayHeight != newHeight, "Unable to set new height to %d", newHeight); } void DisplayDevice::setProjection(int orientation, const Rect& newViewport, const Rect& newFrame) { Rect viewport(newViewport); Loading services/surfaceflinger/DisplayDevice.h +2 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,7 @@ public: Region getDirtyRegion(bool repaintEverything) const; void setLayerStack(uint32_t stack); void setDisplaySize(const int newWidth, const int newHeight); void setProjection(int orientation, const Rect& viewport, const Rect& frame); int getOrientation() const { return mOrientation; } Loading Loading @@ -181,6 +182,7 @@ private: sp<ANativeWindow> mNativeWindow; sp<DisplaySurface> mDisplaySurface; EGLConfig mConfig; EGLDisplay mDisplay; EGLSurface mSurface; int mDisplayWidth; Loading services/surfaceflinger/DisplayHardware/DisplaySurface.h +2 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,8 @@ public: virtual void dump(String8& result) const = 0; virtual void resizeBuffers(const uint32_t w, const uint32_t h) = 0; protected: DisplaySurface() {} virtual ~DisplaySurface() {} Loading services/surfaceflinger/DisplayHardware/FramebufferSurface.h +4 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,10 @@ public: // has a non-virtual dump() with the same signature. virtual void dump(String8& result) const; // Cannot resize a buffers in a FramebufferSurface. Only works with virtual // displays. virtual void resizeBuffers(const uint32_t /*w*/, const uint32_t /*h*/) { }; private: virtual ~FramebufferSurface() { }; // this class cannot be overloaded Loading Loading
libs/gui/LayerState.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ status_t DisplayState::write(Parcel& output) const { output.writeInt32(orientation); output.write(viewport); output.write(frame); output.writeInt32(width); output.writeInt32(height); return NO_ERROR; } Loading @@ -92,6 +94,8 @@ status_t DisplayState::read(const Parcel& input) { orientation = input.readInt32(); input.read(viewport); input.read(frame); width = input.readInt32(); height = input.readInt32(); return NO_ERROR; } Loading
services/surfaceflinger/DisplayDevice.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,7 @@ DisplayDevice::DisplayDevice( if (mType >= DisplayDevice::DISPLAY_VIRTUAL) window->setSwapInterval(window, 0); mConfig = config; mDisplay = display; mSurface = surface; mFormat = format; Loading Loading @@ -397,6 +398,22 @@ status_t DisplayDevice::orientationToTransfrom( return NO_ERROR; } void DisplayDevice::setDisplaySize(const int newWidth, const int newHeight) { dirtyRegion.set(getBounds()); mDisplaySurface->resizeBuffers(newWidth, newHeight); ANativeWindow* const window = mNativeWindow.get(); mSurface = eglCreateWindowSurface(mDisplay, mConfig, window, NULL); eglQuerySurface(mDisplay, mSurface, EGL_WIDTH, &mDisplayWidth); eglQuerySurface(mDisplay, mSurface, EGL_HEIGHT, &mDisplayHeight); LOG_FATAL_IF(mDisplayWidth != newWidth, "Unable to set new width to %d", newWidth); LOG_FATAL_IF(mDisplayHeight != newHeight, "Unable to set new height to %d", newHeight); } void DisplayDevice::setProjection(int orientation, const Rect& newViewport, const Rect& newFrame) { Rect viewport(newViewport); Loading
services/surfaceflinger/DisplayDevice.h +2 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,7 @@ public: Region getDirtyRegion(bool repaintEverything) const; void setLayerStack(uint32_t stack); void setDisplaySize(const int newWidth, const int newHeight); void setProjection(int orientation, const Rect& viewport, const Rect& frame); int getOrientation() const { return mOrientation; } Loading Loading @@ -181,6 +182,7 @@ private: sp<ANativeWindow> mNativeWindow; sp<DisplaySurface> mDisplaySurface; EGLConfig mConfig; EGLDisplay mDisplay; EGLSurface mSurface; int mDisplayWidth; Loading
services/surfaceflinger/DisplayHardware/DisplaySurface.h +2 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,8 @@ public: virtual void dump(String8& result) const = 0; virtual void resizeBuffers(const uint32_t w, const uint32_t h) = 0; protected: DisplaySurface() {} virtual ~DisplaySurface() {} Loading
services/surfaceflinger/DisplayHardware/FramebufferSurface.h +4 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,10 @@ public: // has a non-virtual dump() with the same signature. virtual void dump(String8& result) const; // Cannot resize a buffers in a FramebufferSurface. Only works with virtual // displays. virtual void resizeBuffers(const uint32_t /*w*/, const uint32_t /*h*/) { }; private: virtual ~FramebufferSurface() { }; // this class cannot be overloaded Loading