Index: ppapi/example/example.cc |
diff --git a/ppapi/example/example.cc b/ppapi/example/example.cc |
index 6ba79839e7121d87c1094c3f3d08e8bd0da63f3b..2b5ab7629c8fb32c3c264fce66f4a0dc1bd68504 100644 |
--- a/ppapi/example/example.cc |
+++ b/ppapi/example/example.cc |
@@ -31,8 +31,6 @@ |
#include "ppapi/cpp/url_loader.h" |
#include "ppapi/cpp/url_request_info.h" |
#include "ppapi/cpp/var.h" |
-#include "ppapi/cpp/view.h" |
-#include "ppapi/utility/completion_callback_factory.h" |
static const int kStepsPerCircle = 800; |
@@ -99,10 +97,10 @@ class MyFetcher { |
callback_factory_.Initialize(this); |
} |
- void Start(pp::InstancePrivate& instance, |
+ void Start(const pp::InstancePrivate& instance, |
const pp::Var& url, |
MyFetcherClient* client) { |
- pp::URLRequestInfo request(&instance); |
+ pp::URLRequestInfo request; |
request.SetURL(url); |
request.SetMethod("GET"); |
@@ -168,11 +166,11 @@ class MyInstance : public pp::InstancePrivate, public MyFetcherClient { |
: pp::InstancePrivate(instance), |
time_at_last_check_(0.0), |
fetcher_(NULL), |
+ width_(0), |
+ height_(0), |
animation_counter_(0), |
print_settings_valid_(false), |
- showing_custom_cursor_(false), |
- cursor_dimension_(50), |
- expanding_cursor_(false) { |
+ showing_custom_cursor_(false) { |
RequestInputEvents(PP_INPUTEVENT_CLASS_MOUSE); |
} |
@@ -220,10 +218,11 @@ class MyInstance : public pp::InstancePrivate, public MyFetcherClient { |
return pp::VarPrivate(this, new MyScriptableObject(this)); |
} |
- pp::ImageData PaintImage(const pp::Size& size) { |
- pp::ImageData image(this, PP_IMAGEDATAFORMAT_BGRA_PREMUL, size, false); |
+ pp::ImageData PaintImage(int width, int height) { |
+ pp::ImageData image(this, PP_IMAGEDATAFORMAT_BGRA_PREMUL, |
+ pp::Size(width, height), false); |
if (image.is_null()) { |
- printf("Couldn't allocate the image data."); |
+ printf("Couldn't allocate the image data: %d, %d\n", width, height); |
return image; |
} |
@@ -242,8 +241,7 @@ class MyInstance : public pp::InstancePrivate, public MyFetcherClient { |
float radians = static_cast<float>(animation_counter_) / kStepsPerCircle * |
2 * 3.14159265358979F; |
- float radius = |
- static_cast<float>(std::min(size.width(), size.height())) / 2.0f - 3.0f; |
+ float radius = static_cast<float>(std::min(width, height)) / 2.0f - 3.0f; |
int x = static_cast<int>(cos(radians) * radius + radius + 2); |
int y = static_cast<int>(sin(radians) * radius + radius + 2); |
@@ -253,25 +251,27 @@ class MyInstance : public pp::InstancePrivate, public MyFetcherClient { |
} |
void Paint() { |
- pp::ImageData image = PaintImage(device_context_.size()); |
+ pp::ImageData image = PaintImage(width_, height_); |
if (!image.is_null()) { |
device_context_.ReplaceContents(&image); |
device_context_.Flush(pp::CompletionCallback(&FlushCallback, this)); |
} else { |
- printf("NullImage\n"); |
+ printf("NullImage: %d, %d\n", width_, height_); |
} |
} |
- virtual void DidChangeView(const pp::View& view) { |
+ virtual void DidChangeView(const pp::Rect& position, const pp::Rect& clip) { |
Log(PP_LOGLEVEL_LOG, "DidChangeView"); |
- if (view.GetRect().size() == current_view_.GetRect().size()) |
+ if (position.size().width() == width_ && |
+ position.size().height() == height_) |
return; // We don't care about the position, only the size. |
- current_view_ = view; |
+ width_ = position.size().width(); |
+ height_ = position.size().height(); |
printf("DidChangeView relevant change: width=%d height:%d\n", |
- view.GetRect().width(), view.GetRect().height()); |
+ width_, height_); |
- device_context_ = pp::Graphics2D(this, view.GetRect().size(), false); |
+ device_context_ = pp::Graphics2D(this, pp::Size(width_, height_), false); |
if (!BindGraphics(device_context_)) { |
printf("Couldn't bind the device context\n"); |
return; |
@@ -328,8 +328,16 @@ int gettimeofday(struct timeval *tv, struct timezone*) { |
} |
// Print interfaces. |
- virtual uint32_t QuerySupportedPrintOutputFormats() { |
- return PP_PRINTOUTPUTFORMAT_RASTER; |
+ // TODO(mball,dmichael) Replace this with the PPP_PRINTING_DEV_USE_0_4 version |
+ virtual PP_PrintOutputFormat_Dev* QuerySupportedPrintOutputFormats( |
+ uint32_t* format_count) { |
+ pp::Memory_Dev memory; |
+ PP_PrintOutputFormat_Dev* format = |
+ static_cast<PP_PrintOutputFormat_Dev*>( |
+ memory.MemAlloc(sizeof(PP_PrintOutputFormat_Dev))); |
+ *format = PP_PRINTOUTPUTFORMAT_RASTER; |
+ *format_count = 1; |
+ return format; |
} |
virtual int32_t PrintBegin(const PP_PrintSettings_Dev& print_settings) { |
@@ -356,30 +364,25 @@ int gettimeofday(struct timeval *tv, struct timezone*) { |
return pp::Resource(); |
} |
- pp::Size size(static_cast<int>( |
- (print_settings_.printable_area.size.width / 72.0) * |
- print_settings_.dpi), |
- static_cast<int>( |
- (print_settings_.printable_area.size.height / 72.0) * |
- print_settings_.dpi)); |
- return PaintImage(size); |
+ int width = static_cast<int>( |
+ (print_settings_.printable_area.size.width / 72.0) * |
+ print_settings_.dpi); |
+ int height = static_cast<int>( |
+ (print_settings_.printable_area.size.height / 72.0) * |
+ print_settings_.dpi); |
+ |
+ return PaintImage(width, height); |
} |
virtual void PrintEnd() { |
print_settings_valid_ = false; |
} |
- virtual bool IsScalingDisabled() { |
- return false; |
- } |
- |
void OnFlush() { |
if (animation_counter_ % kStepsPerCircle == 0) |
UpdateFps(); |
animation_counter_++; |
Paint(); |
- if (showing_custom_cursor_) |
- SetCursor(); |
} |
private: |
@@ -427,11 +430,6 @@ int gettimeofday(struct timeval *tv, struct timezone*) { |
} |
void ToggleCursor() { |
- showing_custom_cursor_ = !showing_custom_cursor_; |
- SetCursor(); |
- } |
- |
- void SetCursor() { |
const PPB_CursorControl_Dev* cursor_control = |
reinterpret_cast<const PPB_CursorControl_Dev*>( |
pp::Module::Get()->GetBrowserInterface( |
@@ -439,26 +437,20 @@ int gettimeofday(struct timeval *tv, struct timezone*) { |
if (!cursor_control) |
return; |
- if (!showing_custom_cursor_) { |
+ if (showing_custom_cursor_) { |
cursor_control->SetCursor(pp_instance(), PP_CURSORTYPE_POINTER, 0, NULL); |
} else { |
pp::ImageData image_data(this, pp::ImageData::GetNativeImageDataFormat(), |
- pp::Size(cursor_dimension_, cursor_dimension_), |
- false); |
- FillRect(&image_data, 0, 0, cursor_dimension_, cursor_dimension_, |
+ pp::Size(50, 50), false); |
+ FillRect(&image_data, 0, 0, 50, 50, |
image_data.format() == PP_IMAGEDATAFORMAT_BGRA_PREMUL ? |
0x80800000 : 0x80000080); |
- pp::Point hot_spot(cursor_dimension_ / 2, cursor_dimension_ / 2); |
+ pp::Point hot_spot(0, 0); |
cursor_control->SetCursor(pp_instance(), PP_CURSORTYPE_CUSTOM, |
image_data.pp_resource(), &hot_spot.pp_point()); |
- if (expanding_cursor_) { |
- if (++cursor_dimension_ >= 50) |
- expanding_cursor_ = false; |
- } else { |
- if (--cursor_dimension_ <= 5) |
- expanding_cursor_ = true; |
- } |
} |
+ |
+ showing_custom_cursor_ = !showing_custom_cursor_; |
} |
pp::Var console_; |
@@ -466,18 +458,17 @@ int gettimeofday(struct timeval *tv, struct timezone*) { |
double time_at_last_check_; |
- pp::View current_view_; |
- |
MyFetcher* fetcher_; |
+ int width_; |
+ int height_; |
+ |
// Incremented for each flush we get. |
int animation_counter_; |
bool print_settings_valid_; |
PP_PrintSettings_Dev print_settings_; |
bool showing_custom_cursor_; |
- int cursor_dimension_; |
- bool expanding_cursor_; |
}; |
void FlushCallback(void* data, int32_t result) { |