class_cameraserver.rst 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/CameraServer.xml.
  6. .. _class_CameraServer:
  7. CameraServer
  8. ============
  9. **Inherits:** :ref:`Object<class_Object>`
  10. Server keeping track of different cameras accessible in Godot.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. The **CameraServer** keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone.
  15. It is notably used to provide AR modules with a video feed from the camera.
  16. \ **Note:** This class is currently only implemented on Linux, Android, macOS, and iOS. On other platforms no :ref:`CameraFeed<class_CameraFeed>`\ s will be available. To get a :ref:`CameraFeed<class_CameraFeed>` on iOS, the camera plugin from `godot-ios-plugins <https://github.com/godotengine/godot-ios-plugins>`__ is required.
  17. .. rst-class:: classref-reftable-group
  18. Properties
  19. ----------
  20. .. table::
  21. :widths: auto
  22. +-------------------------+-----------------------------------------------------------------------+-----------+
  23. | :ref:`bool<class_bool>` | :ref:`monitoring_feeds<class_CameraServer_property_monitoring_feeds>` | ``false`` |
  24. +-------------------------+-----------------------------------------------------------------------+-----------+
  25. .. rst-class:: classref-reftable-group
  26. Methods
  27. -------
  28. .. table::
  29. :widths: auto
  30. +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
  31. | |void| | :ref:`add_feed<class_CameraServer_method_add_feed>`\ (\ feed\: :ref:`CameraFeed<class_CameraFeed>`\ ) |
  32. +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
  33. | :ref:`Array<class_Array>`\[:ref:`CameraFeed<class_CameraFeed>`\] | :ref:`feeds<class_CameraServer_method_feeds>`\ (\ ) |
  34. +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
  35. | :ref:`CameraFeed<class_CameraFeed>` | :ref:`get_feed<class_CameraServer_method_get_feed>`\ (\ index\: :ref:`int<class_int>`\ ) |
  36. +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
  37. | :ref:`int<class_int>` | :ref:`get_feed_count<class_CameraServer_method_get_feed_count>`\ (\ ) |
  38. +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
  39. | |void| | :ref:`remove_feed<class_CameraServer_method_remove_feed>`\ (\ feed\: :ref:`CameraFeed<class_CameraFeed>`\ ) |
  40. +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
  41. .. rst-class:: classref-section-separator
  42. ----
  43. .. rst-class:: classref-descriptions-group
  44. Signals
  45. -------
  46. .. _class_CameraServer_signal_camera_feed_added:
  47. .. rst-class:: classref-signal
  48. **camera_feed_added**\ (\ id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_CameraServer_signal_camera_feed_added>`
  49. Emitted when a :ref:`CameraFeed<class_CameraFeed>` is added (e.g. a webcam is plugged in).
  50. .. rst-class:: classref-item-separator
  51. ----
  52. .. _class_CameraServer_signal_camera_feed_removed:
  53. .. rst-class:: classref-signal
  54. **camera_feed_removed**\ (\ id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_CameraServer_signal_camera_feed_removed>`
  55. Emitted when a :ref:`CameraFeed<class_CameraFeed>` is removed (e.g. a webcam is unplugged).
  56. .. rst-class:: classref-item-separator
  57. ----
  58. .. _class_CameraServer_signal_camera_feeds_updated:
  59. .. rst-class:: classref-signal
  60. **camera_feeds_updated**\ (\ ) :ref:`🔗<class_CameraServer_signal_camera_feeds_updated>`
  61. Emitted when camera feeds are updated.
  62. .. rst-class:: classref-section-separator
  63. ----
  64. .. rst-class:: classref-descriptions-group
  65. Enumerations
  66. ------------
  67. .. _enum_CameraServer_FeedImage:
  68. .. rst-class:: classref-enumeration
  69. enum **FeedImage**: :ref:`🔗<enum_CameraServer_FeedImage>`
  70. .. _class_CameraServer_constant_FEED_RGBA_IMAGE:
  71. .. rst-class:: classref-enumeration-constant
  72. :ref:`FeedImage<enum_CameraServer_FeedImage>` **FEED_RGBA_IMAGE** = ``0``
  73. The RGBA camera image.
  74. .. _class_CameraServer_constant_FEED_YCBCR_IMAGE:
  75. .. rst-class:: classref-enumeration-constant
  76. :ref:`FeedImage<enum_CameraServer_FeedImage>` **FEED_YCBCR_IMAGE** = ``0``
  77. The `YCbCr <https://en.wikipedia.org/wiki/YCbCr>`__ camera image.
  78. .. _class_CameraServer_constant_FEED_Y_IMAGE:
  79. .. rst-class:: classref-enumeration-constant
  80. :ref:`FeedImage<enum_CameraServer_FeedImage>` **FEED_Y_IMAGE** = ``0``
  81. The Y component camera image.
  82. .. _class_CameraServer_constant_FEED_CBCR_IMAGE:
  83. .. rst-class:: classref-enumeration-constant
  84. :ref:`FeedImage<enum_CameraServer_FeedImage>` **FEED_CBCR_IMAGE** = ``1``
  85. The CbCr component camera image.
  86. .. rst-class:: classref-section-separator
  87. ----
  88. .. rst-class:: classref-descriptions-group
  89. Property Descriptions
  90. ---------------------
  91. .. _class_CameraServer_property_monitoring_feeds:
  92. .. rst-class:: classref-property
  93. :ref:`bool<class_bool>` **monitoring_feeds** = ``false`` :ref:`🔗<class_CameraServer_property_monitoring_feeds>`
  94. .. rst-class:: classref-property-setget
  95. - |void| **set_monitoring_feeds**\ (\ value\: :ref:`bool<class_bool>`\ )
  96. - :ref:`bool<class_bool>` **is_monitoring_feeds**\ (\ )
  97. If ``true``, the server is actively monitoring available camera feeds.
  98. This has a performance cost, so only set it to ``true`` when you're actively accessing the camera.
  99. \ **Note:** After setting it to ``true``, you can receive updated camera feeds through the :ref:`camera_feeds_updated<class_CameraServer_signal_camera_feeds_updated>` signal.
  100. .. tabs::
  101. .. code-tab:: gdscript
  102. func _ready():
  103. CameraServer.camera_feeds_updated.connect(_on_camera_feeds_updated)
  104. CameraServer.monitoring_feeds = true
  105. func _on_camera_feeds_updated():
  106. var feeds = CameraServer.feeds()
  107. .. code-tab:: csharp
  108. public override void _Ready()
  109. {
  110. CameraServer.CameraFeedsUpdated += OnCameraFeedsUpdated;
  111. CameraServer.MonitoringFeeds = true;
  112. }
  113. void OnCameraFeedsUpdated()
  114. {
  115. var feeds = CameraServer.Feeds();
  116. }
  117. .. rst-class:: classref-section-separator
  118. ----
  119. .. rst-class:: classref-descriptions-group
  120. Method Descriptions
  121. -------------------
  122. .. _class_CameraServer_method_add_feed:
  123. .. rst-class:: classref-method
  124. |void| **add_feed**\ (\ feed\: :ref:`CameraFeed<class_CameraFeed>`\ ) :ref:`🔗<class_CameraServer_method_add_feed>`
  125. Adds the camera ``feed`` to the camera server.
  126. .. rst-class:: classref-item-separator
  127. ----
  128. .. _class_CameraServer_method_feeds:
  129. .. rst-class:: classref-method
  130. :ref:`Array<class_Array>`\[:ref:`CameraFeed<class_CameraFeed>`\] **feeds**\ (\ ) :ref:`🔗<class_CameraServer_method_feeds>`
  131. Returns an array of :ref:`CameraFeed<class_CameraFeed>`\ s.
  132. .. rst-class:: classref-item-separator
  133. ----
  134. .. _class_CameraServer_method_get_feed:
  135. .. rst-class:: classref-method
  136. :ref:`CameraFeed<class_CameraFeed>` **get_feed**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_CameraServer_method_get_feed>`
  137. Returns the :ref:`CameraFeed<class_CameraFeed>` corresponding to the camera with the given ``index``.
  138. .. rst-class:: classref-item-separator
  139. ----
  140. .. _class_CameraServer_method_get_feed_count:
  141. .. rst-class:: classref-method
  142. :ref:`int<class_int>` **get_feed_count**\ (\ ) :ref:`🔗<class_CameraServer_method_get_feed_count>`
  143. Returns the number of :ref:`CameraFeed<class_CameraFeed>`\ s registered.
  144. .. rst-class:: classref-item-separator
  145. ----
  146. .. _class_CameraServer_method_remove_feed:
  147. .. rst-class:: classref-method
  148. |void| **remove_feed**\ (\ feed\: :ref:`CameraFeed<class_CameraFeed>`\ ) :ref:`🔗<class_CameraServer_method_remove_feed>`
  149. Removes the specified camera ``feed``.
  150. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  151. .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
  152. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  153. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  154. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  155. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  156. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  157. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  158. .. |void| replace:: :abbr:`void (No return value.)`