浏览代码

Check if an input image wasn't Image on several functions in CameraFeed

Kongfa Waroros 4 年之前
父节点
当前提交
916e576021
共有 2 个文件被更改,包括 10 次插入6 次删除
  1. 7 3
      servers/camera/camera_feed.cpp
  2. 3 3
      servers/camera/camera_feed.h

+ 7 - 3
servers/camera/camera_feed.cpp

@@ -184,9 +184,10 @@ CameraFeed::~CameraFeed() {
 #endif
 }
 
-void CameraFeed::set_RGB_img(Ref<Image> p_rgb_img) {
+void CameraFeed::set_RGB_img(const Ref<Image> &p_rgb_img) {
 // FIXME: Disabled during Vulkan refactoring, should be ported.
 #if 0
+	ERR_FAIL_COND(p_rgb_img.is_null());
 	if (active) {
 		RenderingServer *vs = RenderingServer::get_singleton();
 
@@ -207,9 +208,10 @@ void CameraFeed::set_RGB_img(Ref<Image> p_rgb_img) {
 #endif
 }
 
-void CameraFeed::set_YCbCr_img(Ref<Image> p_ycbcr_img) {
+void CameraFeed::set_YCbCr_img(const Ref<Image> &p_ycbcr_img) {
 // FIXME: Disabled during Vulkan refactoring, should be ported.
 #if 0
+	ERR_FAIL_COND(p_ycbcr_img.is_null());
 	if (active) {
 		RenderingServer *vs = RenderingServer::get_singleton();
 
@@ -230,9 +232,11 @@ void CameraFeed::set_YCbCr_img(Ref<Image> p_ycbcr_img) {
 #endif
 }
 
-void CameraFeed::set_YCbCr_imgs(Ref<Image> p_y_img, Ref<Image> p_cbcr_img) {
+void CameraFeed::set_YCbCr_imgs(const Ref<Image> &p_y_img, const Ref<Image> &p_cbcr_img) {
 // FIXME: Disabled during Vulkan refactoring, should be ported.
 #if 0
+	ERR_FAIL_COND(p_y_img.is_null());
+	ERR_FAIL_COND(p_cbcr_img.is_null());
 	if (active) {
 		RenderingServer *vs = RenderingServer::get_singleton();
 

+ 3 - 3
servers/camera/camera_feed.h

@@ -100,9 +100,9 @@ public:
 	virtual ~CameraFeed();
 
 	FeedDataType get_datatype() const;
-	void set_RGB_img(Ref<Image> p_rgb_img);
-	void set_YCbCr_img(Ref<Image> p_ycbcr_img);
-	void set_YCbCr_imgs(Ref<Image> p_y_img, Ref<Image> p_cbcr_img);
+	void set_RGB_img(const Ref<Image> &p_rgb_img);
+	void set_YCbCr_img(const Ref<Image> &p_ycbcr_img);
+	void set_YCbCr_imgs(const Ref<Image> &p_y_img, const Ref<Image> &p_cbcr_img);
 // FIXME: Disabled during Vulkan refactoring, should be ported.
 #if 0
 	void allocate_texture(int p_width, int p_height, Image::Format p_format, RenderingServer::TextureType p_texture_type, FeedDataType p_data_type);