Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1001)

Side by Side Diff: webkit/plugins/npapi/webplugin_delegate_impl_mac.mm

Issue 6823081: Add Skia to CG adapter for plugins. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 #import <QuartzCore/QuartzCore.h> 6 #import <QuartzCore/QuartzCore.h>
7 7
8 #include "webkit/plugins/npapi/webplugin_delegate_impl.h" 8 #include "webkit/plugins/npapi/webplugin_delegate_impl.h"
9 9
10 #include <string> 10 #include <string>
(...skipping 19 matching lines...) Expand all
30 #include "webkit/plugins/npapi/webplugin_accelerated_surface_mac.h" 30 #include "webkit/plugins/npapi/webplugin_accelerated_surface_mac.h"
31 31
32 #ifndef NP_NO_CARBON 32 #ifndef NP_NO_CARBON
33 #include "webkit/plugins/npapi/carbon_plugin_window_tracker_mac.h" 33 #include "webkit/plugins/npapi/carbon_plugin_window_tracker_mac.h"
34 #endif 34 #endif
35 35
36 #ifndef NP_NO_QUICKDRAW 36 #ifndef NP_NO_QUICKDRAW
37 #include "webkit/plugins/npapi/quickdraw_drawing_manager_mac.h" 37 #include "webkit/plugins/npapi/quickdraw_drawing_manager_mac.h"
38 #endif 38 #endif
39 39
40 #if defined(USE_SKIA)
41 #include "skia/ext/platform_canvas.h"
42 #include "skia/ext/skia_utils_mac.h"
43 #endif
44
40 using WebKit::WebCursorInfo; 45 using WebKit::WebCursorInfo;
41 using WebKit::WebKeyboardEvent; 46 using WebKit::WebKeyboardEvent;
42 using WebKit::WebInputEvent; 47 using WebKit::WebInputEvent;
43 using WebKit::WebMouseEvent; 48 using WebKit::WebMouseEvent;
44 using WebKit::WebMouseWheelEvent; 49 using WebKit::WebMouseWheelEvent;
45 50
46 // Important implementation notes: The Mac definition of NPAPI, particularly 51 // Important implementation notes: The Mac definition of NPAPI, particularly
47 // the distinction between windowed and windowless modes, differs from the 52 // the distinction between windowed and windowless modes, differs from the
48 // Windows and Linux definitions. Most of those differences are 53 // Windows and Linux definitions. Most of those differences are
49 // accomodated by the WebPluginDelegate class. 54 // accomodated by the WebPluginDelegate class.
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 467
463 #ifndef NP_NO_QUICKDRAW 468 #ifndef NP_NO_QUICKDRAW
464 // Paint events are our cue to dump the current plugin bits into the buffer 469 // Paint events are our cue to dump the current plugin bits into the buffer
465 // context if we are dealing with a QuickDraw plugin. 470 // context if we are dealing with a QuickDraw plugin.
466 if (instance()->drawing_model() == NPDrawingModelQuickDraw) { 471 if (instance()->drawing_model() == NPDrawingModelQuickDraw) {
467 qd_manager_->UpdateContext(); 472 qd_manager_->UpdateContext();
468 } 473 }
469 #endif 474 #endif
470 } 475 }
471 476
477 #if defined(USE_SKIA)
478 void WebPluginDelegateImpl::Paint(WebKit::WebCanvas* canvas,
stuartmorgan 2011/04/12 17:35:51 I don't suppose there's a less confusing way to do
_cary 2011/04/12 21:03:55 Done.
479 const gfx::Rect& rect) {
480 gfx::SkiaBitLocker bitLocker(canvas);
stuartmorgan 2011/04/12 17:35:51 Does this have the same transparency-preserving pr
_cary 2011/04/12 21:03:55 Yes, the Skia bitmap preserves alpha so transparen
481 Paint(bitLocker.cgContext(), rect);
482 }
483 #endif
484
472 void WebPluginDelegateImpl::Print(CGContextRef context) { 485 void WebPluginDelegateImpl::Print(CGContextRef context) {
473 NOTIMPLEMENTED(); 486 NOTIMPLEMENTED();
474 } 487 }
475 488
476 bool WebPluginDelegateImpl::PlatformHandleInputEvent( 489 bool WebPluginDelegateImpl::PlatformHandleInputEvent(
477 const WebInputEvent& event, WebCursorInfo* cursor_info) { 490 const WebInputEvent& event, WebCursorInfo* cursor_info) {
478 DCHECK(cursor_info != NULL); 491 DCHECK(cursor_info != NULL);
479 492
480 // If we get an event before we've set up the plugin, bail. 493 // If we get an event before we've set up the plugin, bail.
481 if (!have_called_set_window_) 494 if (!have_called_set_window_)
(...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after
1178 qd_manager_->SetFastPathEnabled(enabled); 1191 qd_manager_->SetFastPathEnabled(enabled);
1179 qd_port_.port = qd_manager_->port(); 1192 qd_port_.port = qd_manager_->port();
1180 WindowlessSetWindow(); 1193 WindowlessSetWindow();
1181 // Send a paint event so that the new buffer gets updated immediately. 1194 // Send a paint event so that the new buffer gets updated immediately.
1182 WindowlessPaint(buffer_context_, clip_rect_); 1195 WindowlessPaint(buffer_context_, clip_rect_);
1183 } 1196 }
1184 #endif // !NP_NO_QUICKDRAW 1197 #endif // !NP_NO_QUICKDRAW
1185 1198
1186 } // namespace npapi 1199 } // namespace npapi
1187 } // namespace webkit 1200 } // namespace webkit
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698