Loading libs/vr/libvrflinger/display_service.cpp +8 −10 Original line number Diff line number Diff line Loading @@ -243,18 +243,16 @@ Status<display::SurfaceInfo> DisplayService::OnCreateSurface( surface_status.GetErrorMessage().c_str()); return ErrorStatus(surface_status.error()); } auto surface = surface_status.take(); message.SetChannel(surface); SurfaceType surface_type = surface_status.get()->surface_type(); display::SurfaceUpdateFlags update_flags = surface_status.get()->update_flags(); display::SurfaceInfo surface_info{surface_status.get()->surface_id(), surface_status.get()->visible(), surface_status.get()->z_order()}; // Update the surface with the attributes supplied with the create call. For // application surfaces this has the side effect of notifying the display // manager of the new surface. For direct surfaces, this may trigger a mode // change, depending on the value of the visible attribute. surface->OnSetAttributes(message, attributes); message.SetChannel(surface_status.take()); SurfaceUpdated(surface_type, update_flags); return {surface_info}; return {{surface->surface_id(), surface->visible(), surface->z_order()}}; } void DisplayService::SurfaceUpdated(SurfaceType surface_type, Loading libs/vr/libvrflinger/display_surface.cpp +4 −6 Original line number Diff line number Diff line Loading @@ -26,14 +26,12 @@ namespace dvr { DisplaySurface::DisplaySurface(DisplayService* service, SurfaceType surface_type, int surface_id, int process_id, int user_id, const display::SurfaceAttributes& attributes) int process_id, int user_id) : service_(service), surface_type_(surface_type), surface_id_(surface_id), process_id_(process_id), user_id_(user_id), attributes_(attributes), update_flags_(display::SurfaceUpdateFlags::NewSurface) {} DisplaySurface::~DisplaySurface() { Loading Loading @@ -471,8 +469,8 @@ Status<std::shared_ptr<DisplaySurface>> DisplaySurface::Create( if (direct) { const bool trusted = user_id == AID_ROOT || IsTrustedUid(user_id); if (trusted) { return {std::shared_ptr<DisplaySurface>{new DirectDisplaySurface( service, surface_id, process_id, user_id, attributes)}}; return {std::shared_ptr<DisplaySurface>{ new DirectDisplaySurface(service, surface_id, process_id, user_id)}}; } else { ALOGE( "DisplaySurface::Create: Direct surfaces may only be created by " Loading @@ -482,7 +480,7 @@ Status<std::shared_ptr<DisplaySurface>> DisplaySurface::Create( } } else { return {std::shared_ptr<DisplaySurface>{new ApplicationDisplaySurface( service, surface_id, process_id, user_id, attributes)}}; service, surface_id, process_id, user_id)}}; } } Loading libs/vr/libvrflinger/display_surface.h +6 −9 Original line number Diff line number Diff line Loading @@ -53,8 +53,7 @@ class DisplaySurface : public pdx::Channel { protected: DisplaySurface(DisplayService* service, SurfaceType surface_type, int surface_id, int process_id, int user_id, const display::SurfaceAttributes& attributes); int surface_id, int process_id, int user_id); // Utility to retrieve a shared pointer to this channel as the desired derived // type. Loading Loading @@ -119,10 +118,9 @@ class DisplaySurface : public pdx::Channel { class ApplicationDisplaySurface : public DisplaySurface { public: ApplicationDisplaySurface(DisplayService* service, int surface_id, int process_id, int user_id, const display::SurfaceAttributes& attributes) int process_id, int user_id) : DisplaySurface(service, SurfaceType::Application, surface_id, process_id, user_id, attributes) {} process_id, user_id) {} std::shared_ptr<ConsumerQueue> GetQueue(int32_t queue_id); std::vector<int32_t> GetQueueIds() const override; Loading @@ -140,10 +138,9 @@ class ApplicationDisplaySurface : public DisplaySurface { class DirectDisplaySurface : public DisplaySurface { public: DirectDisplaySurface(DisplayService* service, int surface_id, int process_id, int user_id, const display::SurfaceAttributes& attributes) int user_id) : DisplaySurface(service, SurfaceType::Direct, surface_id, process_id, user_id, attributes), user_id), acquired_buffers_(kMaxPostedBuffers), metadata_(nullptr) {} std::vector<int32_t> GetQueueIds() const override; Loading Loading
libs/vr/libvrflinger/display_service.cpp +8 −10 Original line number Diff line number Diff line Loading @@ -243,18 +243,16 @@ Status<display::SurfaceInfo> DisplayService::OnCreateSurface( surface_status.GetErrorMessage().c_str()); return ErrorStatus(surface_status.error()); } auto surface = surface_status.take(); message.SetChannel(surface); SurfaceType surface_type = surface_status.get()->surface_type(); display::SurfaceUpdateFlags update_flags = surface_status.get()->update_flags(); display::SurfaceInfo surface_info{surface_status.get()->surface_id(), surface_status.get()->visible(), surface_status.get()->z_order()}; // Update the surface with the attributes supplied with the create call. For // application surfaces this has the side effect of notifying the display // manager of the new surface. For direct surfaces, this may trigger a mode // change, depending on the value of the visible attribute. surface->OnSetAttributes(message, attributes); message.SetChannel(surface_status.take()); SurfaceUpdated(surface_type, update_flags); return {surface_info}; return {{surface->surface_id(), surface->visible(), surface->z_order()}}; } void DisplayService::SurfaceUpdated(SurfaceType surface_type, Loading
libs/vr/libvrflinger/display_surface.cpp +4 −6 Original line number Diff line number Diff line Loading @@ -26,14 +26,12 @@ namespace dvr { DisplaySurface::DisplaySurface(DisplayService* service, SurfaceType surface_type, int surface_id, int process_id, int user_id, const display::SurfaceAttributes& attributes) int process_id, int user_id) : service_(service), surface_type_(surface_type), surface_id_(surface_id), process_id_(process_id), user_id_(user_id), attributes_(attributes), update_flags_(display::SurfaceUpdateFlags::NewSurface) {} DisplaySurface::~DisplaySurface() { Loading Loading @@ -471,8 +469,8 @@ Status<std::shared_ptr<DisplaySurface>> DisplaySurface::Create( if (direct) { const bool trusted = user_id == AID_ROOT || IsTrustedUid(user_id); if (trusted) { return {std::shared_ptr<DisplaySurface>{new DirectDisplaySurface( service, surface_id, process_id, user_id, attributes)}}; return {std::shared_ptr<DisplaySurface>{ new DirectDisplaySurface(service, surface_id, process_id, user_id)}}; } else { ALOGE( "DisplaySurface::Create: Direct surfaces may only be created by " Loading @@ -482,7 +480,7 @@ Status<std::shared_ptr<DisplaySurface>> DisplaySurface::Create( } } else { return {std::shared_ptr<DisplaySurface>{new ApplicationDisplaySurface( service, surface_id, process_id, user_id, attributes)}}; service, surface_id, process_id, user_id)}}; } } Loading
libs/vr/libvrflinger/display_surface.h +6 −9 Original line number Diff line number Diff line Loading @@ -53,8 +53,7 @@ class DisplaySurface : public pdx::Channel { protected: DisplaySurface(DisplayService* service, SurfaceType surface_type, int surface_id, int process_id, int user_id, const display::SurfaceAttributes& attributes); int surface_id, int process_id, int user_id); // Utility to retrieve a shared pointer to this channel as the desired derived // type. Loading Loading @@ -119,10 +118,9 @@ class DisplaySurface : public pdx::Channel { class ApplicationDisplaySurface : public DisplaySurface { public: ApplicationDisplaySurface(DisplayService* service, int surface_id, int process_id, int user_id, const display::SurfaceAttributes& attributes) int process_id, int user_id) : DisplaySurface(service, SurfaceType::Application, surface_id, process_id, user_id, attributes) {} process_id, user_id) {} std::shared_ptr<ConsumerQueue> GetQueue(int32_t queue_id); std::vector<int32_t> GetQueueIds() const override; Loading @@ -140,10 +138,9 @@ class ApplicationDisplaySurface : public DisplaySurface { class DirectDisplaySurface : public DisplaySurface { public: DirectDisplaySurface(DisplayService* service, int surface_id, int process_id, int user_id, const display::SurfaceAttributes& attributes) int user_id) : DisplaySurface(service, SurfaceType::Direct, surface_id, process_id, user_id, attributes), user_id), acquired_buffers_(kMaxPostedBuffers), metadata_(nullptr) {} std::vector<int32_t> GetQueueIds() const override; Loading