host.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from . import serial, ErrorCode
  2. class HostApi:
  3. def __init__(self, api):
  4. self.api = api
  5. def create_text(self, font_path, node_name, text, font_size):
  6. call_data = bytearray()
  7. serial.encode_str(call_data, node_name)
  8. serial.encode_str(call_data, text)
  9. serial.write_f32(call_data, font_size)
  10. font_id = self.api.lookup_node_id(font_path)
  11. (errc, result) = self.api.call_method(font_id, "create_text", call_data)
  12. if errc != 0:
  13. print("create_text error:", ErrorCode.to_str(errc))
  14. return None
  15. text_id = int.from_bytes(result, "little")
  16. return text_id
  17. def load_texture(self, node_name, filepath):
  18. call_data = bytearray()
  19. serial.encode_str(call_data, node_name)
  20. serial.encode_str(call_data, filepath)
  21. win_id = self.api.lookup_node_id("/window")
  22. (errc, result) = self.api.call_method(win_id, "load_texture", call_data)
  23. if errc != 0:
  24. print("load_texture error:", ErrorCode.to_str(errc))
  25. return None
  26. texture_id = int.from_bytes(result, "little")
  27. return texture_id