lua_app.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Copyright 2013 Google Inc.
  3. *
  4. * Use of this source code is governed by a BSD-style license that can be
  5. * found in the LICENSE file.
  6. */
  7. #include "include/core/SkData.h"
  8. #include "include/core/SkGraphics.h"
  9. #include "include/core/SkStream.h"
  10. #include "include/utils/SkLua.h"
  11. #include "src/core/SkOSFile.h"
  12. #include <stdlib.h>
  13. extern "C" {
  14. #include "lua.h"
  15. #include "lualib.h"
  16. #include "lauxlib.h"
  17. }
  18. static sk_sp<SkData> read_into_data(const char file[]) {
  19. sk_sp<SkData> data(SkData::MakeFromFileName(file));
  20. if (!data) {
  21. data = SkData::MakeEmpty();
  22. }
  23. return data;
  24. }
  25. int main(int argc, char** argv) {
  26. SkAutoGraphics ag;
  27. SkLua L;
  28. for (int i = 1; i < argc; ++i) {
  29. sk_sp<SkData> data;
  30. const void* ptr;
  31. size_t len;
  32. if (!strcmp(argv[i], "--lua") && i < argc-1) {
  33. ptr = argv[i + 1];
  34. len = strlen(argv[i + 1]);
  35. i += 1;
  36. } else {
  37. data = read_into_data(argv[i]);
  38. ptr = data->data();
  39. len = data->size();
  40. }
  41. if (!L.runCode(ptr, len)) {
  42. SkDebugf("failed to load %s\n", argv[i]);
  43. exit(-1);
  44. }
  45. }
  46. return 0;
  47. }