gallium/egl: st_profiles are build time decision, treat them as such

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.

v2: Drop unused variable i.

Acked-by: Chia-I Wu <olvaffe@gmail.com> (v1)
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
Emil Velikov 2014-05-10 03:41:44 +01:00
parent a9afdcc3a1
commit b52a530ce2
9 changed files with 28 additions and 55 deletions

View file

@ -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 \

View file

@ -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'))

View file

@ -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) {

View file

@ -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);

View file

@ -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 := \

View file

@ -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'

View file

@ -87,11 +87,6 @@ create_sw_screen(struct sw_winsys *ws)
static const struct egl_g3d_loader *
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;

View file

@ -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;
}

View file

@ -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_ */