ppb_graphics_2d_api.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "base/memory/ref_counted.h" 6#include "ppapi/c/pp_bool.h" 7#include "ppapi/c/pp_completion_callback.h" 8#include "ppapi/c/pp_point.h" 9#include "ppapi/c/pp_rect.h" 10#include "ppapi/c/pp_resource.h" 11#include "ppapi/c/pp_size.h" 12 13namespace ppapi { 14 15class TrackedCallback; 16 17namespace thunk { 18 19class PPB_Graphics2D_API { 20 public: 21 virtual ~PPB_Graphics2D_API() {} 22 23 virtual PP_Bool Describe(PP_Size* size, PP_Bool* is_always_opaque) = 0; 24 virtual void PaintImageData(PP_Resource image_data, 25 const PP_Point* top_left, 26 const PP_Rect* src_rect) = 0; 27 virtual void Scroll(const PP_Rect* clip_rect, 28 const PP_Point* amount) = 0; 29 virtual void ReplaceContents(PP_Resource image_data) = 0; 30 virtual bool SetScale(float scale) = 0; 31 virtual float GetScale() = 0; 32 33 // When |old_image_data| is non-null and the flush is executing a replace 34 // contents (which leaves the "old" ImageData unowned), the resource ID of 35 // the old image data will be placed into |*old_image_data| synchronously 36 // (not when the flush callback completes). 37 // 38 // When this happens, a reference to this resource will be transferred to the 39 // caller. If there is no replace contents operation, old_image_data will be 40 // ignored. If |*old_image_data| is null, then the old image data will be 41 // destroyed if there was one. 42 virtual int32_t Flush(scoped_refptr<TrackedCallback> callback, 43 PP_Resource* old_image_data) = 0; 44}; 45 46} // namespace thunk 47} // namespace ppapi 48