summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/io/http_client.cpp58
-rw-r--r--core/io/http_client.h1
-rw-r--r--core/variant.cpp12
-rw-r--r--scene/2d/canvas_item.cpp6
-rw-r--r--scene/3d/spatial_stream_player.cpp4
-rw-r--r--scene/gui/item_list.cpp2
-rw-r--r--scene/gui/tree.cpp2
-rw-r--r--scene/gui/video_player.cpp4
-rw-r--r--scene/main/canvas_layer.cpp2
-rw-r--r--scene/main/node.cpp2
-rw-r--r--scene/resources/surface_tool.cpp2
-rw-r--r--servers/physics_2d_server.cpp2
-rw-r--r--tools/doc/doc_data.cpp4
13 files changed, 85 insertions, 16 deletions
diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp
index d7098b4c43..680e0ef7f9 100644
--- a/core/io/http_client.cpp
+++ b/core/io/http_client.cpp
@@ -72,7 +72,6 @@ Error HTTPClient::connect(const String &p_host, int p_port, bool p_ssl,bool p_ve
return OK;
}
-
void HTTPClient::set_connection(const Ref<StreamPeer>& p_connection){
close();
@@ -80,12 +79,65 @@ void HTTPClient::set_connection(const Ref<StreamPeer>& p_connection){
}
-
Ref<StreamPeer> HTTPClient::get_connection() const {
return connection;
}
+Error HTTPClient::request_raw( Method p_method, const String& p_url, const Vector<String>& p_headers,const DVector<uint8_t>& p_body) {
+
+ ERR_FAIL_INDEX_V(p_method,METHOD_MAX,ERR_INVALID_PARAMETER);
+ ERR_FAIL_COND_V(status!=STATUS_CONNECTED,ERR_INVALID_PARAMETER);
+ ERR_FAIL_COND_V(connection.is_null(),ERR_INVALID_DATA);
+
+
+ static const char* _methods[METHOD_MAX]={
+ "GET",
+ "HEAD",
+ "POST",
+ "PUT",
+ "DELETE",
+ "OPTIONS",
+ "TRACE",
+ "CONNECT"};
+
+ String request=String(_methods[p_method])+" "+p_url+" HTTP/1.1\r\n";
+ request+="Host: "+conn_host+":"+itos(conn_port)+"\r\n";
+ bool add_clen=p_body.size()>0;
+ for(int i=0;i<p_headers.size();i++) {
+ request+=p_headers[i]+"\r\n";
+ if (add_clen && p_headers[i].find("Content-Length:")==0) {
+ add_clen=false;
+ }
+ }
+ if (add_clen) {
+ request+="Content-Length: "+itos(p_body.size())+"\r\n";
+ //should it add utf8 encoding? not sure
+ }
+ request+="\r\n";
+ CharString cs=request.utf8();
+
+ DVector<uint8_t> data;
+
+ //Maybe this goes faster somehow?
+ for(int i=0;i<cs.length();i++) {
+ data.append( cs[i] );
+ }
+ data.append_array( p_body );
+
+ DVector<uint8_t>::Read r = data.read();
+ Error err = connection->put_data(&r[0], data.size());
+
+ if (err) {
+ close();
+ status=STATUS_CONNECTION_ERROR;
+ return err;
+ }
+
+ status=STATUS_REQUESTING;
+
+ return OK;
+}
Error HTTPClient::request( Method p_method, const String& p_url, const Vector<String>& p_headers,const String& p_body) {
@@ -157,6 +209,7 @@ int HTTPClient::get_response_code() const {
return response_num;
}
+
Error HTTPClient::get_response_headers(List<String> *r_response) {
if (!response_headers.size())
@@ -586,6 +639,7 @@ void HTTPClient::_bind_methods() {
ObjectTypeDB::bind_method(_MD("connect:Error","host","port","use_ssl","verify_host"),&HTTPClient::connect,DEFVAL(false),DEFVAL(true));
ObjectTypeDB::bind_method(_MD("set_connection","connection:StreamPeer"),&HTTPClient::set_connection);
ObjectTypeDB::bind_method(_MD("get_connection:StreamPeer"),&HTTPClient::get_connection);
+ ObjectTypeDB::bind_method(_MD("request_raw","method","url","headers","body"),&HTTPClient::request_raw,DEFVAL(String()));
ObjectTypeDB::bind_method(_MD("request","method","url","headers","body"),&HTTPClient::request,DEFVAL(String()));
ObjectTypeDB::bind_method(_MD("send_body_text","body"),&HTTPClient::send_body_text);
ObjectTypeDB::bind_method(_MD("send_body_data","body"),&HTTPClient::send_body_data);
diff --git a/core/io/http_client.h b/core/io/http_client.h
index defde08524..a9cfb1ed73 100644
--- a/core/io/http_client.h
+++ b/core/io/http_client.h
@@ -170,6 +170,7 @@ public:
void set_connection(const Ref<StreamPeer>& p_connection);
Ref<StreamPeer> get_connection() const;
+ Error request_raw( Method p_method, const String& p_url, const Vector<String>& p_headers,const DVector<uint8_t>& p_body);
Error request( Method p_method, const String& p_url, const Vector<String>& p_headers,const String& p_body=String());
Error send_body_text(const String& p_body);
Error send_body_data(const ByteArray& p_body);
diff --git a/core/variant.cpp b/core/variant.cpp
index 527a0d238f..ea5a378ad0 100644
--- a/core/variant.cpp
+++ b/core/variant.cpp
@@ -1556,6 +1556,18 @@ Variant::operator String() const {
return str;
} break;
+ case VECTOR2_ARRAY: {
+
+ DVector<Vector2> vec = operator DVector<Vector2>();
+ String str;
+ for(int i=0;i<vec.size();i++) {
+
+ if (i>0)
+ str+=", ";
+ str=str+Variant( vec[i] );
+ }
+ return str;
+ } break;
case VECTOR3_ARRAY: {
DVector<Vector3> vec = operator DVector<Vector3>();
diff --git a/scene/2d/canvas_item.cpp b/scene/2d/canvas_item.cpp
index 483feea5c4..21615b7f55 100644
--- a/scene/2d/canvas_item.cpp
+++ b/scene/2d/canvas_item.cpp
@@ -1085,9 +1085,9 @@ void CanvasItem::_bind_methods() {
ObjectTypeDB::bind_method(_MD("draw_texture_rect","texture:Texture","rect","tile","modulate","transpose"),&CanvasItem::draw_texture_rect,DEFVAL(Color(1,1,1)),DEFVAL(false));
ObjectTypeDB::bind_method(_MD("draw_texture_rect_region","texture:Texture","rect","src_rect","modulate","transpose"),&CanvasItem::draw_texture_rect_region,DEFVAL(Color(1,1,1)),DEFVAL(false));
ObjectTypeDB::bind_method(_MD("draw_style_box","style_box:StyleBox","rect"),&CanvasItem::draw_style_box);
- ObjectTypeDB::bind_method(_MD("draw_primitive","points","colors","uvs","texture:Texture","width"),&CanvasItem::draw_primitive,DEFVAL(Array()),DEFVAL(Ref<Texture>()),DEFVAL(1.0));
- ObjectTypeDB::bind_method(_MD("draw_polygon","points","colors","uvs","texture:Texture"),&CanvasItem::draw_polygon,DEFVAL(Array()),DEFVAL(Ref<Texture>()));
- ObjectTypeDB::bind_method(_MD("draw_colored_polygon","points","color","uvs","texture:Texture"),&CanvasItem::draw_colored_polygon,DEFVAL(Array()),DEFVAL(Ref<Texture>()));
+ ObjectTypeDB::bind_method(_MD("draw_primitive","points","colors","uvs","texture:Texture","width"),&CanvasItem::draw_primitive,DEFVAL(Variant()),DEFVAL(1.0));
+ ObjectTypeDB::bind_method(_MD("draw_polygon","points","colors","uvs","texture:Texture"),&CanvasItem::draw_polygon,DEFVAL(Vector2Array()),DEFVAL(Variant()));
+ ObjectTypeDB::bind_method(_MD("draw_colored_polygon","points","color","uvs","texture:Texture"),&CanvasItem::draw_colored_polygon,DEFVAL(Vector2Array()),DEFVAL(Variant()));
ObjectTypeDB::bind_method(_MD("draw_string","font:Font","pos","text","modulate","clip_w"),&CanvasItem::draw_string,DEFVAL(Color(1,1,1)),DEFVAL(-1));
ObjectTypeDB::bind_method(_MD("draw_char","font:Font","pos","char","next","modulate"),&CanvasItem::draw_char,DEFVAL(Color(1,1,1)));
diff --git a/scene/3d/spatial_stream_player.cpp b/scene/3d/spatial_stream_player.cpp
index dfef0faf4b..11debb9bce 100644
--- a/scene/3d/spatial_stream_player.cpp
+++ b/scene/3d/spatial_stream_player.cpp
@@ -329,8 +329,8 @@ int SpatialStreamPlayer::get_buffering_msec() const{
void SpatialStreamPlayer::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("set_stream","stream:Stream"),&SpatialStreamPlayer::set_stream);
- ObjectTypeDB::bind_method(_MD("get_stream:Stream"),&SpatialStreamPlayer::get_stream);
+ ObjectTypeDB::bind_method(_MD("set_stream","stream:AudioStream"),&SpatialStreamPlayer::set_stream);
+ ObjectTypeDB::bind_method(_MD("get_stream:AudioStream"),&SpatialStreamPlayer::get_stream);
ObjectTypeDB::bind_method(_MD("play","offset"),&SpatialStreamPlayer::play,DEFVAL(0));
ObjectTypeDB::bind_method(_MD("stop"),&SpatialStreamPlayer::stop);
diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp
index 449e901876..6a251a5ac5 100644
--- a/scene/gui/item_list.cpp
+++ b/scene/gui/item_list.cpp
@@ -1115,7 +1115,7 @@ int ItemList::find_metadata(const Variant& p_metadata) const {
void ItemList::_bind_methods(){
- ObjectTypeDB::bind_method(_MD("add_item","text","icon:Texture","selectable"),&ItemList::add_item,DEFVAL(Ref<Texture>()),DEFVAL(true));
+ ObjectTypeDB::bind_method(_MD("add_item","text","icon:Texture","selectable"),&ItemList::add_item,DEFVAL(Variant()),DEFVAL(true));
ObjectTypeDB::bind_method(_MD("add_icon_item","icon:Texture","selectable"),&ItemList::add_icon_item,DEFVAL(true));
ObjectTypeDB::bind_method(_MD("set_item_text","idx","text"),&ItemList::set_item_text);
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 278e6584fa..c4efe82eaa 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -3252,7 +3252,7 @@ void Tree::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_scroll_moved"),&Tree::_scroll_moved);
ObjectTypeDB::bind_method(_MD("clear"),&Tree::clear);
- ObjectTypeDB::bind_method(_MD("create_item:TreeItem","parent:TreeItem"),&Tree::_create_item,DEFVAL((Object*)NULL));
+ ObjectTypeDB::bind_method(_MD("create_item:TreeItem","parent:TreeItem"),&Tree::_create_item,DEFVAL(Variant()));
ObjectTypeDB::bind_method(_MD("get_root:TreeItem"),&Tree::get_root);
ObjectTypeDB::bind_method(_MD("set_column_min_width","column","min_width"),&Tree::set_column_min_width);
diff --git a/scene/gui/video_player.cpp b/scene/gui/video_player.cpp
index fc7cc0a362..89dacc6577 100644
--- a/scene/gui/video_player.cpp
+++ b/scene/gui/video_player.cpp
@@ -360,8 +360,8 @@ bool VideoPlayer::has_autoplay() const {
void VideoPlayer::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("set_stream","stream:Stream"),&VideoPlayer::set_stream);
- ObjectTypeDB::bind_method(_MD("get_stream:Stream"),&VideoPlayer::get_stream);
+ ObjectTypeDB::bind_method(_MD("set_stream","stream:VideoStream"),&VideoPlayer::set_stream);
+ ObjectTypeDB::bind_method(_MD("get_stream:VideoStream"),&VideoPlayer::get_stream);
ObjectTypeDB::bind_method(_MD("play"),&VideoPlayer::play);
ObjectTypeDB::bind_method(_MD("stop"),&VideoPlayer::stop);
diff --git a/scene/main/canvas_layer.cpp b/scene/main/canvas_layer.cpp
index e921795628..bc37cde4a2 100644
--- a/scene/main/canvas_layer.cpp
+++ b/scene/main/canvas_layer.cpp
@@ -225,7 +225,7 @@ void CanvasLayer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_scale","scale"),&CanvasLayer::set_scale);
ObjectTypeDB::bind_method(_MD("get_scale"),&CanvasLayer::get_scale);
- ObjectTypeDB::bind_method(_MD("get_world_2d:Canvas"),&CanvasLayer::get_world_2d);
+ ObjectTypeDB::bind_method(_MD("get_world_2d:World2D"),&CanvasLayer::get_world_2d);
ObjectTypeDB::bind_method(_MD("get_viewport"),&CanvasLayer::get_viewport);
ADD_PROPERTY( PropertyInfo(Variant::INT,"layer",PROPERTY_HINT_RANGE,"-128,128,1"),_SCS("set_layer"),_SCS("get_layer") );
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index f4c41256db..8475ca0b39 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -2022,7 +2022,7 @@ void Node::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_child:Node","idx"),&Node::get_child);
ObjectTypeDB::bind_method(_MD("has_node","path"),&Node::has_node);
ObjectTypeDB::bind_method(_MD("get_node:Node","path"),&Node::get_node);
- ObjectTypeDB::bind_method(_MD("get_parent:Parent"),&Node::get_parent);
+ ObjectTypeDB::bind_method(_MD("get_parent:Node"),&Node::get_parent);
ObjectTypeDB::bind_method(_MD("find_node:Node","mask","recursive","owned"),&Node::find_node,DEFVAL(true),DEFVAL(true));
ObjectTypeDB::bind_method(_MD("has_node_and_resource","path"),&Node::has_node_and_resource);
ObjectTypeDB::bind_method(_MD("get_node_and_resource","path"),&Node::_get_node_and_resource);
diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp
index de4bb4122d..12382e6678 100644
--- a/scene/resources/surface_tool.cpp
+++ b/scene/resources/surface_tool.cpp
@@ -862,7 +862,7 @@ void SurfaceTool::_bind_methods() {
ObjectTypeDB::bind_method(_MD("deindex"),&SurfaceTool::deindex);
///ObjectTypeDB::bind_method(_MD("generate_flat_normals"),&SurfaceTool::generate_flat_normals);
ObjectTypeDB::bind_method(_MD("generate_normals"),&SurfaceTool::generate_normals);
- ObjectTypeDB::bind_method(_MD("commit:Mesh","existing:Mesh"),&SurfaceTool::commit,DEFVAL( RefPtr() ));
+ ObjectTypeDB::bind_method(_MD("commit:Mesh","existing:Mesh"),&SurfaceTool::commit,DEFVAL(Variant()));
ObjectTypeDB::bind_method(_MD("clear"),&SurfaceTool::clear);
}
diff --git a/servers/physics_2d_server.cpp b/servers/physics_2d_server.cpp
index a85fefe5ad..411b99ebc8 100644
--- a/servers/physics_2d_server.cpp
+++ b/servers/physics_2d_server.cpp
@@ -630,7 +630,7 @@ void Physics2DServer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("groove_joint_create","groove1_a","groove2_a","anchor_b","body_a","body_b"),&Physics2DServer::groove_joint_create,DEFVAL(RID()),DEFVAL(RID()));
ObjectTypeDB::bind_method(_MD("damped_spring_joint_create","anchor_a","anchor_b","body_a","body_b"),&Physics2DServer::damped_spring_joint_create,DEFVAL(RID()));
- ObjectTypeDB::bind_method(_MD("damped_string_joint_set_param","joint","param","value"),&Physics2DServer::damped_string_joint_set_param,DEFVAL(RID()));
+ ObjectTypeDB::bind_method(_MD("damped_string_joint_set_param","joint","param","value"),&Physics2DServer::damped_string_joint_set_param);
ObjectTypeDB::bind_method(_MD("damped_string_joint_get_param","joint","param"),&Physics2DServer::damped_string_joint_get_param);
ObjectTypeDB::bind_method(_MD("joint_get_type","joint"),&Physics2DServer::joint_get_type);
diff --git a/tools/doc/doc_data.cpp b/tools/doc/doc_data.cpp
index dc2150e6cc..30d419a9f3 100644
--- a/tools/doc/doc_data.cpp
+++ b/tools/doc/doc_data.cpp
@@ -64,7 +64,8 @@ void DocData::merge_from(const DocData& p_data) {
// since polymorphic functions are allowed we need to check the type of
// the arguments so we make sure they are different.
int arg_count = cf.methods[j].arguments.size();
- bool* arg_used = new bool[arg_count];
+ Vector<bool> arg_used;
+ arg_used.resize(arg_count);
for (int l = 0; l < arg_count; ++l) arg_used[l] = false;
// also there is no guarantee that argument ordering will match, so we
// have to check one by one so we make sure we have an exact match
@@ -287,6 +288,7 @@ void DocData::generate(bool p_basic_types) {
case Variant::INT_ARRAY:
case Variant::REAL_ARRAY:
case Variant::STRING_ARRAY: //25
+ case Variant::VECTOR2_ARRAY:
case Variant::VECTOR3_ARRAY:
case Variant::COLOR_ARRAY:
default_arg_text=Variant::get_type_name(default_arg.get_type())+"("+default_arg_text+")";