Skip to content

Commit e3f334c

Browse files
authored
Add auto-generated signatures for LEGACY_GL_EMULATION symbols. NFC (emscripten-core#19235)
I had to add declaration for a few GL extensions which we define in JS both via the ARB name as well as the base name.
1 parent a531c68 commit e3f334c

File tree

6 files changed

+137
-30
lines changed

6 files changed

+137
-30
lines changed

emcc.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1950,11 +1950,13 @@ def phase_linker_setup(options, state, newargs):
19501950

19511951
if '_main' in settings.EXPORTED_FUNCTIONS:
19521952
settings.EXPORT_IF_DEFINED.append('__main_argc_argv')
1953-
elif settings.ASSERTIONS:
1954-
# In debug builds when `main` is not explictly requested as an
1953+
elif settings.ASSERTIONS and not settings.STANDALONE_WASM:
1954+
# In debug builds when `main` is not explicitly requested as an
19551955
# export we still add it to EXPORT_IF_DEFINED so that we can warn
19561956
# users who forget to explicitly export `main`.
19571957
# See other.test_warn_unexported_main.
1958+
# This is not needed in STANDALONE_WASM mode since we export _start
1959+
# (unconditionally) rather than main.
19581960
settings.EXPORT_IF_DEFINED.append('main')
19591961

19601962
if settings.ASSERTIONS:

src/library_glemu.js

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,6 @@ var LibraryGLEmulation = {
754754
},
755755

756756
glDeleteObject__deps: ['glDeleteProgram', 'glDeleteShader'],
757-
glDeleteObject__sig: 'vi',
758757
glDeleteObject: function(id) {
759758
if (GL.programs[id]) {
760759
_glDeleteProgram(id);
@@ -766,7 +765,6 @@ var LibraryGLEmulation = {
766765
},
767766
glDeleteObjectARB: 'glDeleteObject',
768767

769-
glGetObjectParameteriv__sig: 'viii',
770768
glGetObjectParameteriv__deps: ['glGetProgramiv', 'glGetShaderiv'],
771769
glGetObjectParameteriv: function(id, type, result) {
772770
if (GL.programs[id]) {
@@ -797,7 +795,6 @@ var LibraryGLEmulation = {
797795
glGetObjectParameterivARB: 'glGetObjectParameteriv',
798796

799797
glGetInfoLog__deps: ['glGetProgramInfoLog', 'glGetShaderInfoLog'],
800-
glGetInfoLog__sig: 'viiii',
801798
glGetInfoLog: function(id, maxLength, length, infoLog) {
802799
if (GL.programs[id]) {
803800
_glGetProgramInfoLog(id, maxLength, length, infoLog);
@@ -809,7 +806,6 @@ var LibraryGLEmulation = {
809806
},
810807
glGetInfoLogARB: 'glGetInfoLog',
811808

812-
glBindProgram__sig: 'vii',
813809
glBindProgram: function(type, id) {
814810
#if ASSERTIONS
815811
assert(id == 0);
@@ -3515,7 +3511,6 @@ var LibraryGLEmulation = {
35153511
#endif
35163512
},
35173513

3518-
glClientActiveTexture__sig: 'vi',
35193514
glClientActiveTexture: function(texture) {
35203515
GLImmediate.clientActiveTexture = texture - 0x84C0; // GL_TEXTURE0
35213516
},
@@ -3562,9 +3557,8 @@ var LibraryGLEmulation = {
35623557
},
35633558

35643559
// Vertex array object (VAO) support. TODO: when the WebGL extension is popular, use that and remove this code and GL.vaos
3565-
emulGlGenVertexArrays__deps: ['$GLEmulation'],
3566-
emulGlGenVertexArrays__sig: 'vii',
3567-
emulGlGenVertexArrays: function(n, vaos) {
3560+
$emulGlGenVertexArrays__deps: ['$GLEmulation'],
3561+
$emulGlGenVertexArrays: function(n, vaos) {
35683562
for (var i = 0; i < n; i++) {
35693563
var id = GL.getNewId(GLEmulation.vaos);
35703564
GLEmulation.vaos[id] = {
@@ -3578,23 +3572,20 @@ var LibraryGLEmulation = {
35783572
{{{ makeSetValue('vaos', 'i*4', 'id', 'i32') }}};
35793573
}
35803574
},
3581-
emulGlDeleteVertexArrays__sig: 'vii',
3582-
emulGlDeleteVertexArrays: function(n, vaos) {
3575+
$emulGlDeleteVertexArrays: function(n, vaos) {
35833576
for (var i = 0; i < n; i++) {
35843577
var id = {{{ makeGetValue('vaos', 'i*4', 'i32') }}};
35853578
GLEmulation.vaos[id] = null;
35863579
if (GLEmulation.currentVao && GLEmulation.currentVao.id == id) GLEmulation.currentVao = null;
35873580
}
35883581
},
3589-
emulGlIsVertexArray__sig: 'vi',
3590-
emulGlIsVertexArray: function(array) {
3582+
$emulGlIsVertexArray: function(array) {
35913583
var vao = GLEmulation.vaos[array];
35923584
if (!vao) return 0;
35933585
return 1;
35943586
},
3595-
emulGlBindVertexArray__deps: ['glBindBuffer', 'glEnableVertexAttribArray', 'glVertexAttribPointer', 'glEnableClientState'],
3596-
emulGlBindVertexArray__sig: 'vi',
3597-
emulGlBindVertexArray: function(vao) {
3587+
$emulGlBindVertexArray__deps: ['glBindBuffer', 'glEnableVertexAttribArray', 'glVertexAttribPointer', 'glEnableClientState'],
3588+
$emulGlBindVertexArray: function(vao) {
35983589
// undo vao-related things, wipe the slate clean, both for vao of 0 or an actual vao
35993590
GLEmulation.currentVao = null; // make sure the commands we run here are not recorded
36003591
if (GLImmediate.lastRenderer) GLImmediate.lastRenderer.cleanup();
@@ -3671,7 +3662,6 @@ var LibraryGLEmulation = {
36713662
GLImmediate.matrixLib.mat4.set({{{ makeHEAPView('F64', 'matrix', 'matrix+' + (16*8)) }}}, GLImmediate.matrix[GLImmediate.currentMatrix]);
36723663
},
36733664

3674-
glLoadMatrixf__sig: 'vp',
36753665
glLoadMatrixf: function(matrix) {
36763666
#if GL_DEBUG
36773667
if (GL.debug) dbg('glLoadMatrixf receiving: ' + Array.prototype.slice.call(HEAPF32.subarray(matrix >> 2, (matrix >> 2) + 16)));

src/library_sigs.js

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -713,6 +713,7 @@ sigs = {
713713
getprotobynumber__sig: 'pi',
714714
getprotoent__sig: 'p',
715715
glActiveTexture__sig: 'vi',
716+
glAlphaFunc__sig: 'vif',
716717
glAttachShader__sig: 'vii',
717718
glBegin__sig: 'vi',
718719
glBeginQuery__sig: 'vii',
@@ -722,7 +723,10 @@ sigs = {
722723
glBindBufferBase__sig: 'viii',
723724
glBindBufferRange__sig: 'viiipp',
724725
glBindFramebuffer__sig: 'vii',
726+
glBindFramebufferOES__sig: 'vii',
727+
glBindProgram__sig: 'vii',
725728
glBindRenderbuffer__sig: 'vii',
729+
glBindRenderbufferOES__sig: 'vii',
726730
glBindSampler__sig: 'vii',
727731
glBindTexture__sig: 'vii',
728732
glBindTransformFeedback__sig: 'vii',
@@ -737,6 +741,7 @@ sigs = {
737741
glBufferData__sig: 'vippi',
738742
glBufferSubData__sig: 'vippp',
739743
glCheckFramebufferStatus__sig: 'ii',
744+
glCheckFramebufferStatusOES__sig: 'ii',
740745
glClear__sig: 'vi',
741746
glClearBufferfi__sig: 'viifi',
742747
glClearBufferfv__sig: 'viip',
@@ -746,8 +751,27 @@ sigs = {
746751
glClearDepth__sig: 'vd',
747752
glClearDepthf__sig: 'vf',
748753
glClearStencil__sig: 'vi',
754+
glClientActiveTexture__sig: 'vi',
749755
glClientWaitSync__sig: 'ipij',
756+
glClipPlane__sig: 'vip',
757+
glColor3d__sig: 'vddd',
758+
glColor3f__sig: 'vfff',
759+
glColor3fv__sig: 'vp',
760+
glColor3ub__sig: 'viii',
761+
glColor3ubv__sig: 'vp',
762+
glColor3ui__sig: 'viii',
763+
glColor3uiv__sig: 'vp',
764+
glColor3us__sig: 'viii',
765+
glColor3usv__sig: 'vp',
766+
glColor4d__sig: 'vdddd',
767+
glColor4f__sig: 'vffff',
768+
glColor4fv__sig: 'vp',
769+
glColor4ub__sig: 'viiii',
770+
glColor4ubv__sig: 'vp',
771+
glColor4ui__sig: 'viiii',
772+
glColor4us__sig: 'viiii',
750773
glColorMask__sig: 'viiii',
774+
glColorPointer__sig: 'viiip',
751775
glCompileShader__sig: 'vi',
752776
glCompressedTexImage2D__sig: 'viiiiiiip',
753777
glCompressedTexImage3D__sig: 'viiiiiiiip',
@@ -762,9 +786,12 @@ sigs = {
762786
glCullFace__sig: 'vi',
763787
glDeleteBuffers__sig: 'vip',
764788
glDeleteFramebuffers__sig: 'vip',
789+
glDeleteFramebuffersOES__sig: 'vip',
790+
glDeleteObject__sig: 'vi',
765791
glDeleteProgram__sig: 'vi',
766792
glDeleteQueries__sig: 'vip',
767793
glDeleteRenderbuffers__sig: 'vip',
794+
glDeleteRenderbuffersOES__sig: 'vip',
768795
glDeleteSamplers__sig: 'vip',
769796
glDeleteShader__sig: 'vi',
770797
glDeleteSync__sig: 'vp',
@@ -778,30 +805,46 @@ sigs = {
778805
glDepthRangef__sig: 'vff',
779806
glDetachShader__sig: 'vii',
780807
glDisable__sig: 'vi',
808+
glDisableClientState__sig: 'vi',
781809
glDisableVertexAttribArray__sig: 'vi',
782810
glDrawArrays__sig: 'viii',
783811
glDrawArraysInstanced__sig: 'viiii',
784812
glDrawArraysInstancedBaseInstance__sig: 'viiiii',
813+
glDrawBuffer__sig: 'vi',
785814
glDrawBuffers__sig: 'vip',
786815
glDrawElements__sig: 'viiip',
787816
glDrawElementsInstanced__sig: 'viiipi',
788817
glDrawRangeElements__sig: 'viiiiip',
789818
glEnable__sig: 'vi',
819+
glEnableClientState__sig: 'vi',
790820
glEnableVertexAttribArray__sig: 'vi',
821+
glEnd__sig: 'v',
791822
glEndQuery__sig: 'vi',
792823
glEndTransformFeedback__sig: 'v',
793824
glFenceSync__sig: 'pii',
794825
glFinish__sig: 'v',
795826
glFlush__sig: 'v',
796827
glFlushMappedBufferRange__sig: 'vipp',
828+
glFogf__sig: 'vif',
829+
glFogfv__sig: 'vip',
830+
glFogi__sig: 'vii',
831+
glFogiv__sig: 'vip',
832+
glFogx__sig: 'vii',
833+
glFogxv__sig: 'vip',
797834
glFramebufferRenderbuffer__sig: 'viiii',
835+
glFramebufferRenderbufferOES__sig: 'viiii',
798836
glFramebufferTexture2D__sig: 'viiiii',
837+
glFramebufferTexture2DOES__sig: 'viiiii',
799838
glFramebufferTextureLayer__sig: 'viiiii',
800839
glFrontFace__sig: 'vi',
840+
glFrustum__sig: 'vdddddd',
841+
glFrustumf__sig: 'vffffff',
801842
glGenBuffers__sig: 'vip',
802843
glGenFramebuffers__sig: 'vip',
844+
glGenFramebuffersOES__sig: 'vip',
803845
glGenQueries__sig: 'vip',
804846
glGenRenderbuffers__sig: 'vip',
847+
glGenRenderbuffersOES__sig: 'vip',
805848
glGenSamplers__sig: 'vip',
806849
glGenTextures__sig: 'vip',
807850
glGenTransformFeedbacks__sig: 'vip',
@@ -824,17 +867,21 @@ sigs = {
824867
glGetFloatv__sig: 'vip',
825868
glGetFragDataLocation__sig: 'iip',
826869
glGetFramebufferAttachmentParameteriv__sig: 'viiip',
870+
glGetInfoLog__sig: 'viipp',
827871
glGetInteger64i_v__sig: 'viip',
828872
glGetInteger64v__sig: 'vip',
829873
glGetIntegeri_v__sig: 'viip',
830874
glGetIntegerv__sig: 'vip',
831875
glGetInternalformativ__sig: 'viiiip',
876+
glGetObjectParameteriv__sig: 'viip',
877+
glGetPointerv__sig: 'vip',
832878
glGetProgramBinary__sig: 'viippp',
833879
glGetProgramInfoLog__sig: 'viipp',
834880
glGetProgramiv__sig: 'viip',
835881
glGetQueryObjectuiv__sig: 'viip',
836882
glGetQueryiv__sig: 'viip',
837883
glGetRenderbufferParameteriv__sig: 'viip',
884+
glGetRenderbufferParameterivOES__sig: 'viip',
838885
glGetSamplerParameterfv__sig: 'viip',
839886
glGetSamplerParameteriv__sig: 'viip',
840887
glGetShaderInfoLog__sig: 'viipp',
@@ -844,6 +891,9 @@ sigs = {
844891
glGetString__sig: 'pi',
845892
glGetStringi__sig: 'pii',
846893
glGetSynciv__sig: 'vpiipp',
894+
glGetTexEnvfv__sig: 'viip',
895+
glGetTexEnviv__sig: 'viip',
896+
glGetTexLevelParameteriv__sig: 'viiip',
847897
glGetTexParameterfv__sig: 'viip',
848898
glGetTexParameteriv__sig: 'viip',
849899
glGetTransformFeedbackVarying__sig: 'viiipppp',
@@ -874,30 +924,57 @@ sigs = {
874924
glIsTransformFeedback__sig: 'ii',
875925
glIsVertexArray__sig: 'ii',
876926
glIsVertexArrayOES__sig: 'ii',
927+
glLightModelf__sig: 'vif',
928+
glLightModelfv__sig: 'vip',
929+
glLightfv__sig: 'viip',
877930
glLineWidth__sig: 'vf',
878931
glLinkProgram__sig: 'vi',
879932
glLoadIdentity__sig: 'v',
933+
glLoadMatrixd__sig: 'vp',
934+
glLoadMatrixf__sig: 'vp',
935+
glLoadTransposeMatrixd__sig: 'vp',
936+
glLoadTransposeMatrixf__sig: 'vp',
880937
glMapBufferRange__sig: 'pippi',
938+
glMaterialfv__sig: 'viip',
881939
glMatrixMode__sig: 'vi',
940+
glMultMatrixd__sig: 'vp',
941+
glMultMatrixf__sig: 'vp',
942+
glMultTransposeMatrixd__sig: 'vp',
943+
glMultTransposeMatrixf__sig: 'vp',
882944
glMultiDrawArrays__sig: 'vippi',
883945
glMultiDrawElements__sig: 'vipipi',
946+
glNormal3f__sig: 'vfff',
947+
glNormal3fv__sig: 'vp',
948+
glNormalPointer__sig: 'viip',
949+
glOrtho__sig: 'vdddddd',
950+
glOrthof__sig: 'vffffff',
884951
glPauseTransformFeedback__sig: 'v',
885952
glPixelStorei__sig: 'vii',
953+
glPointSize__sig: 'vf',
954+
glPolygonMode__sig: 'vii',
886955
glPolygonOffset__sig: 'vff',
956+
glPopMatrix__sig: 'v',
887957
glProgramBinary__sig: 'viipi',
888958
glProgramParameteri__sig: 'viii',
959+
glPushMatrix__sig: 'v',
889960
glReadBuffer__sig: 'vi',
890961
glReadPixels__sig: 'viiiiiip',
891962
glReleaseShaderCompiler__sig: 'v',
892963
glRenderbufferStorage__sig: 'viiii',
893964
glRenderbufferStorageMultisample__sig: 'viiiii',
965+
glRenderbufferStorageOES__sig: 'viiii',
894966
glResumeTransformFeedback__sig: 'v',
967+
glRotated__sig: 'vdddd',
968+
glRotatef__sig: 'vffff',
895969
glSampleCoverage__sig: 'vfi',
896970
glSamplerParameterf__sig: 'viif',
897971
glSamplerParameterfv__sig: 'viip',
898972
glSamplerParameteri__sig: 'viii',
899973
glSamplerParameteriv__sig: 'viip',
974+
glScaled__sig: 'vddd',
975+
glScalef__sig: 'vfff',
900976
glScissor__sig: 'viiii',
977+
glShadeModel__sig: 'vi',
901978
glShaderBinary__sig: 'vipipi',
902979
glShaderSource__sig: 'viipp',
903980
glStencilFunc__sig: 'viii',
@@ -906,6 +983,18 @@ sigs = {
906983
glStencilMaskSeparate__sig: 'vii',
907984
glStencilOp__sig: 'viii',
908985
glStencilOpSeparate__sig: 'viiii',
986+
glTexCoord2f__sig: 'vff',
987+
glTexCoord2fv__sig: 'vp',
988+
glTexCoord2i__sig: 'vii',
989+
glTexCoord3f__sig: 'vfff',
990+
glTexCoord4f__sig: 'vffff',
991+
glTexCoordPointer__sig: 'viiip',
992+
glTexEnvf__sig: 'viif',
993+
glTexEnvfv__sig: 'viip',
994+
glTexEnvi__sig: 'viii',
995+
glTexGenfv__sig: 'viip',
996+
glTexGeni__sig: 'viii',
997+
glTexImage1D__sig: 'viiiiiiip',
909998
glTexImage2D__sig: 'viiiiiiiip',
910999
glTexImage3D__sig: 'viiiiiiiiip',
9111000
glTexParameterf__sig: 'viif',
@@ -917,6 +1006,8 @@ sigs = {
9171006
glTexSubImage2D__sig: 'viiiiiiiip',
9181007
glTexSubImage3D__sig: 'viiiiiiiiiip',
9191008
glTransformFeedbackVaryings__sig: 'viipi',
1009+
glTranslated__sig: 'vddd',
1010+
glTranslatef__sig: 'vfff',
9201011
glUniform1f__sig: 'vif',
9211012
glUniform1fv__sig: 'viip',
9221013
glUniform1i__sig: 'vii',
@@ -954,6 +1045,15 @@ sigs = {
9541045
glUnmapBuffer__sig: 'ii',
9551046
glUseProgram__sig: 'vi',
9561047
glValidateProgram__sig: 'vi',
1048+
glVertex2f__sig: 'vff',
1049+
glVertex2fv__sig: 'vp',
1050+
glVertex2i__sig: 'vii',
1051+
glVertex3f__sig: 'vfff',
1052+
glVertex3fv__sig: 'vp',
1053+
glVertex3i__sig: 'viii',
1054+
glVertex4f__sig: 'vffff',
1055+
glVertex4fv__sig: 'vp',
1056+
glVertex4i__sig: 'viiii',
9571057
glVertexAttrib1f__sig: 'vif',
9581058
glVertexAttrib1fv__sig: 'vip',
9591059
glVertexAttrib2f__sig: 'viff',
@@ -977,6 +1077,11 @@ sigs = {
9771077
glewGetString__sig: 'pi',
9781078
glewInit__sig: 'i',
9791079
glewIsSupported__sig: 'ip',
1080+
gluLookAt__sig: 'vddddddddd',
1081+
gluOrtho2D__sig: 'vdddd',
1082+
gluPerspective__sig: 'vdddd',
1083+
gluProject__sig: 'idddpppppp',
1084+
gluUnProject__sig: 'idddpppppp',
9801085
glutCreateWindow__sig: 'ip',
9811086
glutDestroyWindow__sig: 'vi',
9821087
glutDisplayFunc__sig: 'vp',

0 commit comments

Comments
 (0)