summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/RefreshRateOverlay.h
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/RefreshRateOverlay.h')
-rw-r--r--services/surfaceflinger/RefreshRateOverlay.h35
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