From c79be979d47daae613d1b1bbc732a30a74f56543 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Sun, 7 Dec 2014 02:04:20 -0300 Subject: [PATCH] Batch of Bugfixes -=-=-=-=-=-=-=-=- -Fixed Export UV XForm (should work now). #923 -Fixed enforcement of limits in property editor. #919 -Fixed long-standing bug of export editings in script inheritance. #914, #859, #756 -Fixed horrible error reporting in shader language. #912 -Added kinematic collision with plane (please test well). #911 -Fixed double animation track insert when using 2D rigs. #904 -VKey updates offset parameter in sprite edition. #901 -Do not allow anymore a script to preload itself. (does not fix #899, but narrows it down) -Avoid connection editor from overriding selected text. #897 -Fixed timer autostart. #876 -Fixed collision layers in 3D physics. #872 -Improved operators in shader #857 -Fixed ambient lighting bug #834 -Avoid editor from processing gamepad input #813 -Added not keyword #752 Please test! --- demos/3d/truck_town/crane.scn | Bin 23916 -> 24164 bytes doc/base/classes.xml | 201 +++++++++++++----- drivers/gles2/rasterizer_gles2.cpp | 4 +- drivers/gles2/shaders/material.glsl | 2 +- modules/gdscript/gd_editor.cpp | 2 +- modules/gdscript/gd_parser.cpp | 16 +- modules/gdscript/gd_parser.h | 5 +- modules/gdscript/gd_script.cpp | 164 +++++++++++--- modules/gdscript/gd_script.h | 13 +- scene/2d/animated_sprite.cpp | 7 +- scene/2d/area_2d.cpp | 15 ++ scene/2d/area_2d.h | 1 + scene/2d/polygon_2d.cpp | 1 + scene/2d/sprite.cpp | 6 + scene/3d/area.cpp | 18 ++ scene/3d/area.h | 1 + scene/3d/light.cpp | 4 +- scene/3d/sprite_3d.cpp | 10 + scene/3d/visual_instance.cpp | 8 +- scene/gui/tree.cpp | 7 + scene/main/scene_main_loop.cpp | 3 + scene/main/timer.cpp | 3 +- scene/scene_string_names.cpp | 2 + scene/scene_string_names.h | 1 + servers/physics/body_pair_sw.cpp | 2 +- servers/physics/collision_solver_sw.cpp | 44 +++- servers/physics/collision_solver_sw.h | 1 + servers/visual/rasterizer.cpp | 2 +- servers/visual/shader_language.cpp | 16 +- tools/editor/animation_editor.cpp | 7 + tools/editor/editor_node.cpp | 2 + .../plugins/polygon_2d_editor_plugin.cpp | 9 + tools/editor/plugins/script_editor_plugin.cpp | 2 +- tools/editor/plugins/shader_editor_plugin.cpp | 5 +- .../blender25/io_scene_dae/export_dae.py | 24 ++- 35 files changed, 492 insertions(+), 116 deletions(-) diff --git a/demos/3d/truck_town/crane.scn b/demos/3d/truck_town/crane.scn index 080bd8ea172a1f6b657167f4e31f80984a031123..2c4645af69f41aa1026bd27abec1c86f401c1b30 100644 GIT binary patch delta 6543 zcmai(4|o*SwZPBJY<5E?u=&4%B;+QWgb@BL5Xb^CyLV>xPeMS1NEHEhH_2wRW|NKC zBm}hV0-{*Nd^)04-m5`Msik0b`^pm}JMu?V)b^{^KOeQ31Q8LRwWU7VishZzK-I5b zzn70Yd+xbs?#!Hf&-vYZ`RoYu(MwFj$|gwy?Joo1uYUyCXaM-W4#1cK@QNN_GX9=U z1^5v4*HG`oVnO{8)K8xPP>5}JqI~p`hT;ihpOXxA9vVG=cRph_sW3USB^>hg^!PS- zf)P)oC(sO8WQxAq*W>GqSjc_y<4k$9Ul$zkw|Zhb)A}NQk1y2S?t?lgW$XN%!APW3Vju?}qMsJ!JpO_1Q4S`w`g?uBkf$>^ zpmMWf-v^Jc+ILxT3NJv9%1w`Dg2!9ja<6xSE@BCU!lSzOQPwCXbbbAvfi^P6Kqh$x zdP~F5SGrAw5qelPJ@>lhBaa^*~-m_=<=x~YrL`mq{AyS1M>Sp0X_h_nWxYl)D zg%2DVAlX`T9=8AzTS)YJr3RjU=thGTqL1H@7s7`>ydf`w+TBT+%hS!919OjQ6-Rce z7#?V9_jUWh{c9=VKEwa@;XL~h`hu-*&7fVffy=okWtp$n-xDqOKJRFU`a9io!b+l&5azr|wY-t~``Y&QqYHIRwNyYM}tdM5pi!egeZo ziOTX&s$I;47iGitJGR<>db!O;CK2Fb_A-c>2!LH>IINX}3MQ4+8Y(~;Wb4IgD)3Cq z9u-e0ab`Nic@S(DU+!U7bahVZEODQ;M(RTpVhSd3Q-)Z#U2f}4`6I_)a1<(By) z?cR*zoedRib6=#iov8+4pI8QZGM~`~BVn!hh4r&Wv`$v#~G@ zh=KSFeJ8VWGS314rX&~`j@pUd3u*z6St^!5|KYdu`p@sZHoUKUo!5g6=x6)v7uG2r zHJ>MIAVF>e8?mZ|SfM+T7A3~`Wy7lsW0hZ;P?XXu+#+0+2aTcllC?2>civ9I{e!C|ek{fnyM2M9-b zxJt6Qx3Ec@2z6NBMvA%3UsTyBuYX6oV{_2UbLX5Jv5l)aa!;MgxmAv5E;+px7^Y^F zm0H@Q{dlNlyr%syr<~rc_zha~tnr33biA6Z!4`6b-T6h;b(5rSkA!dFkx!@BFeCCm z(x=LQTaX!_HL;FOet!X1kj~E4*+V%WtuaX+^B!`1j0qg~Jz#*@cfO#tShj97cu64r$S%Nt0rO zOuZ;hjcL&$<|%Qp0=ovWB4%d5F4o|rogFi2ZMJ;jJ8>f3C199{8EdOEfHHkXsh@*jG1K8@`p+jTKly-_t+NDsb1dD^}&+G=hLnZQw!7jevB`! z8rwB|_lh6cc7FM^y|41a;a4gJ+gpzP_G9<|Zuq7P7wZgzfBCuHaB0&pt>tFici2vA zv;Gu($aedrAK6Q?*p$SoGqtw()}N@lT9w23Dj&7o#g*(xm4A^xrA&VddB=vY<{QCj zpTX?0P2BXj@AN49Hs(K!i-cmKp7_=L^V|X!1Dj7A>&<=%aMZDavCG%oxzYZcD^0d= z*4D)s*L?7i&SS6jZ?b1^RqC|5Jh5oS9N{^<0enZbtD1pfOF;j)v}1U$v)?;IZRGX2 zhfdpyw{-|^>{2x*!DLG%6GvnRl=@YFm$CT5lAsfU`RE%MaLMQq8+M;nUefy!IT#2o2! zj8)0UOTO+%U&x=NV#^K?$tm>QJ%KS=wQ+K<+#}BSnM=`CXQ>146 z=gL$X$wJ>I-tq0C=nc7Q`p2wrT+XWckg>>LR4rs3m2%aLlLj$F_u`Y}Kh3B}sUpki zPvj{x3zMM_1!TTx!o=``o z5G~{zXKR^2m^<|E!KsVcE0G5fhv`F@3d`O-|= z;&BcN1B%I!)}AN4Bu2yxM>fru_I^^uiSK@vY8Kz6O%$2-*(5WDG4kw_G7;*@S=pkm zjHY8U9>xTJ>=fquBqy{=5*kCi?glSR8ZY22Qt+?1VBT?hYp=6{xF^^UGj*^fXuCj+ zl*j31BTZftTtmEoYvVC$QaOv_#%blD{Logf**(O2YtdvsH7f~vogaM47DUm`FJfmf z0^{qoMF!e;r7th7fL&HUF+ zxCZB>zj6FD#G{+EVY6wNH!GTx(AgHs8?J2*;=&S#0JYS_UPZ!pXv3im(lGHPsjla} z>oci^;J%56b7U{8tpf(*b0#ikqyL7g9}26555yE<53=$57(O5zL}>$-2epD4xA3I+ zAnG4M*(B@{8&KY(g_iIs;qL zlblB_Z6!NfyIen}`L3aF82S;E(aEmn?;^A>iBJO~G)?@i<4)J_zkw(+^wj+1+Wp%U zHTU~l^bQs=8XCvw^Y988_%24}6*)!n?-%n-K>lQLh$)Y+s$Ir3rT&v}CN{->op5&j zJ32eN{aoE)+d(_7@-f-#f7Q0oR{r_{uX$=s#ihE^&4)CE+P;NQn}$#%s8`;cms`-G za+vM4C_@Qhxf@geR-7*#`O_Y)GwV5xEL5(lTb<4#YQ1OB>u2az`Qf?}xzv;=pQ@YA zyeI#$ZXs(ZmS@;1IC_rCD{W;_5B&dI; zSCQ0}C3Q8ZTZlSqQnx6nTa3D!P*&Qg#**EU(wFf~fY zU4K6DigeWZztV4|FQ}0g$RqCcT>UVWSJ$u9m42E6@}c^d*`*Eg-3_&@m?Qt9Ay>Eb zp!9M4Ov6h|)TnKl8oDCAzOEKOWCG+sz#s1P_x5bC^amrs=8zu>0FjrI)tTIi`a+&? zzrUv^*y;y7IhdN>;*0cpBJIA`@Oqf6a{2lme~TY?Nkat?QBxMA_xQR3eowPM5bT0% zRky&K&-%Ms)s(!{=3uBX)Evf>6E($!hY^ftgPM|`+UoD_ZTH}b3V9Qzs+?zNEZr0A z!toU*E9XT@;g}hmgTdvoKJBckH1x%%Xzv(edPn-kq4LiqS7v!<#^D1 z(f>sG5$G-dlCEU${eY<8f{o5BnuGK7?-H%1ywgezSeY-=_U5OQ zBFHIutMYY-1}j&`ips7)sA7bgxTl_+oZQx!zos41gDH{r@On?6YPG6skS=>CS7em^ zT-6nb2VrB|u$0EV`NkV{w6Xp*Jj~G!_Pq1(@rBY#Qs{kN`YGcX@Yb@6U3YsQfP6CT zJWOSJ`pOF!fA6%1AaLGLM0f2!#<_ewfr$4GdLm_3h?GTI%%6BOB`bA|!cExOw)5%R zbS*u8e^>c7N`zq9UtB53t?zwIm^9lTj+9tiZPTAVaqQ$$xo(9iyNyE3zz`8HF+07D zdYm&wPsM&?yfaN{Bgs7!a$#54DR ziOkt@546n;m#v!hy;)1-9V_=oCvHEUSqK08(*qW!bziCJ)%x_yAK4E7z117I zZWu5;y6-XDFGJ~y$_MoFeNCmaMgWG46FSfDwLet(Ux_@}Yy{kX3)#RB1DDDhF#S;h;oMtWN18xau2O5^D6v-C8D z(YRAD=zJ|Fc~fJZC)&%_WDi>qbWaZ9pLA6NjON z@Zc2jty=N%Tft8Z4imHygYz=rfI1`4j^D9d<$wktNHWyy4selTmFu7_v;*9@=$qC7 zcadr}Ti$a=UewvBn%;vBV$lqjd}G*1OxQQ4nmZsg-njIe#%0)xxkFq7ounE&%^-#` zz5t1b#VI%> zWe1h$4*E0=(6hLl*tW$S2*bqP0WwBiEdm!sL%B~~0?&Psoc#!GMl zj2nyiT=BW2apMd$#LnZfP6qQqU7T*i6}#q&3)H$xY0CmUV3HfmfJkTe|!|xwZPBpY<8AR!UjUJNt2Mf*^od8EJ+|iLU!-W>~6x(AS+f3u)E1_k~Kdz z?k3?!ExQ;k*r=(UB1N7ON|9D-ZM#0HRFdI`+7_$*Sl^>9&obeM2w0?2t5uPnS%}s5 z{&{?IXU{$N=iGbF`QEvldx?4P5VL5dN0LDMmjO_B1)!A!_>Lan15C#a0DKAnHv!-@ z>QA7KV48_~4%2lbz%|sriMrv(78On?{VT~(D*>dR-VU4TM@-NuU3(!;`saPq3x0(;rdUOntB`6pa>f3``++sfJS4 z8{E*NvZp5mg1!DwXVBXf+Mu$t4Bg>Km%r2NpX@)VxP*Sdwlm_B!0Rh)p}qOZHGXo>Wi{E4nKwu-UM@s;r{ebL@33N>XSR0h&gBK|%n6+}9oGw4QL@aBc%nAe8|#*<`tx zvcP6*4R;n5G2WKq8hyk+yDgxy(}b+}w0&i?kY0jRV%K+uTl}4b>gK=@y^BChWwUe@ z@VuIurK^NYT1kKq zpr%!mh3(2twqgzhR6d)nfR8&!8Fr|j#l|Y3pp#^3nQXQSTDr&Oxgc#Am*;`?{&Be) z*oVjE8aTUsT%HdzzCSMC2H_`?GMlZhoCCp^w2U*;D26w9+WkF2sF$VD`XT<~N3&y& zL-ZH+zNR6EWCyn^p0do}8;pdkSulev5X;@C-Mo^+&Ym-;BH$7?)8*nqg_mBUJOyzG zrAkb%D7@>b`kfS9zd^mn^&#l#6ar#}VuPu~r0`IPJIdfIGG?$4Ui=2P?d}2lkFK@a z$;21|Htr~bxS0SrREEWz6;v>*I<24>lmT6XI86l}b0yfte(@kpP=M(~Kb!!Euuw5W z8P><*nXu&!^i3XcF+t5TG3BsD!m6`~UTK2agcq7HXTzKs<`7;nOD-j5hDuduhN@)V zgHxV|S!oqksnPWFH9g#h&w5yplxwx8=wz1#qwT(oqpKR;)HU}-i&mh?EF|S(8W;#i z%cWP_fsKYEy<_kJ%@qgrUExSi`!;}Rb0!6vFJ7MUqx+B0ZS%x(aRtq%EObxH^cku9 zjQ&kpK>Lh6kx*BtH`E{W9T0v`bDbZz_r$}rO{{?ivO(TGYkDGP5E!|}Hl?29bpXKN zt24UzC=lST+;?MSU(Z?xNmcWCTw%xTU##`j5>Rt^(gdTV1?*&|R@6iXeO@(>*KHVy zB_Qv*javKKIZYaa>PcKF6<$QC{&fShIgk`aC|sG>GEF zIFC7TqOxC{ik*U(9k(*z5KGV$OX6m&tXlZO__H!rY zeA&EP@|X>B9o*&3g(Ka6TD)N90|y<4zx7`u3ol%( z8~XcC9EP{_qq=QpV|54Z&l(&XH8?7}|mt3wZ z+VWGM&G16&eEYQD9`K=EtLzZv4G-Dt><#e)z5&DGcdpjCR{a!xYl$Xj;CyT>k6_Ks4X%V74{(>FgpN@}^$8|(Ji=TS5f zjHNmrMim>ef+Nw8d!8*9!*KYAJJ8wL>UEnO$2Cb8daTR;oO6e2N{Uks|E7PlBXdBh zlbZ`}FV}*Cat-2G5iqJ49+w73_PY9gHR=-HkoD77?S&6^2=y3KR8vAeTTsV*l(0r(-FgHiu5;S=93x~yZoa{sh@Cnon)dx_RVB7IrD;I^bqe&7cq)Qt9w?<|*>l*KY} zowUud-&!IEzWC^rTaD~m=9W>|aXysS^*yWlc*DL8+Z=Ci|E|wUZLHQM2Ju{cd+gPW zmfmlQK&fh}%>#^oR6P7qQEOe?~{FeFLe!mt?c zj0pW|iWZTUxZ?vX5*d^)hzzB}7?K2Y+@=G^3>@kN4pBz*afEU;Qu%(IH~Ifl87gqe zOJ~_Dr4QOZ7k-Efkt2L8eM)nr!3$-V#gX@nyf{KV6p{JfL>}V_;_}_%GUVb58W-i5 zVNKA8=&5@U5wvCE)iS%5`3%YPIub{7i^G)HCm}_UOK_QF!l$H^^6bl4uJHW**aV59 zf$FegqrA#$R8mCOjM8A`^$p4CoVgvLwD$`pVI8HO+K`3s-)y1f#!@AJ)&O-Z})|C+WZ8Y^N<#`V(|1E-N?3`TR%6IS*ci_<{E7*AMWP;u{kGh-Xa*#GTD zZmj4@OqsWm;jovu^V?MRrr)7+KPA6cV|OoFukvie0p;$D9X{kWPM<`MgL4f~1Z=?gRhBS2&4h1J5J#1vrBGyN ze|Os5y)?(&^KVd|gEX4!uKX$|T^c9dC!y>3pT$E?xBDkw;pEHuQfKA#7&YysM7~tF znomYDWj%TV6lzuvn+SA!zX6Tnt z+3cXT!bci*>1gT~d>nXM)g%2p;u1xEGUuMeFC7cn5X>f}co1jtNUr%|1>vX(D$!u) zqOK~bo2TjMZaP4txNUo}yqXlkd@Qd?mfx0avw(2Ye?TqDJk)6#Hx{B7h$<=sj3!~J zvcR|mHH$GV)f{9wcCif8QcR76O}r@W)J?!sF^2)473J0L&DmfjlcAWfUjEO+z6ta*V{atX))tIF2FcP3-Jvc& zy$UOQ&-p^oLsIq4xI#9|L}N=Z8ufOC13`?Lkjn*vt^U5wUa#fPiCN1n%*>Q%xD(gI zqUu872zk=KHTBljOLNE{ZI*^jx`4mScM-D4i*kRXT}L*{FEmawaQ*&B$S;pI&Yt8v z!+O2JfLNjT_H_2OSwE01EBrBGJ)KNh*yOxM8_;?_k!S|xT{)D)%v_OXQi<&k1=maS zwlvWK!Q|XXEp+cW{PN3Z6H`x6nnMX}C^18?FN=bb1she!Vo#ZVGfJ~ux%6G@E<<~` zE!^$z9Mk7J-=I?=cwW~nv|^C3(|)EW7Jl%%{PY!dqtoSHM?aILs8jZ9F%Q>XnT0Qw=FV#hsx%<|J#>4 zZLRg6syPO5ad|iJqI=>(pOy01ba)Kgtl`rZZ=*0^y{oY(iZjY zqg%OIouoL5=DKx~)J2^t{2r&#dM@p8eM=-5>@I$s5_-Kj#g&cfOXtbtRQq2JS!x3I z8M}`i7Sd3;oJ#aBN~TI0@niJ^->>cO{*T2jlu?Lt3=#1WchIj>Z@rM>X^Dh-^ zCfyS|bA23H1_CwXvdf8;p2C+fq|gIusYm7Z3%}Ab2Qg4&(pM>`9CPoKr+FHfr{!)> zo^fWpIJdm5yh(n{v;TH>+tEq*3Ho)_Y*JozUZf5NV61>Mls~h~VKk2Uq5$gDDnr?Y zPwZLxPt~+4L)x`-_Jf}U{9z0b4va#8^ZxF>@7bU4OjA^Tm;AyV*4P1nVUwZj{9eby z)Bp1J6X0wa&g^O_r*!2a{S_&)?dWrqE_3ht$%Ocu?R}>l@th z?`J!PAA71!Fv%NNp^f9EC@4$h(N$)h7?%IIs>CR~je(UVX|n##iiwa)IBFGLG!L}T zWXGKrB)tF5BIcpQ19yH8$HtKC>TvzRh2QtYlqkAu6C(*HDJu+()t&;c#YmTonNB$m zj_p0Qq?W?i&?%h_AO#lUuo@lm2ulI7s1|djVHS^200s=|&#tb>V0;i?0y#JVhsrGh zhy4EP`!aC*0g8wo))LlI!rYMWyW6UxOXNLwFNlq?r)V1vQhy5kh%h z*sfE@c$|Zh7?Vyxv*jRVEq{g^;-GlyEO!twVm*2aS_qHvnS}t(X)6Q?=QKlW^4W$A z+5zo26FlnyZG#ZWAor*l9pEN~D%(L@Xb04%6SG>{0r!w9txVqCl$|bxRr5*cAhx7N zY08V;Y_{~@&6Z&+Ylm|Xy0mu8jSRw_;q#DTW~Jk7=11;A(d-&M&;0>RL=tD>NE}QW zHo;_E_Y1D5Fo0Kc9(+kNE=e|F$rEtH6-KLd=PA2fW>>AN1{-{h)VixA4-G>spP2Bc zfN*XJrs8uD3JF(lV+h2WAHyOR{0k}`;HJcx8|qoe<*2i@^btywrA zSm|lE*?r?3){IUGbO#dNXsI5{sHv|~64>kj`gqG&ZH@Z|1))Y6JW?aXXjq61DFb6I zH4UX>rW!mBJfCdR(1iQK*3dVwenaVaeG$hNpG#I>)QHvb4i3hq)GQiERzBkhFKQgG zDw%~EnwPA)c>Ne(Lx&)RJYUqU!hz$Z)U0+KSdypm2kQ6IB9=V!UPis^BPHR!>^3#n z1pFL_1}k*qjxK&DSojwiRly$s diff --git a/doc/base/classes.xml b/doc/base/classes.xml index 2c49926d662..35de0106b5f 100644 --- a/doc/base/classes.xml +++ b/doc/base/classes.xml @@ -3281,6 +3281,12 @@ + + + + + + @@ -3418,6 +3424,12 @@ + + + + + + @@ -4828,6 +4840,10 @@ + + + + @@ -11647,6 +11663,14 @@ + + + + + + + + @@ -15474,14 +15498,12 @@ Finally, when a node is freed, it will free all its children nodes too. - + - Called when entered the scene. - + - Called when being removed from the scene. @@ -15634,11 +15656,10 @@ - + - Return wether the node is inside a scene tree (a tree where the topmost node is a [RootNode]) @@ -15882,11 +15903,10 @@ - - + + - Get the current SceneMainLoop. Only returned if the node is inside the scene, else returns null. @@ -15917,28 +15937,24 @@ - - - Emitted when the node enters the scene. - - Emitted when the node is renamed. - + + + + + - Emitted when the node exits the scene. - - Notification received when the node enters the Scene Tree and gains access to the [RootNode]. Note that children nodes will not have received the notification at that time yet. + - - Notification received when the node exits the Scene Tree and loses access to the [RootNode]. Note that parent nodes will not have received the notification at that time yet. + @@ -16554,6 +16570,10 @@ + + + + @@ -17334,7 +17354,7 @@ - + @@ -17368,6 +17388,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides an opaque background for [Control] children. @@ -18039,6 +18123,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -18173,7 +18281,7 @@ - + @@ -19534,7 +19642,7 @@ - + @@ -20994,7 +21102,7 @@ - + @@ -24091,6 +24199,12 @@ + + + + + + @@ -24364,6 +24478,12 @@ Return true if the body has the ability to fall asleep when not moving. See [set_can_sleep]. + + + + + + @@ -25275,13 +25395,10 @@ - + - Scene-Based implementation of the MainLoop. - Scene implementation of the MainLoop. All scenes edited using the editor are loaded with this main loop, which provides the base for the scene system.[br] - All group operations (get nodes, call, etc) is performed here. All nodes in a group can be called a specific functions, set a property or notified. This happens in scene-order. @@ -25292,7 +25409,6 @@ - Call a notification in all the nodes belonging to a given group. See GROUP_CALL_* enum for options. @@ -25305,7 +25421,6 @@ - Set a property in all the nodes belonging to a given group. See GROUP_CALL_* enum for options. @@ -25314,7 +25429,6 @@ - Get all the nods belonging to a given group. @@ -25327,21 +25441,18 @@ - Set to true if the application will quit automatically when quit is requested (Alt-f4 or ctrl-c). - Set to true to tell nodes and the scene that it is being edited. This is used by editors, not release. - Return true if the scene is being run inside an editor. @@ -25360,19 +25471,16 @@ - Set pause. The built-in pause system is very basic and only meant to avoid processing nodes not allowed to work in pause mode. - Return true if the scene is paused. - Handle a current input event (avoid further processing of it). @@ -25385,12 +25493,10 @@ - Return the frame index (how many frames were drawn). - Quit the application. @@ -25407,7 +25513,6 @@ - Queue an object for deletion next time the loop goes idle. @@ -25428,41 +25533,33 @@ - Call a function for all the nodes in a given group. - Emitted when the screen changes size. - Emitted when a node is removed from the scene. - Emitted when the scene tree changed (nodes added/removed/moved/etc) - Regular group call flag (no flags). - Call a group in inverse-scene order. - Call a group immediately (usually calls are delivered on idle). - Call a group only once, even if call is performed many times. @@ -32543,7 +32640,7 @@ - + @@ -32601,6 +32698,12 @@ + + + + + + diff --git a/drivers/gles2/rasterizer_gles2.cpp b/drivers/gles2/rasterizer_gles2.cpp index 057de329dfd..9f2fd032fa3 100644 --- a/drivers/gles2/rasterizer_gles2.cpp +++ b/drivers/gles2/rasterizer_gles2.cpp @@ -4648,7 +4648,8 @@ void RasterizerGLES2::_add_geometry( const Geometry* p_geometry, const InstanceD if (m->flags[VS::MATERIAL_FLAG_INVERT_FACES]) e->mirror=!e->mirror; - e->light_type=0xFF; // no lights! + //e->light_type=0xFF; // no lights! + e->light_type=3; //light type 3 is no light? e->light=0xFFFF; if (!shadow && !has_blend_alpha && has_alpha && m->depth_draw_mode==VS::MATERIAL_DEPTH_DRAW_OPAQUE_PRE_PASS_ALPHA) { @@ -9122,6 +9123,7 @@ void RasterizerGLES2::init() { use_anisotropic_filter=true; float_linear_supported=true; float_supported=true; + use_rgba_shadowmaps=false; glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT,&anisotropic_level); anisotropic_level=MIN(anisotropic_level,float(GLOBAL_DEF("rasterizer/anisotropic_filter_level",4.0))); diff --git a/drivers/gles2/shaders/material.glsl b/drivers/gles2/shaders/material.glsl index 7d9aca4b4d9..f2d9eaf1e5e 100644 --- a/drivers/gles2/shaders/material.glsl +++ b/drivers/gles2/shaders/material.glsl @@ -1214,7 +1214,7 @@ LIGHT_SHADER_CODE # if !defined(LIGHT_TYPE_DIRECTIONAL) && !defined(LIGHT_TYPE_OMNI) && !defined (LIGHT_TYPE_SPOT) //none #ifndef SHADELESS - diffuse.rgb=vec3(0.0,0.0,0.0); + diffuse.rgb=ambient_light *diffuse.rgb; #endif # endif diff --git a/modules/gdscript/gd_editor.cpp b/modules/gdscript/gd_editor.cpp index b1db087fb38..95bae2d32af 100644 --- a/modules/gdscript/gd_editor.cpp +++ b/modules/gdscript/gd_editor.cpp @@ -66,7 +66,7 @@ bool GDScriptLanguage::validate(const String& p_script, int &r_line_error,int &r GDParser parser; - Error err = parser.parse(p_script,p_path.get_base_dir(),true); + Error err = parser.parse(p_script,p_path.get_base_dir(),true,p_path); if (err) { r_line_error=parser.get_error_line(); r_col_error=parser.get_error_column(); diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index de2b5219a9b..904b6ba52fd 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -225,7 +225,14 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_ String path = tokenizer->get_token_constant(); if (!path.is_abs_path() && base_path!="") path=base_path+"/"+path; - path = path.replace("///","//"); + path = path.replace("///","//").simplify_path(); + if (path==self_path) { + + _set_error("Can't preload itself (use 'get_script()')."); + return NULL; + + } + Ref res; if (!validating) { @@ -2616,8 +2623,9 @@ Error GDParser::_parse(const String& p_base_path) { return OK; } -Error GDParser::parse_bytecode(const Vector &p_bytecode,const String& p_base_path) { +Error GDParser::parse_bytecode(const Vector &p_bytecode,const String& p_base_path, const String &p_self_path) { + self_path=p_self_path; GDTokenizerBuffer *tb = memnew( GDTokenizerBuffer ); tb->set_code_buffer(p_bytecode); tokenizer=tb; @@ -2628,9 +2636,9 @@ Error GDParser::parse_bytecode(const Vector &p_bytecode,const String& p } -Error GDParser::parse(const String& p_code,const String& p_base_path,bool p_just_validate) { - +Error GDParser::parse(const String& p_code, const String& p_base_path, bool p_just_validate, const String &p_self_path) { + self_path=p_self_path; GDTokenizerText *tt = memnew( GDTokenizerText ); tt->set_code(p_code); diff --git a/modules/gdscript/gd_parser.h b/modules/gdscript/gd_parser.h index 5fac34396ca..3f82cafc612 100644 --- a/modules/gdscript/gd_parser.h +++ b/modules/gdscript/gd_parser.h @@ -373,6 +373,7 @@ private: List tab_level; String base_path; + String self_path; PropertyInfo current_export; @@ -398,8 +399,8 @@ public: String get_error() const; int get_error_line() const; int get_error_column() const; - Error parse(const String& p_code, const String& p_base_path="", bool p_just_validate=false); - Error parse_bytecode(const Vector &p_bytecode,const String& p_base_path=""); + Error parse(const String& p_code, const String& p_base_path="", bool p_just_validate=false,const String& p_self_path=""); + Error parse_bytecode(const Vector &p_bytecode,const String& p_base_path="",const String& p_self_path=""); const Node *get_parse_tree() const; diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp index 7085ae6a568..b19168f5368 100644 --- a/modules/gdscript/gd_script.cpp +++ b/modules/gdscript/gd_script.cpp @@ -1523,6 +1523,7 @@ void GDScript::_placeholder_erased(PlaceHolderScriptInstance *p_placeholder) { placeholders.erase(p_placeholder); } +/* void GDScript::_update_placeholder(PlaceHolderScriptInstance *p_placeholder) { @@ -1563,7 +1564,7 @@ void GDScript::_update_placeholder(PlaceHolderScriptInstance *p_placeholder) { p_placeholder->update(plist,default_values); -} +}*/ #endif ScriptInstance* GDScript::instance_create(Object *p_this) { @@ -1582,7 +1583,8 @@ ScriptInstance* GDScript::instance_create(Object *p_this) { }*/ PlaceHolderScriptInstance *si = memnew( PlaceHolderScriptInstance(GDScriptLanguage::get_singleton(),Ref