diff options
author | Huan Song <huans@google.com> | 2021-05-03 17:40:19 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-05-03 17:40:19 +0000 |
commit | faab2f91aafd0504faaa056368245394f087a5d2 (patch) | |
tree | c461b5e58ec94a81e3c06e290d7fed175d46e7bc | |
parent | bd7332d179b714c38d1961687b9172bee129a2b1 (diff) | |
parent | 33f99373d8f9ca1b1507b9bcee5e0ff7a22577e5 (diff) | |
download | vulkan-cereal-faab2f91aafd0504faaa056368245394f087a5d2.tar.gz |
Add new rc command for multi display am: 33f99373d8
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1692654
Change-Id: Id4276a17388e91df421c92320db5eedcfa9ff9d0
-rw-r--r-- | protocols/renderControl/renderControl.in | 2 | ||||
-rw-r--r-- | stream-servers/FrameBuffer.cpp | 4 | ||||
-rw-r--r-- | stream-servers/FrameBuffer.h | 3 | ||||
-rw-r--r-- | stream-servers/RenderControl.cpp | 10 |
4 files changed, 17 insertions, 2 deletions
diff --git a/protocols/renderControl/renderControl.in b/protocols/renderControl/renderControl.in index 47c41c66..031dd0e3 100644 --- a/protocols/renderControl/renderControl.in +++ b/protocols/renderControl/renderControl.in @@ -60,4 +60,4 @@ GL_ENTRY(void, rcComposeAsync, uint32_t bufferSize, void *buffer); GL_ENTRY(void, rcDestroySyncKHRAsync, uint64_t sync); GL_ENTRY(GLint, rcComposeWithoutPost, uint32_t bufferSize, void *buffer); GL_ENTRY(void, rcComposeAsyncWithoutPost, uint32_t bufferSize, void *buffer); - +GL_ENTRY(int, rcCreateDisplayById, uint32_t displayId); diff --git a/stream-servers/FrameBuffer.cpp b/stream-servers/FrameBuffer.cpp index 00d4c03f..41f8ea3a 100644 --- a/stream-servers/FrameBuffer.cpp +++ b/stream-servers/FrameBuffer.cpp @@ -3184,6 +3184,10 @@ int FrameBuffer::createDisplay(uint32_t *displayId) { return emugl::get_emugl_multi_display_operations().createDisplay(displayId); } +int FrameBuffer::createDisplay(uint32_t displayId) { + return emugl::get_emugl_multi_display_operations().createDisplay(&displayId); +} + int FrameBuffer::destroyDisplay(uint32_t displayId) { return emugl::get_emugl_multi_display_operations().destroyDisplay(displayId); } diff --git a/stream-servers/FrameBuffer.h b/stream-servers/FrameBuffer.h index 08f4e4dc..88a7bcf1 100644 --- a/stream-servers/FrameBuffer.h +++ b/stream-servers/FrameBuffer.h @@ -542,7 +542,8 @@ class FrameBuffer { void registerProcessSequenceNumberForPuid(uint64_t puid); uint32_t* getProcessSequenceNumberPtr(uint64_t puid); - int createDisplay(uint32_t* displayId); + int createDisplay(uint32_t *displayId); + int createDisplay(uint32_t displayId); int destroyDisplay(uint32_t displayId); int setDisplayColorBuffer(uint32_t displayId, uint32_t colorBuffer); int getDisplayColorBuffer(uint32_t displayId, uint32_t* colorBuffer); diff --git a/stream-servers/RenderControl.cpp b/stream-servers/RenderControl.cpp index 8c6e2af2..3ef5cc3f 100644 --- a/stream-servers/RenderControl.cpp +++ b/stream-servers/RenderControl.cpp @@ -1274,6 +1274,15 @@ static int rcCreateDisplay(uint32_t* displayId) { return fb->createDisplay(displayId); } +static int rcCreateDisplayById(uint32_t displayId) { + FrameBuffer *fb = FrameBuffer::getFB(); + if (!fb) { + return -1; + } + + return fb->createDisplay(displayId); +} + static int rcDestroyDisplay(uint32_t displayId) { FrameBuffer *fb = FrameBuffer::getFB(); if (!fb) { @@ -1557,4 +1566,5 @@ void initRenderControlContext(renderControl_decoder_context_t *dec) dec->rcDestroySyncKHRAsync = rcDestroySyncKHRAsync; dec->rcComposeWithoutPost = rcComposeWithoutPost; dec->rcComposeAsyncWithoutPost = rcComposeAsyncWithoutPost; + dec->rcCreateDisplayById = rcCreateDisplayById; } |