Index: ppapi/c/dev/ppb_font_dev.h |
=================================================================== |
--- ppapi/c/dev/ppb_font_dev.h (revision 85766) |
+++ ppapi/c/dev/ppb_font_dev.h (working copy) |
@@ -12,25 +12,32 @@ |
#include "ppapi/c/pp_stdint.h" |
#include "ppapi/c/pp_var.h" |
-#define PPB_FONT_DEV_INTERFACE_0_5 "PPB_Font(Dev);0.5" |
-#define PPB_FONT_DEV_INTERFACE PPB_FONT_DEV_INTERFACE_0_5 |
+#define PPB_FONT_DEV_INTERFACE_0_6 "PPB_Font(Dev);0.6" |
+#define PPB_FONT_DEV_INTERFACE PPB_FONT_DEV_INTERFACE_0_6 |
struct PP_Point; |
struct PP_Rect; |
typedef enum { |
- // Uses the user's default web page font (normally either the default serif |
- // or sans serif font). |
+ /** |
+ * Uses the user's default web page font (normally either the default serif |
+ * or sans serif font). |
+ */ |
PP_FONTFAMILY_DEFAULT = 0, |
- // These families will use the default web page font corresponding to the |
- // given family. |
+ /** |
+ * These families will use the default web page font corresponding to the |
+ * given family. |
+ */ |
PP_FONTFAMILY_SERIF = 1, |
PP_FONTFAMILY_SANSSERIF = 2, |
PP_FONTFAMILY_MONOSPACE = 3 |
} PP_FontFamily_Dev; |
PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FontFamily_Dev, 4); |
+/** |
+ * Specifies the font weight. Normally users will only use NORMAL or BOLD. |
+ */ |
typedef enum { |
PP_FONTWEIGHT_100 = 0, |
PP_FONTWEIGHT_200, |
@@ -47,33 +54,46 @@ |
PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FontWeight_Dev, 4); |
struct PP_FontDescription_Dev { |
- // Font face name as a string. This can also be a Null var, in which case the |
- // generic family will be obeyed. |
+ /** |
+ * Font face name as a string. This can also be an undefined var, in which |
+ * case the generic family will be obeyed. |
+ */ |
struct PP_Var face; |
- // When face is a Null string, this specifies the generic font family type |
- // to use. If the face is specified, this will be ignored. |
+ /** |
+ * When face is an undefined var, this specifies the generic font family type |
+ * to use. If the face is specified, this will be ignored. |
+ */ |
PP_FontFamily_Dev family; |
+ /** |
+ * Size in pixels. |
+ */ |
uint32_t size; |
- // Normally you will use either PP_FONTWEIGHT_NORMAL or PP_FONTWEIGHT_BOLD. |
+ /** |
+ * Normally you will use either PP_FONTWEIGHT_NORMAL or PP_FONTWEIGHT_BOLD. |
+ */ |
PP_FontWeight_Dev weight; |
PP_Bool italic; |
PP_Bool small_caps; |
- // Adjustment to apply to letter and word spacing, respectively. Initialize |
- // to 0 to get normal spacing. Negative values bring letters/words closer |
- // together, positive values separate them. |
+ /** |
+ * Adjustment to apply to letter and word spacing, respectively. Initialize |
+ * to 0 to get normal spacing. Negative values bring letters/words closer |
+ * together, positive values separate them. |
+ */ |
int32_t letter_spacing; |
int32_t word_spacing; |
- // Ensure that this struct is 48-bytes wide by padding the end. In some |
- // compilers, PP_Var is 8-byte aligned, so those compilers align this struct |
- // on 8-byte boundaries as well and pad it to 16 bytes even without this |
- // padding attribute. This padding makes its size consistent across |
- // compilers. |
+ /** |
+ * Ensure that this struct is 48-bytes wide by padding the end. In some |
+ * compilers, PP_Var is 8-byte aligned, so those compilers align this struct |
+ * on 8-byte boundaries as well and pad it to 16 bytes even without this |
+ * padding attribute. This padding makes its size consistent across |
+ * compilers. |
+ */ |
int32_t padding; |
}; |
PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_FontDescription_Dev, 48); |
@@ -88,60 +108,86 @@ |
PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_FontMetrics_Dev, 20); |
struct PP_TextRun_Dev { |
- // This var must either be a string or a null var (which will be treated as |
- // a 0-length string). |
+ /** |
+ * This var must either be a string or a null/undefined var (which will be |
+ * treated as a 0-length string). |
+ */ |
struct PP_Var text; |
- // Set to PP_TRUE if the text is right-to-left. |
+ /** |
+ * Set to PP_TRUE if the text is right-to-left. |
+ */ |
PP_Bool rtl; |
- // Set to PP_TRUE to force the directionality of the text regardless of |
- // content |
+ /** |
+ * Set to PP_TRUE to force the directionality of the text regardless of |
+ * content |
+ */ |
PP_Bool override_direction; |
}; |
PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_TextRun_Dev, 24); |
struct PPB_Font_Dev { |
- // Returns a font which best matches the given description. The return value |
- // will have a non-zero ID on success, or zero on failure. |
+ /** |
+ * Returns a list of all available font families on the system. You can use |
+ * this list to decide whether to Create() a font. |
+ * |
+ * The return value will be a single string with null characters delimiting |
+ * the end of each font name. For example: "Arial\0Courier\0Times\0". |
+ * |
+ * Returns an undefined var on failure (this typically means you passed an |
+ * invalid instance). |
+ */ |
+ struct PP_Var (*GetFontFamilies)(PP_Instance instance); |
+ |
+ /** |
+ * Returns a font which best matches the given description. The return value |
+ * will have a non-zero ID on success, or zero on failure. |
+ */ |
PP_Resource (*Create)(PP_Instance instance, |
const struct PP_FontDescription_Dev* description); |
- // Returns PP_TRUE if the given resource is a Font. Returns PP_FALSE if the |
- // resource is invalid or some type other than a Font. |
+ /** |
+ * Returns PP_TRUE if the given resource is a Font. Returns PP_FALSE if the |
+ * resource is invalid or some type other than a Font. |
+ */ |
PP_Bool (*IsFont)(PP_Resource resource); |
- // Loads the description and metrics of the font into the given structures. |
- // The description will be different than the description the font was |
- // created with since it will be filled with the real values from the font |
- // that was actually selected. |
- // |
- // The PP_Var in the description should be of type Void on input. On output, |
- // this will contain the string and will have a reference count of 1. The |
- // plugin is responsible for calling Release on this var. |
- // |
- // Returns PP_TRUE on success, PP_FALSE if the font is invalid or if the Var |
- // in the description isn't Null (to prevent leaks). |
+ /** |
+ * Loads the description and metrics of the font into the given structures. |
+ * The description will be different than the description the font was |
+ * created with since it will be filled with the real values from the font |
+ * that was actually selected. |
+ * |
+ * The PP_Var in the description should be of type Void on input. On output, |
+ * this will contain the string and will have a reference count of 1. The |
+ * plugin is responsible for calling Release on this var. |
+ * |
+ * Returns PP_TRUE on success, PP_FALSE if the font is invalid or if the Var |
+ * in the description isn't Null (to prevent leaks). |
+ */ |
PP_Bool (*Describe)(PP_Resource font, |
struct PP_FontDescription_Dev* description, |
struct PP_FontMetrics_Dev* metrics); |
- // Draws the text to the image buffer. |
- // |
- // The given point represents the baseline of the left edge of the font, |
- // regardless of whether it is left-to-right or right-to-left (in the case of |
- // RTL text, this will actually represent the logical end of the text). |
- // |
- // The clip is optional and may be NULL. In this case, the text will be |
- // clipped to the image. |
- // |
- // The image_data_is_opaque flag indicates whether subpixel antialiasing can |
- // be performend, if it is supported. When the image below the text is |
- // opaque, subpixel antialiasing is supported and you should set this to |
- // PP_TRUE to pick up the user's default preferences. If your plugin is |
- // partially transparent, then subpixel antialiasing is not possible and |
- // grayscale antialiasing will be used instead (assuming the user has |
- // antialiasing enabled at all). |
+ /** |
+ * Draws the text to the image buffer. |
+ * |
+ * The given point represents the baseline of the left edge of the font, |
+ * regardless of whether it is left-to-right or right-to-left (in the case of |
+ * RTL text, this will actually represent the logical end of the text). |
+ * |
+ * The clip is optional and may be NULL. In this case, the text will be |
+ * clipped to the image. |
+ * |
+ * The image_data_is_opaque flag indicates whether subpixel antialiasing can |
+ * be performend, if it is supported. When the image below the text is |
+ * opaque, subpixel antialiasing is supported and you should set this to |
+ * PP_TRUE to pick up the user's default preferences. If your plugin is |
+ * partially transparent, then subpixel antialiasing is not possible and |
+ * grayscale antialiasing will be used instead (assuming the user has |
+ * antialiasing enabled at all). |
+ */ |
PP_Bool (*DrawTextAt)(PP_Resource font, |
PP_Resource image_data, |
const struct PP_TextRun_Dev* text, |
@@ -150,32 +196,40 @@ |
const struct PP_Rect* clip, |
PP_Bool image_data_is_opaque); |
- // Returns the width of the given string. If the font is invalid or the var |
- // isn't a valid string, this will return -1. |
- // |
- // Note that this function handles complex scripts such as Arabic, combining |
- // accents, etc. so that adding the width of substrings won't necessarily |
- // produce the correct width of the entire string. |
- // |
- // Returns -1 on failure. |
+ /** |
+ * Returns the width of the given string. If the font is invalid or the var |
+ * isn't a valid string, this will return -1. |
+ * |
+ * Note that this function handles complex scripts such as Arabic, combining |
+ * accents, etc. so that adding the width of substrings won't necessarily |
+ * produce the correct width of the entire string. |
+ * |
+ * Returns -1 on failure. |
+ */ |
int32_t (*MeasureText)(PP_Resource font, |
const struct PP_TextRun_Dev* text); |
- // Returns the character at the given pixel X position from the beginning of |
- // the string. This handles complex scripts such as Arabic, where characters |
- // may be combined or replaced depending on the context. Returns (uint32)-1 |
- // on failure. |
+ /** |
+ * Returns the character at the given pixel X position from the beginning of |
+ * the string. This handles complex scripts such as Arabic, where characters |
+ * may be combined or replaced depending on the context. Returns (uint32)-1 |
+ * on failure. |
+ */ |
uint32_t (*CharacterOffsetForPixel)(PP_Resource font, |
const struct PP_TextRun_Dev* text, |
int32_t pixel_position); |
- // Returns the horizontal advance to the given character if the string was |
- // placed at the given position. This handles complex scripts such as Arabic, |
- // where characters may be combined or replaced depending on context. Returns |
- // -1 on error. |
+ /** |
+ * Returns the horizontal advance to the given character if the string was |
+ * placed at the given position. This handles complex scripts such as Arabic, |
+ * where characters may be combined or replaced depending on context. Returns |
+ * -1 on error. |
+ */ |
int32_t (*PixelOffsetForCharacter)(PP_Resource font, |
const struct PP_TextRun_Dev* text, |
uint32_t char_offset); |
+ |
+ |
}; |
#endif /* PPAPI_C_DEV_PPB_FONT_DEV_H_ */ |