Skip to content

Commit 38d7ec1

Browse files
committed
Expose CameraFeed setters
1 parent 506d6e4 commit 38d7ec1

File tree

5 files changed

+44
-19
lines changed

5 files changed

+44
-19
lines changed

doc/classes/CameraFeed.xml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,34 @@
4545
[code]copy[/code] will result in FEED_YCBCR
4646
</description>
4747
</method>
48+
<method name="set_name">
49+
<return type="void" />
50+
<param index="0" name="name" type="String" />
51+
<description>
52+
Sets the camera's name.
53+
</description>
54+
</method>
55+
<method name="set_position">
56+
<return type="void" />
57+
<param index="0" name="position" type="int" enum="CameraFeed.FeedPosition" />
58+
<description>
59+
Sets the position of this camera.
60+
</description>
61+
</method>
62+
<method name="set_rgb_image">
63+
<return type="void" />
64+
<param index="0" name="rgb_image" type="Image" />
65+
<description>
66+
Sets RGB image for this feed.
67+
</description>
68+
</method>
69+
<method name="set_ycbcr_image">
70+
<return type="void" />
71+
<param index="0" name="ycbcr_image" type="Image" />
72+
<description>
73+
Sets YCbCr image for this feed.
74+
</description>
75+
</method>
4876
</methods>
4977
<members>
5078
<member name="feed_is_active" type="bool" setter="set_active" getter="is_active" default="false">

modules/camera/buffer_decoder.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ void SeparateYuyvBufferDecoder::decode(StreamingBuffer p_buffer) {
105105
cbcr_image.instantiate(width, height, false, Image::FORMAT_RGB8, cbcr_image_data);
106106
}
107107

108-
camera_feed->set_YCbCr_imgs(y_image, cbcr_image);
108+
camera_feed->set_ycbcr_images(y_image, cbcr_image);
109109
}
110110

111111
YuyvToGrayscaleBufferDecoder::YuyvToGrayscaleBufferDecoder(CameraFeed *p_camera_feed) :
@@ -133,7 +133,7 @@ void YuyvToGrayscaleBufferDecoder::decode(StreamingBuffer p_buffer) {
133133
image.instantiate(width, height, false, Image::FORMAT_RGB8, image_data);
134134
}
135135

136-
camera_feed->set_RGB_img(image);
136+
camera_feed->set_rgb_image(image);
137137
}
138138

139139
YuyvToRgbBufferDecoder::YuyvToRgbBufferDecoder(CameraFeed *p_camera_feed) :
@@ -176,7 +176,7 @@ void YuyvToRgbBufferDecoder::decode(StreamingBuffer p_buffer) {
176176
image.instantiate(width, height, false, Image::FORMAT_RGB8, image_data);
177177
}
178178

179-
camera_feed->set_RGB_img(image);
179+
camera_feed->set_rgb_image(image);
180180
}
181181

182182
CopyBufferDecoder::CopyBufferDecoder(CameraFeed *p_camera_feed, bool p_rgba) :
@@ -195,7 +195,7 @@ void CopyBufferDecoder::decode(StreamingBuffer p_buffer) {
195195
image.instantiate(width, height, false, rgba ? Image::FORMAT_RGBA8 : Image::FORMAT_LA8, image_data);
196196
}
197197

198-
camera_feed->set_RGB_img(image);
198+
camera_feed->set_rgb_image(image);
199199
}
200200

201201
JpegBufferDecoder::JpegBufferDecoder(CameraFeed *p_camera_feed) :
@@ -207,6 +207,6 @@ void JpegBufferDecoder::decode(StreamingBuffer p_buffer) {
207207
uint8_t *dst = (uint8_t *)image_data.ptrw();
208208
memcpy(dst, p_buffer.start, p_buffer.length);
209209
if (image->load_jpg_from_buffer(image_data) == OK) {
210-
camera_feed->set_RGB_img(image);
210+
camera_feed->set_rgb_image(image);
211211
}
212212
}

modules/camera/camera_macos.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CM
182182
}
183183

184184
// set our texture...
185-
feed->set_YCbCr_imgs(img[0], img[1]);
185+
feed->set_ycbcr_images(img[0], img[1]);
186186
}
187187

188188
// and unlock

servers/camera/camera_feed.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,26 +33,23 @@
3333
#include "servers/rendering_server.h"
3434

3535
void CameraFeed::_bind_methods() {
36-
// The setters prefixed with _ are only exposed so we can have feeds through GDExtension!
37-
// They should not be called by the end user.
38-
3936
ClassDB::bind_method(D_METHOD("get_id"), &CameraFeed::get_id);
4037

4138
ClassDB::bind_method(D_METHOD("is_active"), &CameraFeed::is_active);
4239
ClassDB::bind_method(D_METHOD("set_active", "active"), &CameraFeed::set_active);
4340

4441
ClassDB::bind_method(D_METHOD("get_name"), &CameraFeed::get_name);
45-
ClassDB::bind_method(D_METHOD("_set_name", "name"), &CameraFeed::set_name);
42+
ClassDB::bind_method(D_METHOD("set_name", "name"), &CameraFeed::set_name);
4643

4744
ClassDB::bind_method(D_METHOD("get_position"), &CameraFeed::get_position);
48-
ClassDB::bind_method(D_METHOD("_set_position", "position"), &CameraFeed::set_position);
45+
ClassDB::bind_method(D_METHOD("set_position", "position"), &CameraFeed::set_position);
4946

5047
// Note, for transform some feeds may override what the user sets (such as ARKit)
5148
ClassDB::bind_method(D_METHOD("get_transform"), &CameraFeed::get_transform);
5249
ClassDB::bind_method(D_METHOD("set_transform", "transform"), &CameraFeed::set_transform);
5350

54-
ClassDB::bind_method(D_METHOD("_set_RGB_img", "rgb_img"), &CameraFeed::set_RGB_img);
55-
ClassDB::bind_method(D_METHOD("_set_YCbCr_img", "ycbcr_img"), &CameraFeed::set_YCbCr_img);
51+
ClassDB::bind_method(D_METHOD("set_rgb_image", "rgb_image"), &CameraFeed::set_rgb_image);
52+
ClassDB::bind_method(D_METHOD("set_ycbcr_image", "ycbcr_image"), &CameraFeed::set_ycbcr_image);
5653

5754
ClassDB::bind_method(D_METHOD("get_datatype"), &CameraFeed::get_datatype);
5855

@@ -175,7 +172,7 @@ CameraFeed::~CameraFeed() {
175172
RenderingServer::get_singleton()->free(texture[CameraServer::FEED_CBCR_IMAGE]);
176173
}
177174

178-
void CameraFeed::set_RGB_img(const Ref<Image> &p_rgb_img) {
175+
void CameraFeed::set_rgb_image(const Ref<Image> &p_rgb_img) {
179176
ERR_FAIL_COND(p_rgb_img.is_null());
180177
if (active) {
181178
int new_width = p_rgb_img->get_width();
@@ -198,7 +195,7 @@ void CameraFeed::set_RGB_img(const Ref<Image> &p_rgb_img) {
198195
}
199196
}
200197

201-
void CameraFeed::set_YCbCr_img(const Ref<Image> &p_ycbcr_img) {
198+
void CameraFeed::set_ycbcr_image(const Ref<Image> &p_ycbcr_img) {
202199
ERR_FAIL_COND(p_ycbcr_img.is_null());
203200
if (active) {
204201
int new_width = p_ycbcr_img->get_width();
@@ -221,7 +218,7 @@ void CameraFeed::set_YCbCr_img(const Ref<Image> &p_ycbcr_img) {
221218
}
222219
}
223220

224-
void CameraFeed::set_YCbCr_imgs(const Ref<Image> &p_y_img, const Ref<Image> &p_cbcr_img) {
221+
void CameraFeed::set_ycbcr_images(const Ref<Image> &p_y_img, const Ref<Image> &p_cbcr_img) {
225222
ERR_FAIL_COND(p_y_img.is_null());
226223
ERR_FAIL_COND(p_cbcr_img.is_null());
227224
if (active) {

servers/camera/camera_feed.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,9 @@ class CameraFeed : public RefCounted {
110110
virtual ~CameraFeed();
111111

112112
FeedDataType get_datatype() const;
113-
void set_RGB_img(const Ref<Image> &p_rgb_img);
114-
void set_YCbCr_img(const Ref<Image> &p_ycbcr_img);
115-
void set_YCbCr_imgs(const Ref<Image> &p_y_img, const Ref<Image> &p_cbcr_img);
113+
void set_rgb_image(const Ref<Image> &p_rgb_img);
114+
void set_ycbcr_image(const Ref<Image> &p_ycbcr_img);
115+
void set_ycbcr_images(const Ref<Image> &p_y_img, const Ref<Image> &p_cbcr_img);
116116

117117
virtual bool set_format(int p_index, const Dictionary &p_parameters);
118118
virtual Array get_formats() const;

0 commit comments

Comments
 (0)