| Index: ppapi/shared_impl/webkit_forwarding.h
|
| ===================================================================
|
| --- ppapi/shared_impl/webkit_forwarding.h (revision 0)
|
| +++ ppapi/shared_impl/webkit_forwarding.h (revision 0)
|
| @@ -0,0 +1,104 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef PPAPI_SHARED_IMPL_WEBKIT_FORWARDING_H_
|
| +#define PPAPI_SHARED_IMPL_WEBKIT_FORWARDING_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "ppapi/c/pp_bool.h"
|
| +#include "ppapi/c/pp_stdint.h"
|
| +
|
| +struct PP_FontDescription_Dev;
|
| +struct PP_FontMetrics_Dev;
|
| +struct PP_Point;
|
| +struct PP_Rect;
|
| +
|
| +namespace base {
|
| +class WaitableEvent;
|
| +}
|
| +
|
| +namespace skia {
|
| +class PlatformCanvas;
|
| +}
|
| +
|
| +namespace pp {
|
| +namespace shared_impl {
|
| +
|
| +class WebKitForwarding {
|
| + public:
|
| + class Font {
|
| + public:
|
| + // C++ version of PP_TextRun_Dev. Since the functions below will be called
|
| + // on an alternate thread in the proxy, and since there are different
|
| + // methods of converting PP_Var -> strings in the plugin and the proxy, we
|
| + // can't use PP_Vars in the Do* functions below.
|
| + struct TextRun {
|
| + std::string text;
|
| + bool rtl;
|
| + bool override_direction;
|
| + };
|
| +
|
| + // DoDrawText takes too many arguments to be used with base::Bind, so we
|
| + // use this struct to hold them.
|
| + struct DrawTextParams {
|
| + DrawTextParams(skia::PlatformCanvas* destination_arg,
|
| + const TextRun& text_arg,
|
| + const PP_Point* position_arg,
|
| + uint32_t color_arg,
|
| + const PP_Rect* clip_arg,
|
| + PP_Bool image_data_is_opaque_arg);
|
| + ~DrawTextParams();
|
| +
|
| + skia::PlatformCanvas* destination;
|
| + const TextRun& text;
|
| + const PP_Point* position;
|
| + uint32_t color;
|
| + const PP_Rect* clip;
|
| + PP_Bool image_data_is_opaque;
|
| + };
|
| +
|
| + virtual ~Font();
|
| +
|
| + // The face name in the description is not filled in to avoid a dependency
|
| + // on creating vars. Instead, the face name is placed into the given
|
| + // string. See class description for waitable_event documentation. If
|
| + // non-null, the given event will be set on completion.
|
| + virtual void Describe(base::WaitableEvent* event,
|
| + PP_FontDescription_Dev* description,
|
| + std::string* face,
|
| + PP_FontMetrics_Dev* metrics,
|
| + PP_Bool* result) = 0;
|
| + virtual void DrawTextAt(base::WaitableEvent* event,
|
| + const DrawTextParams& params) = 0;
|
| + virtual void MeasureText(base::WaitableEvent* event,
|
| + const TextRun& text,
|
| + int32_t* result) = 0;
|
| + virtual void CharacterOffsetForPixel(base::WaitableEvent* event,
|
| + const TextRun& text,
|
| + int32_t pixel_position,
|
| + uint32_t* result) = 0;
|
| + virtual void PixelOffsetForCharacter(base::WaitableEvent* event,
|
| + const TextRun& text,
|
| + uint32_t char_offset,
|
| + int32_t* result) = 0;
|
| + };
|
| +
|
| + virtual ~WebKitForwarding();
|
| +
|
| + // Creates a new font with the given description. The desc_face is the face
|
| + // name already extracted from the description. The caller owns the result
|
| + // pointer, which will never be NULL. If non-null, the given event will be
|
| + // set on completion.
|
| + virtual void CreateFontForwarding(base::WaitableEvent* event,
|
| + const PP_FontDescription_Dev& desc,
|
| + const std::string& desc_face,
|
| + Font** result) = 0;
|
| +
|
| +};
|
| +
|
| +} // namespace shared_impl
|
| +} // namespace pp
|
| +
|
| +#endif // PPAPI_SHARED_IMPL_WEBKIT_FORWARDING_H_
|
|
|
| Property changes on: ppapi/shared_impl/webkit_forwarding.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|