diff options
Diffstat (limited to 'src/gallium/targets/egl-apis')
-rw-r--r-- | src/gallium/targets/egl-apis/Makefile | 77 | ||||
-rw-r--r-- | src/gallium/targets/egl-apis/SConscript | 33 | ||||
-rw-r--r-- | src/gallium/targets/egl-apis/api_GL.c | 7 | ||||
-rw-r--r-- | src/gallium/targets/egl-apis/api_GLESv1_CM.c | 7 | ||||
-rw-r--r-- | src/gallium/targets/egl-apis/api_GLESv2.c | 8 | ||||
-rw-r--r-- | src/gallium/targets/egl-apis/api_OpenVG.c | 8 |
6 files changed, 140 insertions, 0 deletions
diff --git a/src/gallium/targets/egl-apis/Makefile b/src/gallium/targets/egl-apis/Makefile new file mode 100644 index 0000000000..88915bfc5e --- /dev/null +++ b/src/gallium/targets/egl-apis/Makefile @@ -0,0 +1,77 @@ +# src/gallium/targets/egl-apis + +TOP = ../../../.. +include $(TOP)/configs/current + +OUTPUT_PREFIX := api_ +OUTPUT_PATH := $(TOP)/$(LIB_DIR)/egl + +OUTPUTS := $(addsuffix .so, $(EGL_CLIENT_APIS)) +OUTPUTS := $(addprefix $(OUTPUT_PATH)/$(OUTPUT_PREFIX), $(OUTPUTS)) + +# include dirs +GL_INCLUDES := -I$(TOP)/src/mesa -I$(TOP)/src/gallium/include +GLESv1_CM_INCLUDES := $(GL_INCLUDES) +GLESv2_INCLUDES := $(GL_INCLUDES) +OpenVG_INCLUDES := -I$(TOP)/src/gallium/state_trackers/vega -I$(TOP)/src/gallium/include + +# system libs +GL_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) +GLESv1_CM_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv1_CM_LIB) +GLESv2_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv2_LIB) +OpenVG_SYS := -lm -L$(TOP)/$(LIB_DIR) -l$(VG_LIB) + +# $(LLVM_LIBS) will be discarded except for OpenGL, which creates a private +# draw context for selection/feedback mode. +ifeq ($(MESA_LLVM),1) +GL_SYS += $(LLVM_LIBS) +GLESv1_CM_SYS += $(LLVM_LIBS) +GLESv2_SYS += $(LLVM_LIBS) +OpenVG_SYS += $(LLVM_LIBS) +LDFLAGS += $(LLVM_LDFLAGS) +endif + +# project libs +GL_LIBS := $(TOP)/src/mesa/libmesagallium.a +GLESv1_CM_LIBS := $(TOP)/src/mesa/libes1gallium.a +GLESv2_LIBS := $(TOP)/src/mesa/libes2gallium.a +OpenVG_LIBS := $(TOP)/src/gallium/state_trackers/vega/libvega.a + +# objects +GL_OBJECTS := api_GL.o +GLESv1_CM_OBJECTS := api_GLESv1_CM.o +GLESv2_OBJECTS := api_GLESv2.o +OpenVG_OBJECTS := api_OpenVG.o + +default: $(OUTPUTS) + +api_%.o: api_%.c + $(CC) -c -o $@ $< $($*_INCLUDES) $(DEFINES) $(CFLAGS) + +define mklib +$(MKLIB) -o $(notdir $@) -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ + -install $(OUTPUT_PATH) $(MKLIB_OPTIONS) \ + $($(1)_OBJECTS) $($(1)_LIBS) $(GALLIUM_AUXILIARIES) $($(1)_SYS) +endef + +$(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GL_LIB).so: $(GL_OBJECTS) $(GL_LIBS) + $(call mklib,GL) + +$(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GLESv1_CM_LIB).so: $(GLESv1_CM_OBJECTS) $(GLESv1_CM_LIBS) + $(call mklib,GLESv1_CM) + +$(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GLESv2_LIB).so: $(GLESv2_OBJECTS) $(GLESv2_LIBS) + $(call mklib,GLESv2) + +$(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(VG_LIB).so: $(OpenVG_OBJECTS) $(OpenVG_LIBS) + $(call mklib,OpenVG) + +install: $(OUTPUTS) + $(INSTALL) -d $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR) + for out in $(OUTPUTS); do \ + $(MINSTALL) -m 755 "$$out" $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR); \ + done + +clean: + -rm -f $(OUTPUTS) + -rm -f *.o diff --git a/src/gallium/targets/egl-apis/SConscript b/src/gallium/targets/egl-apis/SConscript new file mode 100644 index 0000000000..0ca3d1fb9e --- /dev/null +++ b/src/gallium/targets/egl-apis/SConscript @@ -0,0 +1,33 @@ +####################################################################### +# SConscript for egl-apis target + +Import('*') + +if env['platform'] == 'windows': + + env = env.Clone() + + env.Append(CPPPATH = [ + '#/src/gallium/state_trackers/vega', + ]) + + env.Append(LIBS = [ + 'gdi32', + 'user32', + 'kernel32', + 'ws2_32', + ]) + + env['no_import_lib'] = 1 + + api_libs = { + 'OpenVG': vgapi + st_vega, + } + + for name in api_libs.keys(): + api = env.SharedLibrary( + target = 'api_' + name, + source = ['api_' + name + '.c'], + LIBS = api_libs[name] + gallium + env['LIBS'], + ) + env.InstallSharedLibrary(api) diff --git a/src/gallium/targets/egl-apis/api_GL.c b/src/gallium/targets/egl-apis/api_GL.c new file mode 100644 index 0000000000..6d172745c0 --- /dev/null +++ b/src/gallium/targets/egl-apis/api_GL.c @@ -0,0 +1,7 @@ +#include "state_tracker/st_gl_api.h" + +PUBLIC struct st_api * +st_api_create_OpenGL() +{ + return st_gl_api_create(); +} diff --git a/src/gallium/targets/egl-apis/api_GLESv1_CM.c b/src/gallium/targets/egl-apis/api_GLESv1_CM.c new file mode 100644 index 0000000000..825fdac215 --- /dev/null +++ b/src/gallium/targets/egl-apis/api_GLESv1_CM.c @@ -0,0 +1,7 @@ +#include "state_tracker/st_gl_api.h" + +PUBLIC struct st_api * +st_api_create_OpenGL_ES1() +{ + return st_gl_api_create(); +} diff --git a/src/gallium/targets/egl-apis/api_GLESv2.c b/src/gallium/targets/egl-apis/api_GLESv2.c new file mode 100644 index 0000000000..5c773aaf93 --- /dev/null +++ b/src/gallium/targets/egl-apis/api_GLESv2.c @@ -0,0 +1,8 @@ +#include "state_tracker/st_gl_api.h" + +PUBLIC struct st_api * +st_api_create_OpenGL_ES2() +{ + /* linker magic creates different versions */ + return st_gl_api_create(); +} diff --git a/src/gallium/targets/egl-apis/api_OpenVG.c b/src/gallium/targets/egl-apis/api_OpenVG.c new file mode 100644 index 0000000000..f85ebea8a1 --- /dev/null +++ b/src/gallium/targets/egl-apis/api_OpenVG.c @@ -0,0 +1,8 @@ +#include "state_tracker/st_api.h" +#include "vg_api.h" + +PUBLIC struct st_api * +st_api_create_OpenVG() +{ + return (struct st_api *) vg_api_get(); +} |