aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-02-21 00:54:48 +0100
committerraysan5 <raysan5@gmail.com>2016-02-21 00:54:48 +0100
commit579bec5d783eca54732c858e7e862e17a7f0be77 (patch)
tree8dafbbf022bc93a8027db33f2587846c79f4d7e6
parent318638757b14d5b5944113a34ec8cb88cc36ced3 (diff)
downloadraylib-579bec5d783eca54732c858e7e862e17a7f0be77.tar.gz
raylib-579bec5d783eca54732c858e7e862e17a7f0be77.zip
Updated web examples
-rw-r--r--examples_web/text_bmfont_ttf.data44
-rw-r--r--examples_web/text_bmfont_ttf.js115
-rw-r--r--examples_web/textures_image_drawing.c6
-rw-r--r--examples_web/textures_image_drawing.databin958505 -> 683586 bytes
-rw-r--r--examples_web/textures_image_drawing.js103
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%ۂIRjpj b}J97=.[oj51 g.%G<Άy1tI܋UR+
+^h\u-9W.Oˍ!wB1 k}|'&=f9<؝ jfaha1 . q
+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Ց
+Kwhc5rD&-yPXY7JɅ|񬞹A&c4=\5,H4 t/
+!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@퀛S53–FP+p;6/O\͖K3m8G>?[}IB
+ps
+}B4 :KSnlZGbi=_ɜ?}x>lUO4[K{8n90̕\!@)[3gP( <5k_ '\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{t9l-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~n 87>HN
+k;WoFC,&g}AI}X qҬ._kVhf-}H9=]A^LκifĭCXgZX7DN
+
+bDC[t:-akp<arB';DK)| ![!fC!f)V0dT
+睳,XKSs-v1׮knYYk 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![w 5 ?+m_ⳚuB82y[\q^J.=+@ĘC 7 1f
+t|g4Wa_g8YXNg15 ,[ЦW?>i{}vR3Ek@̝|[mYuAP
+`8,e&.&!!+PĆ
+ ըƇt65At+ y<?Y1 r: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
index 9b210c89..27c217e4 100644
--- a/examples_web/textures_image_drawing.data
+++ b/examples_web/textures_image_drawing.data
Binary files 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;