diff options
| author | raysan5 <raysan5@gmail.com> | 2016-02-21 00:54:48 +0100 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2016-02-21 00:54:48 +0100 |
| commit | 579bec5d783eca54732c858e7e862e17a7f0be77 (patch) | |
| tree | 8dafbbf022bc93a8027db33f2587846c79f4d7e6 | |
| parent | 318638757b14d5b5944113a34ec8cb88cc36ced3 (diff) | |
| download | raylib-579bec5d783eca54732c858e7e862e17a7f0be77.tar.gz raylib-579bec5d783eca54732c858e7e862e17a7f0be77.zip | |
Updated web examples
| -rw-r--r-- | examples_web/text_bmfont_ttf.data | 44 | ||||
| -rw-r--r-- | examples_web/text_bmfont_ttf.js | 115 | ||||
| -rw-r--r-- | examples_web/textures_image_drawing.c | 6 | ||||
| -rw-r--r-- | examples_web/textures_image_drawing.data | bin | 958505 -> 683586 bytes | |||
| -rw-r--r-- | 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
- +PNG
+ + +p/z?YnW[SUL9><O=uѣG!b^<!bH +8:Գ} +k]9f\Fz-,cg%ۂ[4YIRjpj
b}J97=.[oj51g.%G<Άy1tI܋UR+ +^h\u-9W.Oˍ!wB1k}|'&=f9<؝
jfaha1
.q +N 8/f^*[4m>T,wŪO~ #z>>Iuy[*msZd@DzP|1qCrf53Y~;KYא6~ +,jXa5={d=! H[+=f*
{n'3͚`3[Fy`U?م2cAl}9Ց +Kwhc5rD&-yPXY7JɅ|A&c4=\5,H4t/ +!k&t=C/5j
:ڥf6g,}BY>/ωc +B~.*l͘2Z"<f;e`xϲvp^ +5}ٗ*m%iS%-7f
g&H^0!]S?rIg-$6A1[q +}B.7JX,Ougo≠ҥq.{\slx[g^{r9-];`\T)+j
PWriye&r@퀛S53FP+p;6/O\͖K3m8G>?[}IB +ps +}B4:KSnlZGbi=_ɜ?}x>lUO4[K{8n90̕\!@)[3gP( <5k_ '\bضm>qZoZ-oPdXuU.l +qsyfm +(=ʛXl*VY4HkE P2{u4c;p4ƃI<Y+JÀ6/6:["kCK|ȳ<y\_TB +ɇ_cǐ_Ӻ% +B!9F@!! +;:>ăEiѼ<ҹ$g;9<&PCG,r<<wDjIi=G*i]^!g>O~>s:n&5x,]{C`Y态#ytb*%̡g.qLZԋRt5ww_7>o zm g.[[V+ݵ*/6^7['+q:ӗjx]ֶkuWģԮ) e Ӷ}%" +>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!>= +{Rtd)翍
ǟqU W7{%vfpwΊWqlo@j5ǃ\[3;XJ&㺰F)n.-rɍ4H* +4 ?O<i%\*-kxi[A~LX:-+xY}*SYnC|SXy٭c{;53 n!C]Z{QAz2Xx@0'[
Hck s.#7m3ꠗ.Xs%)m4V=)`\nɨlrZm3*Qd);\)1KU1॓{-ijVWUJ{kkmefH{t9l-I,Mj"KmS%rm̺'|Ot:=k&yn .*FbwzҚt7v7sˁ؍lEۗ>8'>tEix@y.b.+ +\vwh_l[7*Jִ< +Hyt1+հwoCR`jΦJ;Zx;bۻ'
V;>'%~5z|Ydޱk#v4bj([/;a\O{Rc,^{YҾd*+ +PZx+Z\%o+ +^gI3 +YՐe XԦ
OccrqGΛ+ erJ0FۆzA/&띗/3m][p[vNYd{zҗ 4ZZ~֧%<+@)[jpxSn|} `.[,ѣ1#yZ"eB! +rޥS9QΚb\ŞEȬz^fbxm#E +q.95t=hCcRaMͼ4}r*85rx.5Kcm|9
c"ǜ![3>\a$u%=] +7Y@.A
9S{K{N-e|,oqD箨MԤ2IߚDꢺ-VSl]5Rs@<,XrwlnRűl0RN˅>y?JАXW!ZDK_5`1BocbJt}|J{brPMN/;]e¥ͷbBAM]nVs_.w(g~n87>HN +k;WoFC,&g}AI}X
qҬ._kVhf-}H9=]A^LκifĭCXgZX7DN + +bDC[t:-akp<arB';DK)| ![!fC!f)V0dT +睳,XKSs-v1knYYk w8=tKZ^1-g, +<,t^W_nŅuf-cZ-sLAsfoӘt@]XڳՎlݮ*1-֊5cﻗIUV3ǃ7culQat(VZ@KCUҺo&e={$J;4BW?{{{5X?`_%,Clzr֙%g[ƊmKoXQ6 b[ +(mkWӁB7$mKdߚ\7T&P![w5 ?+m_ⳚuB82y[\q^J.=+@ĘC 7
1f +t|g4Wa_g8YXNg15,[ЦW?>i{}vR3Ek@̝|[mYuAP +`8,e&.&!!+PĆ + ըƇt65At+
y<?Y1r:vS3eRȼ?d@&|S/<q +Ϋ?0վ kern33
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab 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 Binary files differindex 9b210c89..27c217e4 100644 --- a/examples_web/textures_image_drawing.data +++ b/examples_web/textures_image_drawing.data 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; |
