aboutsummaryrefslogtreecommitdiff
path: root/hwcomposer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hwcomposer.cpp')
-rw-r--r--hwcomposer.cpp160
1 files changed, 0 insertions, 160 deletions
diff --git a/hwcomposer.cpp b/hwcomposer.cpp
index 4bc4670..e0483e9 100644
--- a/hwcomposer.cpp
+++ b/hwcomposer.cpp
@@ -202,103 +202,6 @@ struct hwc_context_t {
DrmHotplugHandler hotplug_handler;
};
-static native_handle_t *dup_buffer_handle(buffer_handle_t handle) {
- native_handle_t *new_handle =
- native_handle_create(handle->numFds, handle->numInts);
- if (new_handle == NULL)
- return NULL;
-
- const int *old_data = handle->data;
- int *new_data = new_handle->data;
- for (int i = 0; i < handle->numFds; i++) {
- *new_data = dup(*old_data);
- old_data++;
- new_data++;
- }
- memcpy(new_data, old_data, sizeof(int) * handle->numInts);
-
- return new_handle;
-}
-
-static void free_buffer_handle(native_handle_t *handle) {
- int ret = native_handle_close(handle);
- if (ret)
- ALOGE("Failed to close native handle %d", ret);
- ret = native_handle_delete(handle);
- if (ret)
- ALOGE("Failed to delete native handle %d", ret);
-}
-
-const hwc_drm_bo *DrmHwcBuffer::operator->() const {
- if (importer_ == NULL) {
- ALOGE("Access of non-existent BO");
- exit(1);
- return NULL;
- }
- return &bo_;
-}
-
-void DrmHwcBuffer::Clear() {
- if (importer_ != NULL) {
- importer_->ReleaseBuffer(&bo_);
- importer_ = NULL;
- }
-}
-
-int DrmHwcBuffer::ImportBuffer(buffer_handle_t handle, Importer *importer) {
- hwc_drm_bo tmp_bo;
-
- int ret = importer->ImportBuffer(handle, &tmp_bo);
- if (ret)
- return ret;
-
- if (importer_ != NULL) {
- importer_->ReleaseBuffer(&bo_);
- }
-
- importer_ = importer;
-
- bo_ = tmp_bo;
-
- return 0;
-}
-
-int DrmHwcNativeHandle::CopyBufferHandle(buffer_handle_t handle,
- const gralloc_module_t *gralloc) {
- native_handle_t *handle_copy = dup_buffer_handle(handle);
- if (handle_copy == NULL) {
- ALOGE("Failed to duplicate handle");
- return -ENOMEM;
- }
-
- int ret = gralloc->registerBuffer(gralloc, handle_copy);
- if (ret) {
- ALOGE("Failed to register buffer handle %d", ret);
- free_buffer_handle(handle_copy);
- return ret;
- }
-
- Clear();
-
- gralloc_ = gralloc;
- handle_ = handle_copy;
-
- return 0;
-}
-
-DrmHwcNativeHandle::~DrmHwcNativeHandle() {
- Clear();
-}
-
-void DrmHwcNativeHandle::Clear() {
- if (gralloc_ != NULL && handle_ != NULL) {
- gralloc_->unregisterBuffer(gralloc_, handle_);
- free_buffer_handle(handle_);
- gralloc_ = NULL;
- handle_ = NULL;
- }
-}
-
class DrmVsyncCallback : public VsyncCallback {
public:
DrmVsyncCallback(hwc_procs_t const *procs) : procs_(procs) {
@@ -311,69 +214,6 @@ class DrmVsyncCallback : public VsyncCallback {
hwc_procs_t const *procs_;
};
-int DrmHwcLayer::InitFromHwcLayer(hwc_layer_1_t *sf_layer, Importer *importer,
- const gralloc_module_t *gralloc) {
- sf_handle = sf_layer->handle;
- alpha = sf_layer->planeAlpha;
-
- source_crop = DrmHwcRect<float>(
- sf_layer->sourceCropf.left, sf_layer->sourceCropf.top,
- sf_layer->sourceCropf.right, sf_layer->sourceCropf.bottom);
- display_frame = DrmHwcRect<int>(
- sf_layer->displayFrame.left, sf_layer->displayFrame.top,
- sf_layer->displayFrame.right, sf_layer->displayFrame.bottom);
-
- transform = 0;
- // 270* and 180* cannot be combined with flips. More specifically, they
- // already contain both horizontal and vertical flips, so those fields are
- // redundant in this case. 90* rotation can be combined with either horizontal
- // flip or vertical flip, so treat it differently
- if (sf_layer->transform == HWC_TRANSFORM_ROT_270) {
- transform = DrmHwcTransform::kRotate270;
- } else if (sf_layer->transform == HWC_TRANSFORM_ROT_180) {
- transform = DrmHwcTransform::kRotate180;
- } else {
- if (sf_layer->transform & HWC_TRANSFORM_FLIP_H)
- transform |= DrmHwcTransform::kFlipH;
- if (sf_layer->transform & HWC_TRANSFORM_FLIP_V)
- transform |= DrmHwcTransform::kFlipV;
- if (sf_layer->transform & HWC_TRANSFORM_ROT_90)
- transform |= DrmHwcTransform::kRotate90;
- }
-
- switch (sf_layer->blending) {
- case HWC_BLENDING_NONE:
- blending = DrmHwcBlending::kNone;
- break;
- case HWC_BLENDING_PREMULT:
- blending = DrmHwcBlending::kPreMult;
- break;
- case HWC_BLENDING_COVERAGE:
- blending = DrmHwcBlending::kCoverage;
- break;
- default:
- ALOGE("Invalid blending in hwc_layer_1_t %d", sf_layer->blending);
- return -EINVAL;
- }
-
- int ret = buffer.ImportBuffer(sf_layer->handle, importer);
- if (ret)
- return ret;
-
- ret = handle.CopyBufferHandle(sf_layer->handle, gralloc);
- if (ret)
- return ret;
-
- ret = gralloc->perform(gralloc, GRALLOC_MODULE_PERFORM_GET_USAGE,
- handle.get(), &gralloc_buffer_usage);
- if (ret) {
- ALOGE("Failed to get usage for buffer %p (%d)", handle.get(), ret);
- return ret;
- }
-
- return 0;
-}
-
static void hwc_dump(struct hwc_composer_device_1 *dev, char *buff,
int buff_len) {
struct hwc_context_t *ctx = (struct hwc_context_t *)&dev->common;