diff options
Diffstat (limited to 'services/surfaceflinger/RefreshRateOverlay.h')
-rw-r--r-- | services/surfaceflinger/RefreshRateOverlay.h | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/services/surfaceflinger/RefreshRateOverlay.h b/services/surfaceflinger/RefreshRateOverlay.h index aa8329c46a..35c80201d7 100644 --- a/services/surfaceflinger/RefreshRateOverlay.h +++ b/services/surfaceflinger/RefreshRateOverlay.h @@ -16,15 +16,14 @@ #pragma once +#include <unordered_map> + #include <math/vec4.h> -#include <renderengine/RenderEngine.h> #include <ui/Rect.h> #include <ui/Size.h> #include <utils/StrongPointer.h> -#include <unordered_map> - -#include "Fps.h" +#include "Scheduler/RefreshRateConfigs.h" namespace android { @@ -35,20 +34,19 @@ class IGraphicBufferProducer; class Layer; class SurfaceFlinger; +using RefreshRate = scheduler::RefreshRateConfigs::RefreshRate; + class RefreshRateOverlay { public: - RefreshRateOverlay(SurfaceFlinger&, bool showSpinner); + explicit RefreshRateOverlay(SurfaceFlinger&); void setViewport(ui::Size); - void changeRefreshRate(const Fps&); - void onInvalidate(); - void reset(); + void changeRefreshRate(const RefreshRate&); private: class SevenSegmentDrawer { public: - static std::vector<sp<GraphicBuffer>> drawNumber(int number, const half4& color, - bool showSpinner); + static sp<GraphicBuffer> drawNumber(int number, const half4& color); static uint32_t getHeight() { return BUFFER_HEIGHT; } static uint32_t getWidth() { return BUFFER_WIDTH; } @@ -67,12 +65,11 @@ private: static constexpr uint32_t DIGIT_SPACE = 16; static constexpr uint32_t BUFFER_HEIGHT = DIGIT_HEIGHT; static constexpr uint32_t BUFFER_WIDTH = - 4 * DIGIT_WIDTH + 3 * DIGIT_SPACE; // Digit|Space|Digit|Space|Digit|Space|Spinner + 3 * DIGIT_WIDTH + 2 * DIGIT_SPACE; // Digit|Space|Digit|Space|Digit }; bool createLayer(); - const std::vector<std::shared_ptr<renderengine::ExternalTexture>>& getOrCreateBuffers( - uint32_t fps); + void primeCache(); SurfaceFlinger& mFlinger; const sp<Client> mClient; @@ -80,19 +77,11 @@ private: sp<IBinder> mIBinder; sp<IGraphicBufferProducer> mGbp; - std::unordered_map<int, std::vector<std::shared_ptr<renderengine::ExternalTexture>>> - mBufferCache; - std::optional<int> mCurrentFps; - int mFrame = 0; + std::unordered_map<int, sp<GraphicBuffer>> mBufferCache; + static constexpr float ALPHA = 0.8f; const half3 LOW_FPS_COLOR = half3(1.0f, 0.0f, 0.0f); const half3 HIGH_FPS_COLOR = half3(0.0f, 1.0f, 0.0f); - - const bool mShowSpinner; - - // Interpolate the colors between these values. - uint32_t mLowFps; - uint32_t mHighFps; }; } // namespace android |