X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;ds=sidebyside;f=libs%2Fvr%2Flibdvr%2Finclude%2Fdvr%2Fdvr_api.h;h=8f45ce7e404a1ebe4b8ad8743c13007026665261;hb=638b7f747df50374d1e91c2496da41f293394e19;hp=ceb6cf2e814f414b693a2143cb35a603ad14f590;hpb=fb8eff13e955b393ee5b023e22170ef6fbc3192f;p=android-x86%2Fframeworks-native.git diff --git a/libs/vr/libdvr/include/dvr/dvr_api.h b/libs/vr/libdvr/include/dvr/dvr_api.h index ceb6cf2e81..8f45ce7e40 100644 --- a/libs/vr/libdvr/include/dvr/dvr_api.h +++ b/libs/vr/libdvr/include/dvr/dvr_api.h @@ -23,6 +23,7 @@ typedef uint64_t DvrSurfaceUpdateFlags; typedef struct DvrDisplayManager DvrDisplayManager; typedef struct DvrSurfaceState DvrSurfaceState; typedef struct DvrPoseClient DvrPoseClient; +typedef struct DvrPoseDataCaptureRequest DvrPoseDataCaptureRequest; typedef struct DvrVSyncClient DvrVSyncClient; typedef struct DvrVirtualTouchpad DvrVirtualTouchpad; @@ -33,6 +34,7 @@ typedef struct AHardwareBuffer AHardwareBuffer; typedef struct DvrReadBufferQueue DvrReadBufferQueue; typedef struct DvrWriteBufferQueue DvrWriteBufferQueue; +typedef struct DvrNativeBufferMetadata DvrNativeBufferMetadata; typedef struct DvrSurface DvrSurface; typedef uint64_t DvrSurfaceAttributeType; @@ -159,24 +161,40 @@ typedef const struct native_handle* (*DvrBufferGetNativeHandlePtr)( DvrBuffer* buffer); // dvr_buffer_queue.h +typedef int (*DvrWriteBufferQueueCreatePtr)(uint32_t width, uint32_t height, + uint32_t format, + uint32_t layer_count, + uint64_t usage, size_t capacity, + size_t metadata_size, + DvrWriteBufferQueue** queue_out); typedef void (*DvrWriteBufferQueueDestroyPtr)(DvrWriteBufferQueue* write_queue); typedef ssize_t (*DvrWriteBufferQueueGetCapacityPtr)( DvrWriteBufferQueue* write_queue); typedef int (*DvrWriteBufferQueueGetIdPtr)(DvrWriteBufferQueue* write_queue); typedef int (*DvrWriteBufferQueueGetExternalSurfacePtr)( DvrWriteBufferQueue* write_queue, ANativeWindow** out_window); +typedef int (*DvrWriteBufferQueueGetANativeWindowPtr)( + DvrWriteBufferQueue* write_queue, ANativeWindow** out_window); typedef int (*DvrWriteBufferQueueCreateReadQueuePtr)( DvrWriteBufferQueue* write_queue, DvrReadBufferQueue** out_read_queue); typedef int (*DvrWriteBufferQueueDequeuePtr)(DvrWriteBufferQueue* write_queue, int timeout, DvrWriteBuffer* out_buffer, int* out_fence_fd); +typedef int (*DvrWriteBufferQueueGainBufferPtr)( + DvrWriteBufferQueue* write_queue, int timeout, + DvrWriteBuffer** out_write_buffer, DvrNativeBufferMetadata* out_meta, + int* out_fence_fd); +typedef int (*DvrWriteBufferQueuePostBufferPtr)( + DvrWriteBufferQueue* write_queue, DvrWriteBuffer* write_buffer, + const DvrNativeBufferMetadata* meta, int ready_fence_fd); typedef int (*DvrWriteBufferQueueResizeBufferPtr)( DvrWriteBufferQueue* write_queue, uint32_t width, uint32_t height); typedef void (*DvrReadBufferQueueDestroyPtr)(DvrReadBufferQueue* read_queue); typedef ssize_t (*DvrReadBufferQueueGetCapacityPtr)( DvrReadBufferQueue* read_queue); typedef int (*DvrReadBufferQueueGetIdPtr)(DvrReadBufferQueue* read_queue); +typedef int (*DvrReadBufferQueueGetEventFdPtr)(DvrReadBufferQueue* read_queue); typedef int (*DvrReadBufferQueueCreateReadQueuePtr)( DvrReadBufferQueue* read_queue, DvrReadBufferQueue** out_read_queue); typedef int (*DvrReadBufferQueueDequeuePtr)(DvrReadBufferQueue* read_queue, @@ -184,6 +202,13 @@ typedef int (*DvrReadBufferQueueDequeuePtr)(DvrReadBufferQueue* read_queue, DvrReadBuffer* out_buffer, int* out_fence_fd, void* out_meta, size_t meta_size_bytes); +typedef int (*DvrReadBufferQueueAcquireBufferPtr)( + DvrReadBufferQueue* read_queue, int timeout, + DvrReadBuffer** out_read_buffer, DvrNativeBufferMetadata* out_meta, + int* out_fence_fd); +typedef int (*DvrReadBufferQueueReleaseBufferPtr)( + DvrReadBufferQueue* read_queue, DvrReadBuffer* read_buffer, + const DvrNativeBufferMetadata* meta, int release_fence_fd); typedef void (*DvrReadBufferQueueBufferAvailableCallback)(void* context); typedef int (*DvrReadBufferQueueSetBufferAvailableCallbackPtr)( DvrReadBufferQueue* read_queue, @@ -237,6 +262,15 @@ typedef int (*DvrPoseClientGetControllerPtr)(DvrPoseClient* client, DvrPoseAsync* out_pose); typedef int (*DvrPoseClientSensorsEnablePtr)(DvrPoseClient* client, bool enabled); +typedef int (*DvrPoseClientDataCapturePtr)(DvrPoseClient* client, + const DvrPoseDataCaptureRequest* request); +typedef int (*DvrPoseClientDataReaderDestroyPtr)(DvrPoseClient* client, + uint64_t data_type); + +// dvr_pose.h +typedef int (*DvrPoseClientGetDataReaderPtr)(DvrPoseClient* client, + uint64_t data_type, + DvrReadBufferQueue** read_queue); // services/vr/virtual_touchpad/include/dvr/virtual_touchpad_client.h