vi: Parse IGBPQueueBufferRequestParcel params and expose buffer flip vertical.

This commit is contained in:
bunnei
2018-02-11 19:03:31 -05:00
parent 068744db1b
commit 6fce1414c3
6 changed files with 46 additions and 11 deletions

View File

@ -3,7 +3,7 @@
// Refer to the license.txt file included.
#include <algorithm>
#include <array>
#include "common/alignment.h"
#include "common/scope_exit.h"
#include "core/core_timing.h"
@ -325,13 +325,29 @@ public:
data = Read<Data>();
}
struct Fence {
u32_le id;
u32_le value;
};
static_assert(sizeof(Fence) == 8, "Fence has wrong size");
struct Data {
u32_le slot;
INSERT_PADDING_WORDS(2);
INSERT_PADDING_WORDS(3);
u32_le timestamp;
INSERT_PADDING_WORDS(20);
s32_le is_auto_timestamp;
s32_le crop_left;
s32_le crop_top;
s32_le crop_right;
s32_le crop_bottom;
s32_le scaling_mode;
NVFlinger::BufferQueue::BufferTransformFlags transform;
u32_le sticky_transform;
INSERT_PADDING_WORDS(2);
u32_le fence_is_valid;
std::array<Fence, 2> fences;
};
static_assert(sizeof(Data) == 96, "ParcelData has wrong size");
static_assert(sizeof(Data) == 80, "ParcelData has wrong size");
Data data;
};
@ -456,7 +472,7 @@ private:
} else if (transaction == TransactionId::QueueBuffer) {
IGBPQueueBufferRequestParcel request{input_data};
buffer_queue->QueueBuffer(request.data.slot);
buffer_queue->QueueBuffer(request.data.slot, request.data.transform);
IGBPQueueBufferResponseParcel response{1280, 720};
response_buffer = response.Serialize();