From 579bec5d783eca54732c858e7e862e17a7f0be77 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 21 Feb 2016 00:54:48 +0100 Subject: Updated web examples --- examples_web/text_bmfont_ttf.data | 44 +++++++++++- examples_web/text_bmfont_ttf.js | 115 +++++++++++++++++++++++++++---- examples_web/textures_image_drawing.c | 6 +- examples_web/textures_image_drawing.data | Bin 958505 -> 683586 bytes examples_web/textures_image_drawing.js | 103 +++++++++++++-------------- 5 files changed, 198 insertions(+), 70 deletions(-) diff --git a/examples_web/text_bmfont_ttf.data b/examples_web/text_bmfont_ttf.data index f618fd3a..44e7a679 100644 --- a/examples_web/text_bmfont_ttf.data +++ b/examples_web/text_bmfont_ttf.data @@ -97,7 +97,49 @@ char id=123 x=191 y=141 width=14 height=45 xoffset=-1 yoffset=0 char id=124 x=416 y=141 width=5 height=45 xoffset=2 yoffset=0 xadvance=9 page=0 chnl=15 char id=125 x=207 y=141 width=13 height=45 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15 char id=126 x=42 y=141 width=19 height=45 xoffset=1 yoffset=0 xadvance=21 page=0 chnl=15 -0FFTMMB`GDEF_NGPOSWzTdGSUB"n'OS/2XVcmapaپrcvt "featT,gasp|glyfL5headc<6hheat$hmtxw +PNG + + IHDRŐg IDATxMfǹ#E{6V++j+,0POuxF5 ya'4k/Lf/ċ@w|u= +p/z?YnW[SUL9>_Ubeiw+OK:_:ëGc#t]c#~Py1Ɖp o #?,W]9o㭛KϮS~P;?V$CWZ9 _k3= *muYwY|_^6> +8:Գ}_n47to=S,?q>{E糷G,hցe? 8_G+1Tܴ\tmw0X[|mo)a O%y9EScν ܤ\.?~Hߤk)` | }x|`|\v~g`|beQ:底ʔ{eI٥޵_=nW׀ G ,^+lx ll^vmYVur@AruAWQ!{i)u(MS 򳐋t3⫊\C{aPuKܢ똞lGccNymI;twŮk}KFU÷9R.)8)'tl(;Oaӎ=X .`?c3EC=uuQLc%:ҵV.nƾnP.:C7kAGs|wY9{H3t\rtfeHc'%^ѥ"-J? @ ڗ9HK.ͺo\ WwA~{`&3Pvxus/x=wX, !8@'j$JԸ-AN<ΆR3ܛH|H'"u}_[Y٦>+2gbbM^%oQ{M#>n,*Sr1AyiqĖCtU:~z0 +k]9f\Fz-,cg%ۂIRjpj b}J97=.[oj51 g.%G<Άy1tI܋UR+ +^h\u-9W.Oˍ!wB1 k}|'&=f9<؝ jfaha1 . qSǜ +N 8/f^*[4m>T,wŪO~ #z>>Iuy[* msZd@DzP|1qCrf53Y~;KYא6~ +,j֌Xa5={d=! H[ +=f* {n '3͚`3[Fy`U?م2cAl}9ՑXqVg+D{Vc:1XVp脜2:{^%JÖJW==mCcYކN"SlQaGA*\z~ZkibQDaPc]8_)h:š@RLʛ,וi8~Ji`g}M`iMJ9)NETC1ʞX\˖%@.Nޥs+V7 ~"'$W}\&97NEʳĉݧ/(/ElW|ᖷRm8քXxSnv pg/)TZf܃U&9 0ԫ?'2hFCg{&c{^z0YgC["sox9X`YH|1-ia]qbC+5+'bj\8U>^rz kJ-$~j7(:qbm^2hZYY1q8b$cj>#K,U +Kwhc5rD&-yPXY7JɅ|񬞹A&c4=\5,H4 t/r< sIh s%o5$hg9WjWMoqVmŁh3rHa0A"TV/j֋2͑֕*kfy5 CLe)V^YߜxӦ[Z0hr>Bi=Y;LkM71)] \Lϐ +!k&t=C/5j :ڥf6g,}BY>/ωc +B~.*l͘2Z"S.m,|*%r)VJb\kY~0fBO`ju_-Q n?4^ݚT H:UՕO$yodO^9GQII[HN%5OY?.j,cYXVEKަE9\\a_)[yA*+@l"y'?0lijOhYngY[syuyb%[vam[@J6L*~v⽵)-&OY^2*p蒨@e-UM ˻kE ^>,LGt)t[Fh%N =ߒb0=C:H}Ex>^d%VPW9WJ캖@Ԟ/Gi| d5VNs8Ry{D$'ug"]pjvaL\k1|ۼo J&M)G)ZjWL4 ![,'Qs +}B.7JX,Ougo≠ҥq.{\slx[g^{r9-];`\T)+j PWriye&r@퀛S53–FP+p;6/O\͖K3m8G>?[}IB +ps +}B4 :KSnlZGbi=_ɜ?}x>lUO4[K{8n90̕\!@)[3gP( <5k_ '\bضm>qZoZ-oPdXuU.l̿%\fp XX73ej@($H!3 +B!9F@!!B! B!fB1C$B" B !bH!3D@!!B! B!fB1C$B" B !bH!3D@!!B̏ſB" B̐ fcvt{PF _W cq4ޓ>[Ws;{^nrxiIpzk.ݣy,;+=uQGcGj%Cϲ(5ǶmUʍ%G >R?S8063O&W~;/) Ӕ76 r@,:e9&hc־lH&xKHcL=Ͻm\fu6#Do>O&ݓ7_mc)թ/96Cej8/ۇ 8HUX+ݫC/}*Ng9;@y~-Msg GC{_YA6hcOs\3Sj;V_v<8Ӌs~9X ;닿/ũL}>]s2ir*ЯqEϽ$:Źsyu +;:>ăEiѼ<ҹ$g;9<& PCG,r<O~>s:n&5x,]{C`Y态#ytb*%̡g.qLZԋRt5ww_7>o zm g.[[V+ݵ*/ 6^ 7['+q:ӗjx]ֶkuWģԮ) e Ӷ}%"4əSc:Oll+Cik)Xj̨9 A^Z?o4/ܓTԊt"%E{>a~ +>3}Nl'֪?.O+ kDsR]c'KĦױ&вò"Ӷk@i?<m^pz1cʝwAX9rggqݥFAwcܓWȗ=Y`-M]V-]~zs.O +9,,^]kMmlqn ȱLބOt_rږ5fSA0ŀp\1gݷSds3!>=U 0BC^C19+ EkG#=f肴LLDcc ugJ.j!c:JЊ1z848 LsM"J6v?t ɀ&88_šx .0d,?46m~տD \^Tzkߦ&>4o/xQ-fK)>4Z"/jrÛ@RQfb.{b}:o/r*8'>tEix@y.b.+ +\vwh_l[7*Jִ< +Hyt1+հwoCR`jΦJ;Zx;bۻ' V;>'%~5z|Ydޱk#v4bj([/;a\O{Rc,^{YҾd*+Ж"ex I=r\)9PmKX=eLiyRoߐ1=U=)aaPCD]'G+ +PZx+Z\%o+ +^gI35۲zܣLdU\ur¶jjm[\}MeEŷB) iA[_::w#{dA9fu}85\qqW^ҾK +YՐe XԦ OccrqGΛ+ erJ0FۆzA/&띗/3m][p[vNYd {zҗ 4ZZ~֧%<+@)[jpxSn|} `.[,ѣ1#yZ"eB!B!f\B! @!!B! B!fB1C$B" B !bH!3D@!!B! B!fB1C$B" B !'BIDATbH!3D@!!B! B!fB1C$Gg̹n1:/n(s|,k򦯫nEWr9WZg6VfV*)ߵ}[^?cN`[qYZIٝ -EŠ>KCѿ]Ąkǵ9%q:7t +q.95t=hCcRaMͼ4}r*85rx.5Kcm|9 c"ǜ![3>\a$u%=]s?m+=[3>ޘܤnSjr= DrݼN]|li)a]kH),>roE}?h(63\\6214gvpD8v颤-7XVe ܍əĚ&ܯX>rˤ ٰUA=O8sgLuOާZY3l){ ߡxVg7w(_sJE춚: Ķ*8Sb \ԫV[n7p۲F,Y D: /2N:ήfRKcgX.kَv6T"Q{q٭3t{"ZSHE )̹uPiV'vlg Ri~w.y?JАXW!ZDK_5 `1BocbJt}|J{brPMN/;]e¥ͷbBAM]nVs_.w(g~n 87>HNF93Xr_*,e +k;WoFC,&g}AI}X qҬ._kVhf-}H9=]A^LκifĭCXgZX7DNlL~ V&?#ozrUC + +bDC[t:-akp`ٿlvBI3`;N-,_1't;j/Kߤ햅'mc*,뮡bFsebsy+uB!٤!B !bH!3D@!!B! B!fB1C$B" B !bH!3D@!!B! B!fB1C$B" B̐ +/uC;W ~o6>*xb];Nrܵ9',?|)VJ穡sƫooԩ=wgY _{[Jz/>f6~'mC}ێKw>[MqSk)qcNrx 36<_ZbC,6OU|%8 P-5\^n8+:TLtmOT|";l^ |:E-ɓt3S2=x穻Z>Oi*e׳3=mtx<MsGfYo2ng)WQ`5nos|xxx]i*zMwvWNW8tc.s&ޣOU._a>VWh{bqM,6 {; +t|g4Wa_g8YXNg15 ,[ЦW?>i{}vR3Ek@̝|[mYuAP!jhP\k^cDc{)D ܣsYUEǩqC]g< ؿX e:kW/S3l>q5XqVJ䈭&mt@T[fLi͂&(b<5KǞ%#6]jͪ[ :-`q}#6oxӁ?T-bލwdkL.aK6~m3gSVi|jvV Lk)C<,|Ѳ + ըƇt65At+ y}mcwNl)cjLs/+>~w5CyKSteO|^)rrBKJYt)*;uoJ9~0U6eg_'![EP;Kr,eT@iLj֞LV }l+|5KզˤWg,>$olH y MK:އk#sJ_yBdyӨ[_,~5ХD@5+vuG\%i3-X Sqr΃XbPde,s__Eź#پ5I0d\57`8t6e &+ee8/ɛ q@}싕կ,eʪqn(%l:*:76G^4OwB2rOE?MkcԦ*[Lm`*0Em4_C)WM͖tr'+~!yg-7{GB88XVog*,eܴۂK͊kə=2 +Ϋ?0վBk@M!VYmNpc`]19~U D) >r y[2վBkBlAz,.bò7vM؄APu`͌!Ptl~6 |DZ69Jw L}\y(۶1s} WZj{ʟ D^嶙~DV193t{99d{ !ݙ3OnIib-Vfل2-C`I;*24'NAD&gc,7uĺS)ωtoy.B$8%7Mr >B5$<%p^  &NUa8>]9G+ C:post#e~qNp_<C#C#UUUUUUUU8@.3 PfEd UUUv"UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU Sax~ R`x} i]GC  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abpefhuniqgtjxzdlkyc{~v}|o"****>P~(B\x>fBTjFj8^n(Lz"@btBf  ( > X ~  diff --git a/examples_web/text_bmfont_ttf.js b/examples_web/text_bmfont_ttf.js index 55c482ba..f06fdf17 100644 --- a/examples_web/text_bmfont_ttf.js +++ b/examples_web/text_bmfont_ttf.js @@ -174,7 +174,7 @@ Module['FS_createPath']('/resources', 'fonts', true, true); } } - loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 11125, "filename": "/resources/fonts/bmfont.fnt"}, {"audio": 0, "start": 11125, "crunched": 0, "end": 46533, "filename": "/resources/fonts/pixantiqua.ttf"}], "remote_package_size": 46533, "package_uuid": "b7ac83d8-86a7-49f3-9f00-af7a6d49af77"}); + loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 11125, "filename": "/resources/fonts/bmfont.fnt"}, {"audio": 0, "start": 11125, "crunched": 0, "end": 25596, "filename": "/resources/fonts/bmfont.png"}, {"audio": 0, "start": 25596, "crunched": 0, "end": 61004, "filename": "/resources/fonts/pixantiqua.ttf"}], "remote_package_size": 61004, "package_uuid": "47f51415-38e0-44dd-9f26-308b6e562fd8"}); })(); @@ -1375,14 +1375,74 @@ var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk -function abortOnCannotGrowMemory() { - abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); -} function enlargeMemory() { - abortOnCannotGrowMemory(); + // TOTAL_MEMORY is the current size of the actual array, and DYNAMICTOP is the new top. + + var OLD_TOTAL_MEMORY = TOTAL_MEMORY; + + + var LIMIT = Math.pow(2, 31); // 2GB is a practical maximum, as we use signed ints as pointers + // and JS engines seem unhappy to give us 2GB arrays currently + if (DYNAMICTOP >= LIMIT) return false; + + while (TOTAL_MEMORY <= DYNAMICTOP) { // Simple heuristic. + if (TOTAL_MEMORY < LIMIT/2) { + TOTAL_MEMORY = alignMemoryPage(2*TOTAL_MEMORY); // double until 1GB + } else { + var last = TOTAL_MEMORY; + TOTAL_MEMORY = alignMemoryPage((3*TOTAL_MEMORY + LIMIT)/4); // add smaller increments towards 2GB, which we cannot reach + if (TOTAL_MEMORY <= last) return false; + } + } + + TOTAL_MEMORY = Math.max(TOTAL_MEMORY, 16*1024*1024); + + if (TOTAL_MEMORY >= LIMIT) return false; + + + + + try { + if (ArrayBuffer.transfer) { + buffer = ArrayBuffer.transfer(buffer, TOTAL_MEMORY); + } else { + var oldHEAP8 = HEAP8; + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + } catch(e) { + return false; + } + + var success = _emscripten_replace_memory(buffer); + if (!success) return false; + + // everything worked + + Module['buffer'] = buffer; + Module['HEAP8'] = HEAP8 = new Int8Array(buffer); + Module['HEAP16'] = HEAP16 = new Int16Array(buffer); + Module['HEAP32'] = HEAP32 = new Int32Array(buffer); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); + Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); + Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); + if (!ArrayBuffer.transfer) { + HEAP8.set(oldHEAP8); + } + + + return true; } +var byteLength; +try { + byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get); + byteLength(new ArrayBuffer(4)); // can fail on older ie +} catch(e) { // can fail on older node/v8 + byteLength = function(buffer) { return buffer.byteLength; }; +} var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; @@ -1395,6 +1455,7 @@ while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) { totalMemory += 16*1024*1024 } } +totalMemory = Math.max(totalMemory, 16*1024*1024); if (totalMemory !== TOTAL_MEMORY) { TOTAL_MEMORY = totalMemory; } @@ -9709,7 +9770,7 @@ function invoke_viiii(index,a1,a2,a3,a4) { } } -Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity, "byteLength": byteLength }; Module.asmLibraryArg = { "abort": abort, "assert": assert, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_iiiiii": invoke_iiiiii, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "___assert_fail": ___assert_fail, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_ceilf": _ceilf, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_sysconf": _sysconf, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "___syscall221": ___syscall221, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "_pthread_cleanup_push": _pthread_cleanup_push, "___syscall145": ___syscall145, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "___syscall146": ___syscall146, "_glfwDestroyWindow": _glfwDestroyWindow, "_pthread_cleanup_pop": _pthread_cleanup_pop, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_atan2": _atan2, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_fabsf": _fabsf, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_fabs": _fabs, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_glCreateShader": _glCreateShader, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_eglWaitClient": _eglWaitClient, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "_glBindFramebuffer": _glBindFramebuffer, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_asm_const_2": _emscripten_asm_const_2, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "_glDeleteFramebuffers": _glDeleteFramebuffers, "_glfwPollEvents": _glfwPollEvents, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glFinish": _emscripten_glFinish, "_emscripten_glClear": _emscripten_glClear, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_sbrk": _sbrk, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glDepthRange": _emscripten_glDepthRange, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_floorf": _floorf, "_sqrtf": _sqrtf, "_glActiveTexture": _glActiveTexture, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_cosf": _cosf, "_glGetProgramiv": _glGetProgramiv, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_glUniform4fv": _glUniform4fv, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "_sinf": _sinf, "__exit": __exit, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_pthread_self": _pthread_self, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_glTexParameteri": _glTexParameteri, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8 }; // EMSCRIPTEN_START_ASM @@ -9717,14 +9778,23 @@ var asm = (function(global, env, buffer) { 'use asm'; - var HEAP8 = new global.Int8Array(buffer); - var HEAP16 = new global.Int16Array(buffer); - var HEAP32 = new global.Int32Array(buffer); - var HEAPU8 = new global.Uint8Array(buffer); - var HEAPU16 = new global.Uint16Array(buffer); - var HEAPU32 = new global.Uint32Array(buffer); - var HEAPF32 = new global.Float32Array(buffer); - var HEAPF64 = new global.Float64Array(buffer); + var Int8View = global.Int8Array; + var Int16View = global.Int16Array; + var Int32View = global.Int32Array; + var Uint8View = global.Uint8Array; + var Uint16View = global.Uint16Array; + var Uint32View = global.Uint32Array; + var Float32View = global.Float32Array; + var Float64View = global.Float64Array; + var HEAP8 = new Int8View(buffer); + var HEAP16 = new Int16View(buffer); + var HEAP32 = new Int32View(buffer); + var HEAPU8 = new Uint8View(buffer); + var HEAPU16 = new Uint16View(buffer); + var HEAPU32 = new Uint32View(buffer); + var HEAPF32 = new Float32View(buffer); + var HEAPF64 = new Float64View(buffer); + var byteLength = global.byteLength; var STACKTOP=env.STACKTOP|0; @@ -10080,6 +10150,20 @@ var asm = (function(global, env, buffer) { var _emscripten_glTexImage2D=env._emscripten_glTexImage2D; var tempFloat = 0.0; +function _emscripten_replace_memory(newBuffer) { + if ((byteLength(newBuffer) & 0xffffff || byteLength(newBuffer) <= 0xffffff) || byteLength(newBuffer) > 0x80000000) return false; + HEAP8 = new Int8View(newBuffer); + HEAP16 = new Int16View(newBuffer); + HEAP32 = new Int32View(newBuffer); + HEAPU8 = new Uint8View(newBuffer); + HEAPU16 = new Uint16View(newBuffer); + HEAPU32 = new Uint32View(newBuffer); + HEAPF32 = new Float32View(newBuffer); + HEAPF64 = new Float64View(newBuffer); + buffer = newBuffer; + return true; +} + // EMSCRIPTEN_START_FUNCS function stackAlloc(size) { size = size|0; @@ -51695,7 +51779,7 @@ var FUNCTION_TABLE_v = [b22,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper var FUNCTION_TABLE_viid = [b23,_emscripten_glTexParameterf__wrapper]; var FUNCTION_TABLE_viiii = [b24,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b24,b24,b24]; - return { _i64Subtract: _i64Subtract, _fflush: _fflush, _main: _main, _i64Add: _i64Add, _memmove: _memmove, _strstr: _strstr, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _bitshift64Lshr: _bitshift64Lshr, _free: _free, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___errno_location: ___errno_location, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_iiiiii: dynCall_iiiiii, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; + return { _i64Subtract: _i64Subtract, _fflush: _fflush, _main: _main, _i64Add: _i64Add, _memmove: _memmove, _strstr: _strstr, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _bitshift64Lshr: _bitshift64Lshr, _free: _free, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___errno_location: ___errno_location, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, _emscripten_replace_memory: _emscripten_replace_memory, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_iiiiii: dynCall_iiiiii, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii }; }) // EMSCRIPTEN_END_ASM (Module.asmGlobalArg, Module.asmLibraryArg, buffer); @@ -51709,6 +51793,7 @@ var _memset = Module["_memset"] = asm["_memset"]; var runPostSets = Module["runPostSets"] = asm["runPostSets"]; var _malloc = Module["_malloc"] = asm["_malloc"]; var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"]; var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; var _free = Module["_free"] = asm["_free"]; var _emscripten_GetProcAddress = Module["_emscripten_GetProcAddress"] = asm["_emscripten_GetProcAddress"]; diff --git a/examples_web/textures_image_drawing.c b/examples_web/textures_image_drawing.c index ecbc5aa0..3e0dd47c 100644 --- a/examples_web/textures_image_drawing.c +++ b/examples_web/textures_image_drawing.c @@ -40,19 +40,19 @@ int main() InitWindow(screenWidth, screenHeight, "raylib [textures] example - image drawing"); Image cat = LoadImage("resources/cat.png"); // Load image in CPU memory (RAM) - ImageCrop(&cat, (Rectangle){ 170, 120, 280, 380 }); // Crop an image piece + ImageCrop(&cat, (Rectangle){ 100, 10, 280, 380 }); // Crop an image piece ImageFlipHorizontal(&cat); // Flip cropped image horizontally ImageResize(&cat, 150, 200); // Resize flipped-cropped image Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM) // Draw one image over the other with a scaling of 1.5f - ImageDraw(&parrots, cat, (Rectangle){ 0, 0, cat.width, cat.height}, (Rectangle){ 30, 40, cat.width*1.5f, cat.height*1.5f }); + ImageDraw(&parrots, cat, (Rectangle){ 0, 0, cat.width, cat.height }, (Rectangle){ 30, 40, cat.width*1.5f, cat.height*1.5f }); ImageCrop(&parrots, (Rectangle){ 0, 50, parrots.width, parrots.height - 100 }); // Crop resulting image UnloadImage(cat); // Unload image from RAM - Texture2D texture = LoadTextureFromImage(parrots); // Image converted to texture, uploaded to GPU memory (VRAM) + texture = LoadTextureFromImage(parrots); // Image converted to texture, uploaded to GPU memory (VRAM) UnloadImage(parrots); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM #if defined(PLATFORM_WEB) diff --git a/examples_web/textures_image_drawing.data b/examples_web/textures_image_drawing.data index 9b210c89..27c217e4 100644 Binary files a/examples_web/textures_image_drawing.data and b/examples_web/textures_image_drawing.data differ diff --git a/examples_web/textures_image_drawing.js b/examples_web/textures_image_drawing.js index 386f0d76..e8781f77 100644 --- a/examples_web/textures_image_drawing.js +++ b/examples_web/textures_image_drawing.js @@ -173,7 +173,7 @@ Module['FS_createPath']('/', 'resources', true, true); } } - loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 295054, "filename": "/resources/parrots.png"}, {"audio": 0, "start": 295054, "crunched": 0, "end": 958505, "filename": "/resources/cat.png"}], "remote_package_size": 958505, "package_uuid": "d244eb3d-81e0-4bc6-be6e-cf4a1ddaf534"}); + loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 295054, "filename": "/resources/parrots.png"}, {"audio": 0, "start": 295054, "crunched": 0, "end": 683586, "filename": "/resources/cat.png"}], "remote_package_size": 683586, "package_uuid": "1c0734ba-2330-4aeb-807b-afbac15555a3"}); })(); @@ -10159,8 +10159,8 @@ function getTempRet0() { } function _main() { - var $$byval_copy1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cat = 0, $cat$byval_copy = 0, $parrots = 0, $texture = 0; + var $$byval_copy1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0; + var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cat = 0, $cat$byval_copy = 0, $parrots = 0; var $texture$byval_copy = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 192|0; @@ -10173,75 +10173,76 @@ function _main() { $1 = sp + 80|0; $2 = sp + 64|0; $3 = sp + 24|0; - $texture = sp; - $4 = HEAP32[152>>2]|0; - $5 = HEAP32[156>>2]|0; - _InitWindow($4,$5,8072); + $4 = sp; + $5 = HEAP32[152>>2]|0; + $6 = HEAP32[156>>2]|0; + _InitWindow($5,$6,8072); _LoadImage($cat,8114); - HEAP32[$0>>2] = 170; - $6 = ((($0)) + 4|0); - HEAP32[$6>>2] = 120; - $7 = ((($0)) + 8|0); - HEAP32[$7>>2] = 280; - $8 = ((($0)) + 12|0); - HEAP32[$8>>2] = 380; + HEAP32[$0>>2] = 100; + $7 = ((($0)) + 4|0); + HEAP32[$7>>2] = 10; + $8 = ((($0)) + 8|0); + HEAP32[$8>>2] = 280; + $9 = ((($0)) + 12|0); + HEAP32[$9>>2] = 380; ;HEAP32[$texture$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[$0+12>>2]|0; _ImageCrop($cat,$texture$byval_copy); _ImageFlipHorizontal($cat); _ImageResize($cat,150,200); _LoadImage($parrots,8132); - $9 = ((($cat)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ((($cat)) + 8|0); - $12 = HEAP32[$11>>2]|0; + $10 = ((($cat)) + 4|0); + $11 = HEAP32[$10>>2]|0; + $12 = ((($cat)) + 8|0); + $13 = HEAP32[$12>>2]|0; HEAP32[$1>>2] = 0; - $13 = ((($1)) + 4|0); - HEAP32[$13>>2] = 0; - $14 = ((($1)) + 8|0); - HEAP32[$14>>2] = $10; - $15 = ((($1)) + 12|0); - HEAP32[$15>>2] = $12; - $16 = HEAP32[$9>>2]|0; - $17 = (+($16|0)); - $18 = $17 * 1.5; - $19 = (~~(($18))); - $20 = HEAP32[$11>>2]|0; - $21 = (+($20|0)); - $22 = $21 * 1.5; - $23 = (~~(($22))); + $14 = ((($1)) + 4|0); + HEAP32[$14>>2] = 0; + $15 = ((($1)) + 8|0); + HEAP32[$15>>2] = $11; + $16 = ((($1)) + 12|0); + HEAP32[$16>>2] = $13; + $17 = HEAP32[$10>>2]|0; + $18 = (+($17|0)); + $19 = $18 * 1.5; + $20 = (~~(($19))); + $21 = HEAP32[$12>>2]|0; + $22 = (+($21|0)); + $23 = $22 * 1.5; + $24 = (~~(($23))); HEAP32[$2>>2] = 30; - $24 = ((($2)) + 4|0); - HEAP32[$24>>2] = 40; - $25 = ((($2)) + 8|0); - HEAP32[$25>>2] = $19; - $26 = ((($2)) + 12|0); - HEAP32[$26>>2] = $23; + $25 = ((($2)) + 4|0); + HEAP32[$25>>2] = 40; + $26 = ((($2)) + 8|0); + HEAP32[$26>>2] = $20; + $27 = ((($2)) + 12|0); + HEAP32[$27>>2] = $24; ;HEAP32[$cat$byval_copy>>2]=HEAP32[$cat>>2]|0;HEAP32[$cat$byval_copy+4>>2]=HEAP32[$cat+4>>2]|0;HEAP32[$cat$byval_copy+8>>2]=HEAP32[$cat+8>>2]|0;HEAP32[$cat$byval_copy+12>>2]=HEAP32[$cat+12>>2]|0;HEAP32[$cat$byval_copy+16>>2]=HEAP32[$cat+16>>2]|0; ;HEAP32[$$byval_copy1>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$1+12>>2]|0; ;HEAP32[$texture$byval_copy>>2]=HEAP32[$2>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[$2+12>>2]|0; _ImageDraw($parrots,$cat$byval_copy,$$byval_copy1,$texture$byval_copy); - $27 = ((($parrots)) + 4|0); - $28 = HEAP32[$27>>2]|0; - $29 = ((($parrots)) + 8|0); - $30 = HEAP32[$29>>2]|0; - $31 = (($30) + -100)|0; + $28 = ((($parrots)) + 4|0); + $29 = HEAP32[$28>>2]|0; + $30 = ((($parrots)) + 8|0); + $31 = HEAP32[$30>>2]|0; + $32 = (($31) + -100)|0; HEAP32[$3>>2] = 0; - $32 = ((($3)) + 4|0); - HEAP32[$32>>2] = 50; - $33 = ((($3)) + 8|0); - HEAP32[$33>>2] = $28; - $34 = ((($3)) + 12|0); - HEAP32[$34>>2] = $31; + $33 = ((($3)) + 4|0); + HEAP32[$33>>2] = 50; + $34 = ((($3)) + 8|0); + HEAP32[$34>>2] = $29; + $35 = ((($3)) + 12|0); + HEAP32[$35>>2] = $32; ;HEAP32[$texture$byval_copy>>2]=HEAP32[$3>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[$3+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[$3+12>>2]|0; _ImageCrop($parrots,$texture$byval_copy); ;HEAP32[$texture$byval_copy>>2]=HEAP32[$cat>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[$cat+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[$cat+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[$cat+12>>2]|0;HEAP32[$texture$byval_copy+16>>2]=HEAP32[$cat+16>>2]|0; _UnloadImage($texture$byval_copy); ;HEAP32[$texture$byval_copy>>2]=HEAP32[$parrots>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[$parrots+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[$parrots+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[$parrots+12>>2]|0;HEAP32[$texture$byval_copy+16>>2]=HEAP32[$parrots+16>>2]|0; - _LoadTextureFromImage($texture,$texture$byval_copy); + _LoadTextureFromImage($4,$texture$byval_copy); + ;HEAP32[160>>2]=HEAP32[$4>>2]|0;HEAP32[160+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[160+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[160+12>>2]=HEAP32[$4+12>>2]|0;HEAP32[160+16>>2]=HEAP32[$4+16>>2]|0; ;HEAP32[$texture$byval_copy>>2]=HEAP32[$parrots>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[$parrots+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[$parrots+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[$parrots+12>>2]|0;HEAP32[$texture$byval_copy+16>>2]=HEAP32[$parrots+16>>2]|0; _UnloadImage($texture$byval_copy); _emscripten_set_main_loop((1|0),0,1); - ;HEAP32[$texture$byval_copy>>2]=HEAP32[$texture>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[$texture+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[$texture+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[$texture+12>>2]|0;HEAP32[$texture$byval_copy+16>>2]=HEAP32[$texture+16>>2]|0; + ;HEAP32[$texture$byval_copy>>2]=HEAP32[160>>2]|0;HEAP32[$texture$byval_copy+4>>2]=HEAP32[160+4>>2]|0;HEAP32[$texture$byval_copy+8>>2]=HEAP32[160+8>>2]|0;HEAP32[$texture$byval_copy+12>>2]=HEAP32[160+12>>2]|0;HEAP32[$texture$byval_copy+16>>2]=HEAP32[160+16>>2]|0; _UnloadTexture($texture$byval_copy); _CloseWindow(); STACKTOP = sp;return 0; -- cgit v1.2.3