The profiles are present depending on the defines at build time. Drop the extra functions and feed the defines directly into the state-tracker at build time.
Cc: Chia-I Wu <olva...@gmail.com> Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> --- src/gallium/state_trackers/egl/Android.mk | 5 +++- src/gallium/state_trackers/egl/SConscript | 12 +++++++++ src/gallium/state_trackers/egl/common/egl_g3d.c | 20 +++++++++------ .../state_trackers/egl/common/egl_g3d_loader.h | 1 - src/gallium/targets/egl-static/Android.mk | 2 -- src/gallium/targets/egl-static/SConscript | 6 ----- src/gallium/targets/egl-static/egl.c | 3 --- src/gallium/targets/egl-static/egl_st.c | 29 ---------------------- src/gallium/targets/egl-static/egl_st.h | 3 --- 9 files changed, 28 insertions(+), 53 deletions(-) diff --git a/src/gallium/state_trackers/egl/Android.mk b/src/gallium/state_trackers/egl/Android.mk index b27e14b..7c4c936 100644 --- a/src/gallium/state_trackers/egl/Android.mk +++ b/src/gallium/state_trackers/egl/Android.mk @@ -32,7 +32,10 @@ LOCAL_SRC_FILES := \ $(common_FILES) \ $(android_FILES) -LOCAL_CFLAGS := -DHAVE_ANDROID_BACKEND +LOCAL_CFLAGS := \ + -DFEATURE_ES1=1 \ + -DFEATURE_ES2=1 \ + -DHAVE_ANDROID_BACKEND LOCAL_C_INCLUDES := \ $(GALLIUM_TOP)/state_trackers/egl \ diff --git a/src/gallium/state_trackers/egl/SConscript b/src/gallium/state_trackers/egl/SConscript index 3ddf0bc..3727fb2 100644 --- a/src/gallium/state_trackers/egl/SConscript +++ b/src/gallium/state_trackers/egl/SConscript @@ -14,6 +14,18 @@ env.Append(CPPPATH = [ sources = env.ParseSourceList('Makefile.sources', 'common_FILES') +# OpenGL ES and OpenGL +if env['gles']: + env.Append(CPPDEFINES = [ + 'FEATURE_GL=1', + 'FEATURE_ES1=1', + 'FEATURE_ES2=1' + ]) + +# OpenVG +if True: + env.Append(CPPDEFINES = ['FEATURE_VG=1']) + if env['platform'] == 'windows': env.Append(CPPDEFINES = ['HAVE_GDI_BACKEND']) sources.append(env.ParseSourceList('Makefile.sources', 'gdi_FILES')) diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c b/src/gallium/state_trackers/egl/common/egl_g3d.c index 7cc4e8f..d3f5e92 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d.c @@ -548,14 +548,18 @@ egl_g3d_initialize(_EGLDriver *drv, _EGLDisplay *dpy) goto fail; } - if (gdpy->loader->profile_masks[ST_API_OPENGL] & ST_PROFILE_DEFAULT_MASK) - dpy->ClientAPIs |= EGL_OPENGL_BIT; - if (gdpy->loader->profile_masks[ST_API_OPENGL] & ST_PROFILE_OPENGL_ES1_MASK) - dpy->ClientAPIs |= EGL_OPENGL_ES_BIT; - if (gdpy->loader->profile_masks[ST_API_OPENGL] & ST_PROFILE_OPENGL_ES2_MASK) - dpy->ClientAPIs |= EGL_OPENGL_ES2_BIT; - if (gdpy->loader->profile_masks[ST_API_OPENVG] & ST_PROFILE_DEFAULT_MASK) - dpy->ClientAPIs |= EGL_OPENVG_BIT; +#if FEATURE_GL + dpy->ClientAPIs |= EGL_OPENGL_BIT; +#endif +#if FEATURE_ES1 + dpy->ClientAPIs |= EGL_OPENGL_ES_BIT; +#endif +#if FEATURE_ES2 + dpy->ClientAPIs |= EGL_OPENGL_ES2_BIT; +#endif +#if FEATURE_VG + dpy->ClientAPIs |= EGL_OPENVG_BIT; +#endif gdpy->smapi = egl_g3d_create_st_manager(dpy); if (!gdpy->smapi) { diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_loader.h b/src/gallium/state_trackers/egl/common/egl_g3d_loader.h index 51b4d19..03db153 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d_loader.h +++ b/src/gallium/state_trackers/egl/common/egl_g3d_loader.h @@ -36,7 +36,6 @@ struct pipe_screen; struct sw_winsys; struct egl_g3d_loader { - uint profile_masks[ST_API_COUNT]; struct st_api *(*get_st_api)(enum st_api_type api); struct pipe_screen *(*create_drm_screen)(const char *name, int fd); diff --git a/src/gallium/targets/egl-static/Android.mk b/src/gallium/targets/egl-static/Android.mk index 37244b5..01408a7 100644 --- a/src/gallium/targets/egl-static/Android.mk +++ b/src/gallium/targets/egl-static/Android.mk @@ -31,8 +31,6 @@ LOCAL_SRC_FILES := \ egl_st.c LOCAL_CFLAGS := \ - -DFEATURE_ES1=1 \ - -DFEATURE_ES2=1 \ -D_EGL_MAIN=_eglBuiltInDriverGALLIUM LOCAL_C_INCLUDES := \ diff --git a/src/gallium/targets/egl-static/SConscript b/src/gallium/targets/egl-static/SConscript index 83937fe..f879cc3 100644 --- a/src/gallium/targets/egl-static/SConscript +++ b/src/gallium/targets/egl-static/SConscript @@ -63,11 +63,6 @@ if env['platform'] == 'windows': # OpenGL ES and OpenGL if env['gles']: - env.Append(CPPDEFINES = [ - 'FEATURE_GL=1', - 'FEATURE_ES1=1', - 'FEATURE_ES2=1' - ]) env.Prepend(LIBPATH = [shared_glapi.dir]) # manually add LIBPREFIX on windows glapi_name = 'glapi' if env['platform'] != 'windows' else 'libglapi' @@ -75,7 +70,6 @@ if env['gles']: # OpenVG if True: - env.Append(CPPDEFINES = ['FEATURE_VG=1']) env.Prepend(LIBPATH = [openvg.dir]) # manually add LIBPREFIX on windows openvg_name = 'OpenVG' if env['platform'] != 'windows' else 'libOpenVG' diff --git a/src/gallium/targets/egl-static/egl.c b/src/gallium/targets/egl-static/egl.c index f19f024..ff71042 100644 --- a/src/gallium/targets/egl-static/egl.c +++ b/src/gallium/targets/egl-static/egl.c @@ -89,9 +89,6 @@ loader_init(void) { int i; - for (i = 0; i < ST_API_COUNT; i++) - egl_g3d_loader.profile_masks[i] = egl_st_get_profile_mask(i); - egl_g3d_loader.get_st_api = get_st_api; egl_g3d_loader.create_drm_screen = create_drm_screen; egl_g3d_loader.create_sw_screen = create_sw_screen; diff --git a/src/gallium/targets/egl-static/egl_st.c b/src/gallium/targets/egl-static/egl_st.c index da0cd5b..656135b 100644 --- a/src/gallium/targets/egl-static/egl_st.c +++ b/src/gallium/targets/egl-static/egl_st.c @@ -165,32 +165,3 @@ egl_st_destroy_api(struct st_api *stapi) stapi->destroy(stapi); #endif } - -uint -egl_st_get_profile_mask(enum st_api_type api) -{ - uint mask = 0x0; - - switch (api) { - case ST_API_OPENGL: -#if FEATURE_GL - mask |= ST_PROFILE_DEFAULT_MASK; -#endif -#if FEATURE_ES1 - mask |= ST_PROFILE_OPENGL_ES1_MASK; -#endif -#if FEATURE_ES2 - mask |= ST_PROFILE_OPENGL_ES2_MASK; -#endif - break; - case ST_API_OPENVG: -#if FEATURE_VG - mask |= ST_PROFILE_DEFAULT_MASK; -#endif - break; - default: - break; - } - - return mask; -} diff --git a/src/gallium/targets/egl-static/egl_st.h b/src/gallium/targets/egl-static/egl_st.h index f17e85b..1d947b2 100644 --- a/src/gallium/targets/egl-static/egl_st.h +++ b/src/gallium/targets/egl-static/egl_st.h @@ -36,7 +36,4 @@ egl_st_create_api(enum st_api_type api); void egl_st_destroy_api(struct st_api *stapi); -uint -egl_st_get_profile_mask(enum st_api_type api); - #endif /* _EGL_ST_H_ */ -- 1.9.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev