# Copyright (c) 2011 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# RPC methods used to implement PPB_Font calls from the plugin.
# See ppapi/c/dev/ppb_font_dev.h for interface details.
{
 'name': 'PpbFontRpc',
 'rpcs': [
          {'name': 'PPB_Font_GetFontFamilies',
           'inputs': [['instance', 'PP_Instance'],  # PP_Instance
                    ],
           'outputs': [['font_families', 'char[]'],  # PP_Var
                      ]
          },
          {'name': 'PPB_Font_Create',
           'inputs': [['instance', 'PP_Instance'],  # PP_Instance
                      ['description', 'char[]'],    # PP_FontDescription_Dev
                      ['face', 'char[]'],           # PP_Var, description->face
                    ],
           'outputs': [['font', 'PP_Resource'],     # PP_Resource
                      ]
          },
          {'name': 'PPB_Font_IsFont',
           'inputs': [['resource', 'PP_Resource'],  # PP_Resource
                     ],
           'outputs': [['is_font', 'int32_t'],      # PP_Bool
                      ]
          },
          {'name': 'PPB_Font_Describe',
           'inputs': [['font', 'PP_Resource'],      # PP_Resource
                     ],
           'outputs': [['description', 'char[]'],   # PP_FontDescription_Dev
                       ['face', 'char[]'],          # PP_Var, description->face
                       ['metrics', 'char[]'],       # PP_FontMetrics_Dev
                       ['success', 'int32_t'],      # PP_Bool
                      ]
          },
          {'name': 'PPB_Font_DrawTextAt',
           'inputs': [['font', 'PP_Resource'],      # PP_Resource
                      ['image_data', 'PP_Resource'],  # PP_Resource
                      ['text_run', 'char[]'],       # PP_TextRun_Dev
                      ['text', 'char[]'],           # PP_Var, text_run->text
                      ['position', 'char[]'],       # PP_Point
                      ['color', 'int32_t'],         # uint32_t
                      ['clip', 'char[]'],           # PP_Rect
                      ['image_data_is_opaque', 'int32_t'],  # PP_Bool
                     ],
           'outputs': [['success', 'int32_t'],      # PP_Bool
                      ]
          },
          {'name': 'PPB_Font_MeasureText',
           'inputs': [['font', 'PP_Resource'],      # PP_Resource
                      ['text_run', 'char[]'],       # PP_TextRun_Dev
                      ['text', 'char[]'],           # PP_Var, text_run->text
                     ],
           'outputs': [['width', 'int32_t'],        # int32_t
                      ]
          },
          {'name': 'PPB_Font_CharacterOffsetForPixel',
           'inputs': [['font', 'PP_Resource'],      # PP_Resource
                      ['text_run', 'char[]'],       # PP_TextRun_Dev
                      ['text', 'char[]'],           # PP_Var, text_run->text
                      ['pixel_position', 'int32_t'],  # int32_t
                     ],
           'outputs': [['offset', 'int32_t'],       # uint32_t
                      ]
          },
          {'name': 'PPB_Font_PixelOffsetForCharacter',
           'inputs': [['font', 'PP_Resource'],      # PP_Resource
                      ['text_run', 'char[]'],       # PP_TextRun_Dev
                      ['text', 'char[]'],           # PP_Var, text_run->text
                      ['char_offset', 'int32_t'],   # uint32_t
                     ],
           'outputs': [['offset', 'int32_t'],       # int32_t
                      ]
          },
         ]
}