ppb_truetype_font_dev_thunk.cc 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. // Copyright (c) 2013 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. // From dev/ppb_truetype_font_dev.idl modified Wed Jan 27 17:10:16 2016.
  5. #include <stdint.h>
  6. #include "base/logging.h"
  7. #include "ppapi/c/dev/ppb_truetype_font_dev.h"
  8. #include "ppapi/c/pp_completion_callback.h"
  9. #include "ppapi/c/pp_errors.h"
  10. #include "ppapi/shared_impl/tracked_callback.h"
  11. #include "ppapi/thunk/enter.h"
  12. #include "ppapi/thunk/ppapi_thunk_export.h"
  13. #include "ppapi/thunk/ppb_truetype_font_api.h"
  14. #include "ppapi/thunk/ppb_truetype_font_singleton_api.h"
  15. namespace ppapi {
  16. namespace thunk {
  17. namespace {
  18. int32_t GetFontFamilies(PP_Instance instance,
  19. struct PP_ArrayOutput output,
  20. struct PP_CompletionCallback callback) {
  21. VLOG(4) << "PPB_TrueTypeFont_Dev::GetFontFamilies()";
  22. EnterInstanceAPI<PPB_TrueTypeFont_Singleton_API> enter(instance, callback);
  23. if (enter.failed())
  24. return enter.retval();
  25. return enter.SetResult(
  26. enter.functions()->GetFontFamilies(instance, output, enter.callback()));
  27. }
  28. int32_t GetFontsInFamily(PP_Instance instance,
  29. struct PP_Var family,
  30. struct PP_ArrayOutput output,
  31. struct PP_CompletionCallback callback) {
  32. VLOG(4) << "PPB_TrueTypeFont_Dev::GetFontsInFamily()";
  33. EnterInstanceAPI<PPB_TrueTypeFont_Singleton_API> enter(instance, callback);
  34. if (enter.failed())
  35. return enter.retval();
  36. return enter.SetResult(enter.functions()->GetFontsInFamily(
  37. instance, family, output, enter.callback()));
  38. }
  39. PP_Resource Create(PP_Instance instance,
  40. const struct PP_TrueTypeFontDesc_Dev* desc) {
  41. VLOG(4) << "PPB_TrueTypeFont_Dev::Create()";
  42. EnterResourceCreation enter(instance);
  43. if (enter.failed())
  44. return 0;
  45. return enter.functions()->CreateTrueTypeFont(instance, desc);
  46. }
  47. PP_Bool IsTrueTypeFont(PP_Resource resource) {
  48. VLOG(4) << "PPB_TrueTypeFont_Dev::IsTrueTypeFont()";
  49. EnterResource<PPB_TrueTypeFont_API> enter(resource, false);
  50. return PP_FromBool(enter.succeeded());
  51. }
  52. int32_t Describe(PP_Resource font,
  53. struct PP_TrueTypeFontDesc_Dev* desc,
  54. struct PP_CompletionCallback callback) {
  55. VLOG(4) << "PPB_TrueTypeFont_Dev::Describe()";
  56. EnterResource<PPB_TrueTypeFont_API> enter(font, callback, true);
  57. if (enter.failed())
  58. return enter.retval();
  59. return enter.SetResult(enter.object()->Describe(desc, enter.callback()));
  60. }
  61. int32_t GetTableTags(PP_Resource font,
  62. struct PP_ArrayOutput output,
  63. struct PP_CompletionCallback callback) {
  64. VLOG(4) << "PPB_TrueTypeFont_Dev::GetTableTags()";
  65. EnterResource<PPB_TrueTypeFont_API> enter(font, callback, true);
  66. if (enter.failed())
  67. return enter.retval();
  68. return enter.SetResult(
  69. enter.object()->GetTableTags(output, enter.callback()));
  70. }
  71. int32_t GetTable(PP_Resource font,
  72. uint32_t table,
  73. int32_t offset,
  74. int32_t max_data_length,
  75. struct PP_ArrayOutput output,
  76. struct PP_CompletionCallback callback) {
  77. VLOG(4) << "PPB_TrueTypeFont_Dev::GetTable()";
  78. EnterResource<PPB_TrueTypeFont_API> enter(font, callback, true);
  79. if (enter.failed())
  80. return enter.retval();
  81. return enter.SetResult(enter.object()->GetTable(
  82. table, offset, max_data_length, output, enter.callback()));
  83. }
  84. const PPB_TrueTypeFont_Dev_0_1 g_ppb_truetypefont_dev_thunk_0_1 = {
  85. &GetFontFamilies, &GetFontsInFamily, &Create, &IsTrueTypeFont,
  86. &Describe, &GetTableTags, &GetTable};
  87. } // namespace
  88. PPAPI_THUNK_EXPORT const PPB_TrueTypeFont_Dev_0_1*
  89. GetPPB_TrueTypeFont_Dev_0_1_Thunk() {
  90. return &g_ppb_truetypefont_dev_thunk_0_1;
  91. }
  92. } // namespace thunk
  93. } // namespace ppapi