Update buffer dimensions with new dimension
Add case GRALLOC_MODULE_PERFORM_UPDATE_BUFFER_GEOMETRY in
gralloc_perform function to update the new buffer dimensions.
Change-Id: I7a855dc017dd042dda2abdc28c51ce5ec919fceb
diff --git a/libgralloc/gralloc_priv.h b/libgralloc/gralloc_priv.h
index 59fbd30..1d4c3c7 100644
--- a/libgralloc/gralloc_priv.h
+++ b/libgralloc/gralloc_priv.h
@@ -81,7 +81,8 @@
enum {
/* Gralloc perform enums
*/
- GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER = 0x080000001,
+ GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER =
+ GRALLOC_MODULE_PERFORM_PRIVATE_START,
};
#define GRALLOC_HEAP_MASK (GRALLOC_USAGE_PRIVATE_UI_CONTIG_HEAP |\
diff --git a/libgralloc/mapper.cpp b/libgralloc/mapper.cpp
index 3088ecc..bd122dc 100644
--- a/libgralloc/mapper.cpp
+++ b/libgralloc/mapper.cpp
@@ -329,6 +329,21 @@
break;
}
+ case GRALLOC_MODULE_PERFORM_UPDATE_BUFFER_GEOMETRY:
+ {
+ int width = va_arg(args, int);
+ int height = va_arg(args, int);
+ int format = va_arg(args, int);
+ private_handle_t* hnd = va_arg(args, private_handle_t*);
+ if (private_handle_t::validate(hnd)) {
+ return res;
+ }
+ hnd->width = width;
+ hnd->height = height;
+ hnd->format = format;
+ res = 0;
+ }
+ break;
default:
break;
}