Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions emcc.py
Original file line number Diff line number Diff line change
Expand Up @@ -1950,11 +1950,13 @@ def phase_linker_setup(options, state, newargs):

if '_main' in settings.EXPORTED_FUNCTIONS:
settings.EXPORT_IF_DEFINED.append('__main_argc_argv')
elif settings.ASSERTIONS:
# In debug builds when `main` is not explictly requested as an
elif settings.ASSERTIONS and not settings.STANDALONE_WASM:
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is drive by fix. I notices that we were generating the "main exists but not exported" warning in standalone mode, where it does not apply (since we export _start instead and its not optional in the same way)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sgtm but please add a comment on the source explaining that.

# In debug builds when `main` is not explicitly requested as an
# export we still add it to EXPORT_IF_DEFINED so that we can warn
# users who forget to explicitly export `main`.
# See other.test_warn_unexported_main.
# This is not needed in STANDALONE_WASM mode since we export _start
# (unconditionally) rather than main.
settings.EXPORT_IF_DEFINED.append('main')

if settings.ASSERTIONS:
Expand Down
22 changes: 6 additions & 16 deletions src/library_glemu.js
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,6 @@ var LibraryGLEmulation = {
},

glDeleteObject__deps: ['glDeleteProgram', 'glDeleteShader'],
glDeleteObject__sig: 'vi',
glDeleteObject: function(id) {
if (GL.programs[id]) {
_glDeleteProgram(id);
Expand All @@ -766,7 +765,6 @@ var LibraryGLEmulation = {
},
glDeleteObjectARB: 'glDeleteObject',

glGetObjectParameteriv__sig: 'viii',
glGetObjectParameteriv__deps: ['glGetProgramiv', 'glGetShaderiv'],
glGetObjectParameteriv: function(id, type, result) {
if (GL.programs[id]) {
Expand Down Expand Up @@ -797,7 +795,6 @@ var LibraryGLEmulation = {
glGetObjectParameterivARB: 'glGetObjectParameteriv',

glGetInfoLog__deps: ['glGetProgramInfoLog', 'glGetShaderInfoLog'],
glGetInfoLog__sig: 'viiii',
glGetInfoLog: function(id, maxLength, length, infoLog) {
if (GL.programs[id]) {
_glGetProgramInfoLog(id, maxLength, length, infoLog);
Expand All @@ -809,7 +806,6 @@ var LibraryGLEmulation = {
},
glGetInfoLogARB: 'glGetInfoLog',

glBindProgram__sig: 'vii',
glBindProgram: function(type, id) {
#if ASSERTIONS
assert(id == 0);
Expand Down Expand Up @@ -3515,7 +3511,6 @@ var LibraryGLEmulation = {
#endif
},

glClientActiveTexture__sig: 'vi',
glClientActiveTexture: function(texture) {
GLImmediate.clientActiveTexture = texture - 0x84C0; // GL_TEXTURE0
},
Expand Down Expand Up @@ -3562,9 +3557,8 @@ var LibraryGLEmulation = {
},

// Vertex array object (VAO) support. TODO: when the WebGL extension is popular, use that and remove this code and GL.vaos
emulGlGenVertexArrays__deps: ['$GLEmulation'],
emulGlGenVertexArrays__sig: 'vii',
emulGlGenVertexArrays: function(n, vaos) {
$emulGlGenVertexArrays__deps: ['$GLEmulation'],
$emulGlGenVertexArrays: function(n, vaos) {
for (var i = 0; i < n; i++) {
var id = GL.getNewId(GLEmulation.vaos);
GLEmulation.vaos[id] = {
Expand All @@ -3578,23 +3572,20 @@ var LibraryGLEmulation = {
{{{ makeSetValue('vaos', 'i*4', 'id', 'i32') }}};
}
},
emulGlDeleteVertexArrays__sig: 'vii',
emulGlDeleteVertexArrays: function(n, vaos) {
$emulGlDeleteVertexArrays: function(n, vaos) {
for (var i = 0; i < n; i++) {
var id = {{{ makeGetValue('vaos', 'i*4', 'i32') }}};
GLEmulation.vaos[id] = null;
if (GLEmulation.currentVao && GLEmulation.currentVao.id == id) GLEmulation.currentVao = null;
}
},
emulGlIsVertexArray__sig: 'vi',
emulGlIsVertexArray: function(array) {
$emulGlIsVertexArray: function(array) {
var vao = GLEmulation.vaos[array];
if (!vao) return 0;
return 1;
},
emulGlBindVertexArray__deps: ['glBindBuffer', 'glEnableVertexAttribArray', 'glVertexAttribPointer', 'glEnableClientState'],
emulGlBindVertexArray__sig: 'vi',
emulGlBindVertexArray: function(vao) {
$emulGlBindVertexArray__deps: ['glBindBuffer', 'glEnableVertexAttribArray', 'glVertexAttribPointer', 'glEnableClientState'],
$emulGlBindVertexArray: function(vao) {
// undo vao-related things, wipe the slate clean, both for vao of 0 or an actual vao
GLEmulation.currentVao = null; // make sure the commands we run here are not recorded
if (GLImmediate.lastRenderer) GLImmediate.lastRenderer.cleanup();
Expand Down Expand Up @@ -3671,7 +3662,6 @@ var LibraryGLEmulation = {
GLImmediate.matrixLib.mat4.set({{{ makeHEAPView('F64', 'matrix', 'matrix+' + (16*8)) }}}, GLImmediate.matrix[GLImmediate.currentMatrix]);
},

glLoadMatrixf__sig: 'vp',
glLoadMatrixf: function(matrix) {
#if GL_DEBUG
if (GL.debug) dbg('glLoadMatrixf receiving: ' + Array.prototype.slice.call(HEAPF32.subarray(matrix >> 2, (matrix >> 2) + 16)));
Expand Down
105 changes: 105 additions & 0 deletions src/library_sigs.js
Original file line number Diff line number Diff line change
Expand Up @@ -713,6 +713,7 @@ sigs = {
getprotobynumber__sig: 'pi',
getprotoent__sig: 'p',
glActiveTexture__sig: 'vi',
glAlphaFunc__sig: 'vif',
glAttachShader__sig: 'vii',
glBegin__sig: 'vi',
glBeginQuery__sig: 'vii',
Expand All @@ -722,7 +723,10 @@ sigs = {
glBindBufferBase__sig: 'viii',
glBindBufferRange__sig: 'viiipp',
glBindFramebuffer__sig: 'vii',
glBindFramebufferOES__sig: 'vii',
glBindProgram__sig: 'vii',
glBindRenderbuffer__sig: 'vii',
glBindRenderbufferOES__sig: 'vii',
glBindSampler__sig: 'vii',
glBindTexture__sig: 'vii',
glBindTransformFeedback__sig: 'vii',
Expand All @@ -737,6 +741,7 @@ sigs = {
glBufferData__sig: 'vippi',
glBufferSubData__sig: 'vippp',
glCheckFramebufferStatus__sig: 'ii',
glCheckFramebufferStatusOES__sig: 'ii',
glClear__sig: 'vi',
glClearBufferfi__sig: 'viifi',
glClearBufferfv__sig: 'viip',
Expand All @@ -746,8 +751,27 @@ sigs = {
glClearDepth__sig: 'vd',
glClearDepthf__sig: 'vf',
glClearStencil__sig: 'vi',
glClientActiveTexture__sig: 'vi',
glClientWaitSync__sig: 'ipij',
glClipPlane__sig: 'vip',
glColor3d__sig: 'vddd',
glColor3f__sig: 'vfff',
glColor3fv__sig: 'vp',
glColor3ub__sig: 'viii',
glColor3ubv__sig: 'vp',
glColor3ui__sig: 'viii',
glColor3uiv__sig: 'vp',
glColor3us__sig: 'viii',
glColor3usv__sig: 'vp',
glColor4d__sig: 'vdddd',
glColor4f__sig: 'vffff',
glColor4fv__sig: 'vp',
glColor4ub__sig: 'viiii',
glColor4ubv__sig: 'vp',
glColor4ui__sig: 'viiii',
glColor4us__sig: 'viiii',
glColorMask__sig: 'viiii',
glColorPointer__sig: 'viiip',
glCompileShader__sig: 'vi',
glCompressedTexImage2D__sig: 'viiiiiiip',
glCompressedTexImage3D__sig: 'viiiiiiiip',
Expand All @@ -762,9 +786,12 @@ sigs = {
glCullFace__sig: 'vi',
glDeleteBuffers__sig: 'vip',
glDeleteFramebuffers__sig: 'vip',
glDeleteFramebuffersOES__sig: 'vip',
glDeleteObject__sig: 'vi',
glDeleteProgram__sig: 'vi',
glDeleteQueries__sig: 'vip',
glDeleteRenderbuffers__sig: 'vip',
glDeleteRenderbuffersOES__sig: 'vip',
glDeleteSamplers__sig: 'vip',
glDeleteShader__sig: 'vi',
glDeleteSync__sig: 'vp',
Expand All @@ -778,30 +805,46 @@ sigs = {
glDepthRangef__sig: 'vff',
glDetachShader__sig: 'vii',
glDisable__sig: 'vi',
glDisableClientState__sig: 'vi',
glDisableVertexAttribArray__sig: 'vi',
glDrawArrays__sig: 'viii',
glDrawArraysInstanced__sig: 'viiii',
glDrawArraysInstancedBaseInstance__sig: 'viiiii',
glDrawBuffer__sig: 'vi',
glDrawBuffers__sig: 'vip',
glDrawElements__sig: 'viiip',
glDrawElementsInstanced__sig: 'viiipi',
glDrawRangeElements__sig: 'viiiiip',
glEnable__sig: 'vi',
glEnableClientState__sig: 'vi',
glEnableVertexAttribArray__sig: 'vi',
glEnd__sig: 'v',
glEndQuery__sig: 'vi',
glEndTransformFeedback__sig: 'v',
glFenceSync__sig: 'pii',
glFinish__sig: 'v',
glFlush__sig: 'v',
glFlushMappedBufferRange__sig: 'vipp',
glFogf__sig: 'vif',
glFogfv__sig: 'vip',
glFogi__sig: 'vii',
glFogiv__sig: 'vip',
glFogx__sig: 'vii',
glFogxv__sig: 'vip',
glFramebufferRenderbuffer__sig: 'viiii',
glFramebufferRenderbufferOES__sig: 'viiii',
glFramebufferTexture2D__sig: 'viiiii',
glFramebufferTexture2DOES__sig: 'viiiii',
glFramebufferTextureLayer__sig: 'viiiii',
glFrontFace__sig: 'vi',
glFrustum__sig: 'vdddddd',
glFrustumf__sig: 'vffffff',
glGenBuffers__sig: 'vip',
glGenFramebuffers__sig: 'vip',
glGenFramebuffersOES__sig: 'vip',
glGenQueries__sig: 'vip',
glGenRenderbuffers__sig: 'vip',
glGenRenderbuffersOES__sig: 'vip',
glGenSamplers__sig: 'vip',
glGenTextures__sig: 'vip',
glGenTransformFeedbacks__sig: 'vip',
Expand All @@ -824,17 +867,21 @@ sigs = {
glGetFloatv__sig: 'vip',
glGetFragDataLocation__sig: 'iip',
glGetFramebufferAttachmentParameteriv__sig: 'viiip',
glGetInfoLog__sig: 'viipp',
glGetInteger64i_v__sig: 'viip',
glGetInteger64v__sig: 'vip',
glGetIntegeri_v__sig: 'viip',
glGetIntegerv__sig: 'vip',
glGetInternalformativ__sig: 'viiiip',
glGetObjectParameteriv__sig: 'viip',
glGetPointerv__sig: 'vip',
glGetProgramBinary__sig: 'viippp',
glGetProgramInfoLog__sig: 'viipp',
glGetProgramiv__sig: 'viip',
glGetQueryObjectuiv__sig: 'viip',
glGetQueryiv__sig: 'viip',
glGetRenderbufferParameteriv__sig: 'viip',
glGetRenderbufferParameterivOES__sig: 'viip',
glGetSamplerParameterfv__sig: 'viip',
glGetSamplerParameteriv__sig: 'viip',
glGetShaderInfoLog__sig: 'viipp',
Expand All @@ -844,6 +891,9 @@ sigs = {
glGetString__sig: 'pi',
glGetStringi__sig: 'pii',
glGetSynciv__sig: 'vpiipp',
glGetTexEnvfv__sig: 'viip',
glGetTexEnviv__sig: 'viip',
glGetTexLevelParameteriv__sig: 'viiip',
glGetTexParameterfv__sig: 'viip',
glGetTexParameteriv__sig: 'viip',
glGetTransformFeedbackVarying__sig: 'viiipppp',
Expand Down Expand Up @@ -874,30 +924,57 @@ sigs = {
glIsTransformFeedback__sig: 'ii',
glIsVertexArray__sig: 'ii',
glIsVertexArrayOES__sig: 'ii',
glLightModelf__sig: 'vif',
glLightModelfv__sig: 'vip',
glLightfv__sig: 'viip',
glLineWidth__sig: 'vf',
glLinkProgram__sig: 'vi',
glLoadIdentity__sig: 'v',
glLoadMatrixd__sig: 'vp',
glLoadMatrixf__sig: 'vp',
glLoadTransposeMatrixd__sig: 'vp',
glLoadTransposeMatrixf__sig: 'vp',
glMapBufferRange__sig: 'pippi',
glMaterialfv__sig: 'viip',
glMatrixMode__sig: 'vi',
glMultMatrixd__sig: 'vp',
glMultMatrixf__sig: 'vp',
glMultTransposeMatrixd__sig: 'vp',
glMultTransposeMatrixf__sig: 'vp',
glMultiDrawArrays__sig: 'vippi',
glMultiDrawElements__sig: 'vipipi',
glNormal3f__sig: 'vfff',
glNormal3fv__sig: 'vp',
glNormalPointer__sig: 'viip',
glOrtho__sig: 'vdddddd',
glOrthof__sig: 'vffffff',
glPauseTransformFeedback__sig: 'v',
glPixelStorei__sig: 'vii',
glPointSize__sig: 'vf',
glPolygonMode__sig: 'vii',
glPolygonOffset__sig: 'vff',
glPopMatrix__sig: 'v',
glProgramBinary__sig: 'viipi',
glProgramParameteri__sig: 'viii',
glPushMatrix__sig: 'v',
glReadBuffer__sig: 'vi',
glReadPixels__sig: 'viiiiiip',
glReleaseShaderCompiler__sig: 'v',
glRenderbufferStorage__sig: 'viiii',
glRenderbufferStorageMultisample__sig: 'viiiii',
glRenderbufferStorageOES__sig: 'viiii',
glResumeTransformFeedback__sig: 'v',
glRotated__sig: 'vdddd',
glRotatef__sig: 'vffff',
glSampleCoverage__sig: 'vfi',
glSamplerParameterf__sig: 'viif',
glSamplerParameterfv__sig: 'viip',
glSamplerParameteri__sig: 'viii',
glSamplerParameteriv__sig: 'viip',
glScaled__sig: 'vddd',
glScalef__sig: 'vfff',
glScissor__sig: 'viiii',
glShadeModel__sig: 'vi',
glShaderBinary__sig: 'vipipi',
glShaderSource__sig: 'viipp',
glStencilFunc__sig: 'viii',
Expand All @@ -906,6 +983,18 @@ sigs = {
glStencilMaskSeparate__sig: 'vii',
glStencilOp__sig: 'viii',
glStencilOpSeparate__sig: 'viiii',
glTexCoord2f__sig: 'vff',
glTexCoord2fv__sig: 'vp',
glTexCoord2i__sig: 'vii',
glTexCoord3f__sig: 'vfff',
glTexCoord4f__sig: 'vffff',
glTexCoordPointer__sig: 'viiip',
glTexEnvf__sig: 'viif',
glTexEnvfv__sig: 'viip',
glTexEnvi__sig: 'viii',
glTexGenfv__sig: 'viip',
glTexGeni__sig: 'viii',
glTexImage1D__sig: 'viiiiiiip',
glTexImage2D__sig: 'viiiiiiiip',
glTexImage3D__sig: 'viiiiiiiiip',
glTexParameterf__sig: 'viif',
Expand All @@ -917,6 +1006,8 @@ sigs = {
glTexSubImage2D__sig: 'viiiiiiiip',
glTexSubImage3D__sig: 'viiiiiiiiiip',
glTransformFeedbackVaryings__sig: 'viipi',
glTranslated__sig: 'vddd',
glTranslatef__sig: 'vfff',
glUniform1f__sig: 'vif',
glUniform1fv__sig: 'viip',
glUniform1i__sig: 'vii',
Expand Down Expand Up @@ -954,6 +1045,15 @@ sigs = {
glUnmapBuffer__sig: 'ii',
glUseProgram__sig: 'vi',
glValidateProgram__sig: 'vi',
glVertex2f__sig: 'vff',
glVertex2fv__sig: 'vp',
glVertex2i__sig: 'vii',
glVertex3f__sig: 'vfff',
glVertex3fv__sig: 'vp',
glVertex3i__sig: 'viii',
glVertex4f__sig: 'vffff',
glVertex4fv__sig: 'vp',
glVertex4i__sig: 'viiii',
glVertexAttrib1f__sig: 'vif',
glVertexAttrib1fv__sig: 'vip',
glVertexAttrib2f__sig: 'viff',
Expand All @@ -977,6 +1077,11 @@ sigs = {
glewGetString__sig: 'pi',
glewInit__sig: 'i',
glewIsSupported__sig: 'ip',
gluLookAt__sig: 'vddddddddd',
gluOrtho2D__sig: 'vdddd',
gluPerspective__sig: 'vdddd',
gluProject__sig: 'idddpppppp',
gluUnProject__sig: 'idddpppppp',
glutCreateWindow__sig: 'ip',
glutDestroyWindow__sig: 'vi',
glutDisplayFunc__sig: 'vp',
Expand Down
Loading