Chromium Code Reviews

Unified Diff: webkit/glue/plugins/pepper_device_context_2d.cc

Issue 2925007: Update Chrome to pull latest PPAPI with new uses of point and size.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
« no previous file with comments | « webkit/glue/plugins/pepper_device_context_2d.h ('k') | webkit/glue/plugins/pepper_directory_reader.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/plugins/pepper_device_context_2d.cc
===================================================================
--- webkit/glue/plugins/pepper_device_context_2d.cc (revision 51996)
+++ webkit/glue/plugins/pepper_device_context_2d.cc (working copy)
@@ -62,14 +62,15 @@
return true;
}
-PP_Resource Create(PP_Module module_id, int32_t width, int32_t height,
+PP_Resource Create(PP_Module module_id,
+ const PP_Size* size,
bool is_always_opaque) {
PluginModule* module = PluginModule::FromPPModule(module_id);
if (!module)
return NULL;
scoped_refptr<DeviceContext2D> context(new DeviceContext2D(module));
- if (!context->Init(width, height, is_always_opaque))
+ if (!context->Init(size->width, size->height, is_always_opaque))
return NULL;
context->AddRef(); // AddRef for the caller.
return context->GetResource();
@@ -82,33 +83,34 @@
}
bool Describe(PP_Resource device_context,
- int32_t* width, int32_t* height, bool* is_always_opaque) {
+ PP_Size* size,
+ bool* is_always_opaque) {
scoped_refptr<DeviceContext2D> context(
Resource::GetAs<DeviceContext2D>(device_context));
if (!context.get())
return false;
- return context->Describe(width, height, is_always_opaque);
+ return context->Describe(size, is_always_opaque);
}
bool PaintImageData(PP_Resource device_context,
PP_Resource image,
- int32_t x, int32_t y,
+ const PP_Point* top_left,
const PP_Rect* src_rect) {
scoped_refptr<DeviceContext2D> context(
Resource::GetAs<DeviceContext2D>(device_context));
if (!context.get())
return false;
- return context->PaintImageData(image, x, y, src_rect);
+ return context->PaintImageData(image, top_left, src_rect);
}
bool Scroll(PP_Resource device_context,
const PP_Rect* clip_rect,
- int32_t dx, int32_t dy) {
+ const PP_Point* amount) {
scoped_refptr<DeviceContext2D> context(
Resource::GetAs<DeviceContext2D>(device_context));
if (!context.get())
return false;
- return context->Scroll(clip_rect, dx, dy);
+ return context->Scroll(clip_rect, amount);
}
bool ReplaceContents(PP_Resource device_context, PP_Resource image) {
@@ -124,7 +126,7 @@
scoped_refptr<DeviceContext2D> context(
Resource::GetAs<DeviceContext2D>(device_context));
if (!context.get())
- return PP_Error_BadResource;
+ return PP_ERROR_BADRESOURCE;
return context->Flush(callback);
}
@@ -197,17 +199,22 @@
return true;
}
-bool DeviceContext2D::Describe(int32_t* width, int32_t* height,
- bool* is_always_opaque) {
- *width = image_data_->width();
- *height = image_data_->height();
+bool DeviceContext2D::Describe(PP_Size* size, bool* is_always_opaque) {
+ if (!size || !is_always_opaque)
+ return false;
+
+ size->width = image_data_->width();
+ size->height = image_data_->height();
*is_always_opaque = false; // TODO(brettw) implement this.
return true;
}
bool DeviceContext2D::PaintImageData(PP_Resource image,
- int32_t x, int32_t y,
+ const PP_Point* top_left,
const PP_Rect* src_rect) {
+ if (!top_left)
+ return false;
+
scoped_refptr<ImageData> image_resource(Resource::GetAs<ImageData>(image));
if (!image_resource.get())
return false;
@@ -221,7 +228,8 @@
// Validate the bitmap position using the previously-validated rect, there
// should be no painted area outside of the image.
- int64 x64 = static_cast<int64>(x), y64 = static_cast<int64>(y);
+ int64 x64 = static_cast<int64>(top_left->x);
+ int64 y64 = static_cast<int64>(top_left->y);
if (x64 + static_cast<int64>(operation.paint_src_rect.x()) < 0 ||
x64 + static_cast<int64>(operation.paint_src_rect.right()) >
image_data_->width())
@@ -230,15 +238,17 @@
y64 + static_cast<int64>(operation.paint_src_rect.bottom()) >
image_data_->height())
return false;
- operation.paint_x = x;
- operation.paint_y = y;
+ operation.paint_x = top_left->x;
+ operation.paint_y = top_left->y;
queued_operations_.push_back(operation);
return true;
}
bool DeviceContext2D::Scroll(const PP_Rect* clip_rect,
- int32_t dx, int32_t dy) {
+ const PP_Point* amount) {
+ if (!amount)
+ return false;
QueuedOperation operation(QueuedOperation::SCROLL);
if (!ValidateAndConvertRect(clip_rect,
image_data_->width(),
@@ -248,6 +258,8 @@
// If we're being asked to scroll by more than the clip rect size, just
// ignore this scroll command and say it worked.
+ int32 dx = amount->x;
+ int32 dy = amount->y;
if (dx <= -image_data_->width() || dx >= image_data_->width() ||
dx <= -image_data_->height() || dy >= image_data_->height())
return true;
@@ -280,12 +292,12 @@
int32_t DeviceContext2D::Flush(const PP_CompletionCallback& callback) {
// Don't allow more than one pending flush at a time.
if (HasPendingFlush())
- return PP_Error_InProgress;
+ return PP_ERROR_INPROGRESS;
// TODO(brettw) check that the current thread is not the main one and
// implement blocking flushes in this case.
if (!callback.func)
- return PP_Error_BadArgument;
+ return PP_ERROR_BADARGUMENT;
gfx::Rect changed_rect;
for (size_t i = 0; i < queued_operations_.size(); i++) {
@@ -328,10 +340,11 @@
// execute in the next round of the message loop.
ScheduleOffscreenCallback(FlushCallbackData(callback));
}
- return PP_Error_WouldBlock;
+ return PP_ERROR_WOULDBLOCK;
}
-bool DeviceContext2D::ReadImageData(PP_Resource image, int32_t x, int32_t y) {
+bool DeviceContext2D::ReadImageData(PP_Resource image,
+ const PP_Point* top_left) {
// Get and validate the image object to paint into.
scoped_refptr<ImageData> image_resource(Resource::GetAs<ImageData>(image));
if (!image_resource.get())
@@ -340,10 +353,14 @@
return false; // Must be in the right format.
// Validate the bitmap position.
+ if (!top_left)
+ return false;
+ int x = top_left->x;
if (x < 0 ||
static_cast<int64>(x) + static_cast<int64>(image_resource->width()) >
image_data_->width())
return false;
+ int y = top_left->y;
if (y < 0 ||
static_cast<int64>(y) + static_cast<int64>(image_resource->height()) >
image_data_->height())
« no previous file with comments | « webkit/glue/plugins/pepper_device_context_2d.h ('k') | webkit/glue/plugins/pepper_directory_reader.cc » ('j') | no next file with comments »

Powered by Google App Engine