diff options
Diffstat (limited to 'libs/hwui/renderthread/RenderProxy.h')
-rw-r--r-- | libs/hwui/renderthread/RenderProxy.h | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h index 06eaebd066ee..3425c5c68a72 100644 --- a/libs/hwui/renderthread/RenderProxy.h +++ b/libs/hwui/renderthread/RenderProxy.h @@ -17,22 +17,16 @@ #ifndef RENDERPROXY_H_ #define RENDERPROXY_H_ -#include "RenderTask.h" - -#include <cutils/compiler.h> -#include <EGL/egl.h> #include <SkBitmap.h> -#include <utils/Condition.h> +#include <cutils/compiler.h> +#include <gui/Surface.h> #include <utils/Functor.h> -#include <utils/Mutex.h> -#include <utils/Timers.h> -#include <utils/StrongPointer.h> -#include "../Caches.h" #include "../FrameMetricsObserver.h" #include "../IContextFactory.h" -#include "CanvasContext.h" #include "DrawFrameTask.h" +#include "SwapBehavior.h" +#include "hwui/Bitmap.h" namespace android { class GraphicBuffer; @@ -41,22 +35,20 @@ namespace uirenderer { class DeferredLayerUpdater; class RenderNode; -class DisplayList; -class Layer; class Rect; namespace renderthread { -class ErrorChannel; +class CanvasContext; class RenderThread; class RenderProxyBridge; namespace DumpFlags { - enum { - FrameStats = 1 << 0, - Reset = 1 << 1, - JankStats = 1 << 2, - }; +enum { + FrameStats = 1 << 0, + Reset = 1 << 1, + JankStats = 1 << 2, +}; }; /* @@ -81,8 +73,7 @@ public: ANDROID_API void updateSurface(const sp<Surface>& surface); ANDROID_API bool pauseSurface(const sp<Surface>& surface); ANDROID_API void setStopped(bool stopped); - ANDROID_API void setup(float lightRadius, - uint8_t ambientShadowAlpha, uint8_t spotShadowAlpha); + ANDROID_API void setup(float lightRadius, uint8_t ambientShadowAlpha, uint8_t spotShadowAlpha); ANDROID_API void setLightCenter(const Vector3& lightCenter); ANDROID_API void setOpaque(bool opaque); ANDROID_API void setWideGamut(bool wideGamut); @@ -124,13 +115,14 @@ public: ANDROID_API void removeRenderNode(RenderNode* node); ANDROID_API void drawRenderNode(RenderNode* node); ANDROID_API void setContentDrawBounds(int left, int top, int right, int bottom); + ANDROID_API void setFrameCallback(std::function<void(int64_t)>&& callback); ANDROID_API void addFrameMetricsObserver(FrameMetricsObserver* observer); ANDROID_API void removeFrameMetricsObserver(FrameMetricsObserver* observer); ANDROID_API long getDroppedFrameReportCount(); - ANDROID_API static int copySurfaceInto(sp<Surface>& surface, - int left, int top, int right, int bottom, SkBitmap* bitmap); + ANDROID_API static int copySurfaceInto(sp<Surface>& surface, int left, int top, int right, + int bottom, SkBitmap* bitmap); ANDROID_API static void prepareToDraw(Bitmap& bitmap); static sk_sp<Bitmap> allocateHardwareBitmap(SkBitmap& bitmap); @@ -143,22 +135,16 @@ public: static void repackVectorDrawableAtlas(); + static void releaseVDAtlasEntries(); + private: RenderThread& mRenderThread; CanvasContext* mContext; DrawFrameTask mDrawFrameTask; - Mutex mSyncMutex; - Condition mSyncCondition; - void destroyContext(); - void post(RenderTask* task); - void* postAndWait(MethodInvokeRenderTask* task); - - static void* staticPostAndWait(MethodInvokeRenderTask* task); - // Friend class to help with bridging friend class RenderProxyBridge; }; |