From d14fe6598b87092374b1be6eb655153d270c3066 Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 31 Aug 2011 10:31:32 +0200 Subject: mesa git update 31 aug 2011 --- mesalib/src/glu/sgi/Makefile.mgw | 230 --------------------- mesalib/src/glu/sgi/Makefile.win | 149 ------------- mesalib/src/glu/sgi/SConscript | 1 - mesalib/src/glu/sgi/include/gluos.h | 6 + mesalib/src/mesa/Android.mk | 35 ++++ mesalib/src/mesa/Makefile.mgw | 216 ------------------- mesalib/src/mesa/drivers/dri/Android.mk | 62 ++++++ mesalib/src/mesa/drivers/dri/Makefile.defines | 21 +- mesalib/src/mesa/drivers/dri/common/Android.mk | 41 ++++ .../src/mesa/drivers/dri/common/Makefile.sources | 19 ++ mesalib/src/mesa/drivers/dri/swrast/Makefile | 1 - mesalib/src/mesa/drivers/windows/gdi/wgl.c | 23 --- mesalib/src/mesa/main/state.c | 2 +- mesalib/src/mesa/main/uniforms.c | 137 ++++++------ mesalib/src/mesa/program/prog_parameter.h | 2 +- mesalib/src/mesa/tnl/t_draw.c | 9 +- 16 files changed, 257 insertions(+), 697 deletions(-) delete mode 100644 mesalib/src/glu/sgi/Makefile.mgw delete mode 100644 mesalib/src/glu/sgi/Makefile.win delete mode 100644 mesalib/src/mesa/Makefile.mgw create mode 100644 mesalib/src/mesa/drivers/dri/Android.mk create mode 100644 mesalib/src/mesa/drivers/dri/common/Android.mk create mode 100644 mesalib/src/mesa/drivers/dri/common/Makefile.sources (limited to 'mesalib/src') diff --git a/mesalib/src/glu/sgi/Makefile.mgw b/mesalib/src/glu/sgi/Makefile.mgw deleted file mode 100644 index d00d97a3b..000000000 --- a/mesalib/src/glu/sgi/Makefile.mgw +++ /dev/null @@ -1,230 +0,0 @@ -# Mesa 3-D graphics library -# Version: 5.1 -# -# Copyright (C) 1999-2003 Brian Paul All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# MinGW core makefile v1.4 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : dborca@users.sourceforge.net -# Web : http://www.geocities.com/dborca - -# MinGW core-glu makefile updated for Mesa 7.0 -# -# Updated : by Heromyth, on 2007-7-21 -# Email : zxpmyth@yahoo.com.cn -# Bugs : 1) All the default settings work fine. But the setting X86=1 can't work. -# The others havn't been tested yet. -# 2) The generated DLLs are *not* compatible with the ones built -# with the other compilers like VC8, especially for GLUT. -# 3) Although more tests are needed, it can be used individually! - -# -# Available options: -# -# Environment variables: -# CFLAGS -# -# GLIDE path to Glide3 SDK; used with FX. -# default = $(TOP)/glide3 -# FX=1 build for 3dfx Glide3. Note that this disables -# compilation of most WMesa code and requires fxMesa. -# As a consequence, you'll need the Win32 Glide3 -# library to build any application. -# default = no -# ICD=1 build the installable client driver interface -# (windows opengl driver interface) -# default = no -# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow). -# default = no -# -# Targets: -# all: build GL -# clean: remove object files -# - - - -.PHONY: all clean -.INTERMEDIATE: x86/gen_matypes.exe -.SUFFIXES: .rc .res - -# Set this to the prefix of your build tools, i.e. mingw32- -TOOLS_PREFIX = mingw32- - -TOP = ../../.. -LIBDIR = $(TOP)/lib - -LIB_NAME = glu32 -DLL_EXT = .dll -IMP_EXT = .a -LIB_PRE = lib -STRIP = -s - -AR = ar -ARFLAGS = crus -DLLTOOL = dlltool - -GLU_DLL = $(LIB_NAME)$(DLL_EXT) -GLU_IMP = $(LIB_PRE)$(LIB_NAME)$(IMP_EXT) -GLU_DEF = $(LIB_NAME).def - -LDLIBS = -L$(LIBDIR) -lopengl32 -LDFLAGS = $(STRIP) -shared -fPIC -Wl,--kill-at - -CFLAGS += -DBUILD_GLU32 -D_DLL - - -CC = $(TOOLS_PREFIX)gcc -CFLAGS += -DNDEBUG -DLIBRARYBUILD -I$(TOP)/include -Iinclude -CXX = $(TOOLS_PREFIX)g++ -CXXFLAGS = $(CFLAGS) -Ilibnurbs/internals -Ilibnurbs/interface -Ilibnurbs/nurbtess - -AR = ar -ARFLAGS = crus - -UNLINK = del $(subst /,\,$(1)) -ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) -UNLINK = $(RM) $(1) -endif -ifneq ($(wildcard $(addsuffix /rm,$(subst :, ,$(PATH)))),) -UNLINK = $(RM) $(1) -endif - -C_SOURCES = \ - libutil/error.c \ - libutil/glue.c \ - libutil/mipmap.c \ - libutil/project.c \ - libutil/quad.c \ - libutil/registry.c \ - libtess/dict.c \ - libtess/geom.c \ - libtess/memalloc.c \ - libtess/mesh.c \ - libtess/normal.c \ - libtess/priorityq.c \ - libtess/render.c \ - libtess/sweep.c \ - libtess/tess.c \ - libtess/tessmono.c - -CC_SOURCES = \ - libnurbs/interface/bezierEval.cc \ - libnurbs/interface/bezierPatch.cc \ - libnurbs/interface/bezierPatchMesh.cc \ - libnurbs/interface/glcurveval.cc \ - libnurbs/interface/glinterface.cc \ - libnurbs/interface/glrenderer.cc \ - libnurbs/interface/glsurfeval.cc \ - libnurbs/interface/incurveeval.cc \ - libnurbs/interface/insurfeval.cc \ - libnurbs/internals/arc.cc \ - libnurbs/internals/arcsorter.cc \ - libnurbs/internals/arctess.cc \ - libnurbs/internals/backend.cc \ - libnurbs/internals/basiccrveval.cc \ - libnurbs/internals/basicsurfeval.cc \ - libnurbs/internals/bin.cc \ - libnurbs/internals/bufpool.cc \ - libnurbs/internals/cachingeval.cc \ - libnurbs/internals/ccw.cc \ - libnurbs/internals/coveandtiler.cc \ - libnurbs/internals/curve.cc \ - libnurbs/internals/curvelist.cc \ - libnurbs/internals/curvesub.cc \ - libnurbs/internals/dataTransform.cc \ - libnurbs/internals/displaylist.cc \ - libnurbs/internals/flist.cc \ - libnurbs/internals/flistsorter.cc \ - libnurbs/internals/hull.cc \ - libnurbs/internals/intersect.cc \ - libnurbs/internals/knotvector.cc \ - libnurbs/internals/mapdesc.cc \ - libnurbs/internals/mapdescv.cc \ - libnurbs/internals/maplist.cc \ - libnurbs/internals/mesher.cc \ - libnurbs/internals/monoTriangulationBackend.cc \ - libnurbs/internals/monotonizer.cc \ - libnurbs/internals/mycode.cc \ - libnurbs/internals/nurbsinterfac.cc \ - libnurbs/internals/nurbstess.cc \ - libnurbs/internals/patch.cc \ - libnurbs/internals/patchlist.cc \ - libnurbs/internals/quilt.cc \ - libnurbs/internals/reader.cc \ - libnurbs/internals/renderhints.cc \ - libnurbs/internals/slicer.cc \ - libnurbs/internals/sorter.cc \ - libnurbs/internals/splitarcs.cc \ - libnurbs/internals/subdivider.cc \ - libnurbs/internals/tobezier.cc \ - libnurbs/internals/trimline.cc \ - libnurbs/internals/trimregion.cc \ - libnurbs/internals/trimvertpool.cc \ - libnurbs/internals/uarray.cc \ - libnurbs/internals/varray.cc \ - libnurbs/nurbtess/directedLine.cc \ - libnurbs/nurbtess/gridWrap.cc \ - libnurbs/nurbtess/monoChain.cc \ - libnurbs/nurbtess/monoPolyPart.cc \ - libnurbs/nurbtess/monoTriangulation.cc \ - libnurbs/nurbtess/partitionX.cc \ - libnurbs/nurbtess/partitionY.cc \ - libnurbs/nurbtess/polyDBG.cc \ - libnurbs/nurbtess/polyUtil.cc \ - libnurbs/nurbtess/primitiveStream.cc \ - libnurbs/nurbtess/quicksort.cc \ - libnurbs/nurbtess/rectBlock.cc \ - libnurbs/nurbtess/sampleComp.cc \ - libnurbs/nurbtess/sampleCompBot.cc \ - libnurbs/nurbtess/sampleCompRight.cc \ - libnurbs/nurbtess/sampleCompTop.cc \ - libnurbs/nurbtess/sampleMonoPoly.cc \ - libnurbs/nurbtess/sampledLine.cc \ - libnurbs/nurbtess/searchTree.cc - -SOURCES = $(C_SOURCES) $(CC_SOURCES) - -OBJECTS = $(addsuffix .o,$(basename $(SOURCES))) - -.c.o: - $(CC) -o $@ $(CFLAGS) -c $< -.cc.o: - $(CXX) -o $@ $(CXXFLAGS) -c $< - - -all: $(LIBDIR) $(LIBDIR)/$(GLU_DLL) $(LIBDIR)/$(GLU_IMP) - -$(LIBDIR): - mkdir -p $(LIBDIR) - -$(LIBDIR)/$(GLU_DLL) $(LIBDIR)/$(GLU_IMP): $(OBJECTS) - $(CXX) $(LDFLAGS) -o $(LIBDIR)/$(GLU_DLL) $^ $(LDLIBS) - $(DLLTOOL) --as=as --dllname $(LIB_NAME) --output-def $(LIBDIR)/$(GLU_DEF) $^ - $(DLLTOOL) --as=as -k --dllname $(LIB_NAME) --output-lib $(LIBDIR)/$(GLU_IMP) --def $(LIBDIR)/$(GLU_DEF) - - -clean: - -$(call UNLINK,libutil/*.o) - -$(call UNLINK,libtess/*.o) - -$(call UNLINK,libnurbs/interface/*.o) - -$(call UNLINK,libnurbs/internals/*.o) - -$(call UNLINK,libnurbs/nurbtess/*.o) diff --git a/mesalib/src/glu/sgi/Makefile.win b/mesalib/src/glu/sgi/Makefile.win deleted file mode 100644 index 9321732ef..000000000 --- a/mesalib/src/glu/sgi/Makefile.win +++ /dev/null @@ -1,149 +0,0 @@ -# Makefile for Win32 - -!include - -.SUFFIXES : .cc - -TOP = .. - -GLU_SRCS_CC = \ - libnurbs\interface\bezierEval.cc \ - libnurbs\interface\bezierPatch.cc \ - libnurbs\interface\bezierPatchMesh.cc \ - libnurbs\interface\glcurveval.cc \ - libnurbs\interface\glinterface.cc \ - libnurbs\interface\glrenderer.cc \ - libnurbs\interface\glsurfeval.cc \ - libnurbs\interface\incurveeval.cc \ - libnurbs\interface\insurfeval.cc \ - libnurbs\internals\arc.cc \ - libnurbs\internals\arcsorter.cc \ - libnurbs\internals\arctess.cc \ - libnurbs\internals\backend.cc \ - libnurbs\internals\basiccrveval.cc \ - libnurbs\internals\basicsurfeval.cc \ - libnurbs\internals\bin.cc \ - libnurbs\internals\bufpool.cc \ - libnurbs\internals\cachingeval.cc \ - libnurbs\internals\ccw.cc \ - libnurbs\internals\coveandtiler.cc \ - libnurbs\internals\curve.cc \ - libnurbs\internals\curvelist.cc \ - libnurbs\internals\curvesub.cc \ - libnurbs\internals\dataTransform.cc \ - libnurbs\internals\displaylist.cc \ - libnurbs\internals\flist.cc \ - libnurbs\internals\flistsorter.cc \ - libnurbs\internals\hull.cc \ - libnurbs\internals\intersect.cc \ - libnurbs\internals\knotvector.cc \ - libnurbs\internals\mapdesc.cc \ - libnurbs\internals\mapdescv.cc \ - libnurbs\internals\maplist.cc \ - libnurbs\internals\mesher.cc \ - libnurbs\internals\monoTriangulationBackend.cc \ - libnurbs\internals\monotonizer.cc \ - libnurbs\internals\mycode.cc \ - libnurbs\internals\nurbsinterfac.cc \ - libnurbs\internals\nurbstess.cc \ - libnurbs\internals\patch.cc \ - libnurbs\internals\patchlist.cc \ - libnurbs\internals\quilt.cc \ - libnurbs\internals\reader.cc \ - libnurbs\internals\renderhints.cc \ - libnurbs\internals\slicer.cc \ - libnurbs\internals\sorter.cc \ - libnurbs\internals\splitarcs.cc \ - libnurbs\internals\subdivider.cc \ - libnurbs\internals\tobezier.cc \ - libnurbs\internals\trimline.cc \ - libnurbs\internals\trimregion.cc \ - libnurbs\internals\trimvertpool.cc \ - libnurbs\internals\uarray.cc \ - libnurbs\internals\varray.cc \ - libnurbs\nurbtess\directedLine.cc \ - libnurbs\nurbtess\gridWrap.cc \ - libnurbs\nurbtess\monoChain.cc \ - libnurbs\nurbtess\monoPolyPart.cc \ - libnurbs\nurbtess\monoTriangulation.cc \ - libnurbs\nurbtess\partitionX.cc \ - libnurbs\nurbtess\partitionY.cc \ - libnurbs\nurbtess\polyDBG.cc \ - libnurbs\nurbtess\polyUtil.cc \ - libnurbs\nurbtess\primitiveStream.cc \ - libnurbs\nurbtess\quicksort.cc \ - libnurbs\nurbtess\rectBlock.cc \ - libnurbs\nurbtess\sampleComp.cc \ - libnurbs\nurbtess\sampleCompBot.cc \ - libnurbs\nurbtess\sampleCompRight.cc \ - libnurbs\nurbtess\sampleCompTop.cc \ - libnurbs\nurbtess\sampleMonoPoly.cc \ - libnurbs\nurbtess\sampledLine.cc \ - libnurbs\nurbtess\searchTree.cc - -GLU_SRCS = \ - libtess\dict.c \ - libtess\geom.c \ - libtess\memalloc.c \ - libtess\mesh.c \ - libtess\normal.c \ - libtess\priorityq.c \ - libtess\render.c \ - libtess\sweep.c \ - libtess\tess.c \ - libtess\tessmono.c \ - libutil\error.c \ - libutil\glue.c \ - libutil\mipmap.c \ - libutil\project.c \ - libutil\quad.c \ - libutil\registry.c - -SRCS = $(GLU_SRCS) - -all : gludll - -!include "$(TOP)/mesawin32.mak" - -gludll : $(GLUDLL) - -CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32 -DLIBRARYBUILD -LFLAGS = $(dlllflags) $(lcommon) $(LFLAGS) - -LIBS = ../lib/$(MESALIB) winmm.lib $(guilibsdll) - -OBJS = $(GLU_SRCS_CC:.cc=.obj) $(GLU_SRCS:.c=.obj) -NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess -CFLAGS = $(CFLAGS) $(NURBSINC) - -$(GLUDLL): $(OBJS) glu.def - $(link) $(LFLAGS) -out:$(GLUDLL) -def:glu.def $(OBJS) $(LIBS) - @echo "copying Mesa GLU dynamic link library to library directory..." - -copy $(GLUDLL) $(TOP)\lib - @echo "copying Mesa GLU import library to library directory..." - -copy $(GLULIB) $(TOP)\lib - -install : $(GLUDLL) $(GLULIB) - @echo "copying Mesa GLU dynamic link library to system directory..." - -copy $(GLUDLL) $(DLLINSTALL) - @echo "copying Mesa GLU header files to include directory..." - -copy ..\..\include\GL\glu.h $(INCLUDEINSTALL) - @echo "copying Mesa GLU import library to system library directory..." - -copy $(GLULIB) $(LIBINSTALL) - -clean :: - @del /f libtess\*.obj libutil\*.obj - @del /f libnurbs\interface\*.obj libnurbs\internals\*.obj - @del /f libnurbs\nurbtess\*.obj - -# override default inference rule with one that writes the object to -# the same subdir as the c file. - -.c.obj : - $(cc) $(CFLAGS) -I. $< /Fo$*.obj - -# /TP is needed for C++ files because MS compiler -# does not recognize .cc as a C++ file. - -.cc.obj : - $(cc) $(CFLAGS) -I. $< /TP /Fo$*.obj diff --git a/mesalib/src/glu/sgi/SConscript b/mesalib/src/glu/sgi/SConscript index a0c6c6584..94c74267f 100644 --- a/mesalib/src/glu/sgi/SConscript +++ b/mesalib/src/glu/sgi/SConscript @@ -11,7 +11,6 @@ env.Prepend(CPPPATH = [ ]) env.Prepend(CPPDEFINES = [ - 'NDEBUG', 'LIBRARYBUILD', 'RESOLVE_3D_TEXTURE_SUPPORT', ]) diff --git a/mesalib/src/glu/sgi/include/gluos.h b/mesalib/src/glu/sgi/include/gluos.h index ac0a7874c..290a06f02 100644 --- a/mesalib/src/glu/sgi/include/gluos.h +++ b/mesalib/src/glu/sgi/include/gluos.h @@ -40,7 +40,13 @@ #define NOIME #define NOMINMAX +#ifdef __MINGW64_VERSION_MAJOR + #undef _WIN32_WINNT +#endif + #ifndef _WIN32_WINNT + /* XXX: Workaround a bug in mingw-w64's headers when NOGDI is set and + * _WIN32_WINNT >= 0x0600 */ #define _WIN32_WINNT 0x0400 #endif #ifndef STRICT diff --git a/mesalib/src/mesa/Android.mk b/mesalib/src/mesa/Android.mk index 67808d491..f21ba3aa0 100644 --- a/mesalib/src/mesa/Android.mk +++ b/mesalib/src/mesa/Android.mk @@ -25,6 +25,12 @@ LOCAL_PATH := $(call my-dir) +# Import the following variables: +# MESA_CXX_SOURCES +# MESA_GALLIUM_CXX_SOURCES +# MESA_GALLIUM_SOURCES +# MESA_SOURCES +# X86_SOURCES include $(LOCAL_PATH)/sources.mak common_CFLAGS := \ @@ -82,6 +88,35 @@ include $(MESA_COMMON_MK) include $(BUILD_STATIC_LIBRARY) endif # MESA_BUILD_GALLIUM +# --------------------------------------- +# Build libmesa_dricore for DRI modules +# --------------------------------------- + +ifeq ($(strip $(MESA_BUILD_CLASSIC)),true) + +include $(CLEAR_VARS) + +LOCAL_MODULE := libmesa_dricore +LOCAL_MODULE_CLASS := STATIC_LIBRARIES + +LOCAL_CFLAGS := \ + $(common_CFLAGS) \ + -DFEATURE_GL=1 + +LOCAL_C_INCLUDES := \ + $(common_C_INCLUDES) + +LOCAL_SRC_FILES := \ + $(MESA_SOURCES) \ + $(MESA_CXX_SOURCES) \ + $(common_ASM) + +include $(LOCAL_PATH)/Android.gen.mk +include $(MESA_COMMON_MK) +include $(BUILD_STATIC_LIBRARY) + +endif # MESA_BUILD_CLASSIC + # --------------------------------------- # Build libmesa_glsl_utils # diff --git a/mesalib/src/mesa/Makefile.mgw b/mesalib/src/mesa/Makefile.mgw deleted file mode 100644 index 23ceaca01..000000000 --- a/mesalib/src/mesa/Makefile.mgw +++ /dev/null @@ -1,216 +0,0 @@ -# Mesa 3-D graphics library -# Version: 7.0 -# -# Copyright (C) 1999-2003 Brian Paul All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# MinGW core makefile v1.4 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : dborca@users.sourceforge.net -# Web : http://www.geocities.com/dborca - -# MinGW core-gl makefile updated for Mesa 7.0 -# -# updated : by Heromyth, on 2007-7-21 -# Email : zxpmyth@yahoo.com.cn -# Bugs : 1) All the default settings work fine. But the setting X86=1 can't work. -# The others havn't been tested yet. -# 2) The generated DLLs are *not* compatible with the ones built -# with the other compilers like VC8, especially for GLUT. -# 3) Although more tests are needed, it can be used individually! - - -# -# Available options: -# -# Environment variables: -# CFLAGS -# -# GLIDE path to Glide3 SDK; used with FX. -# default = $(TOP)/glide3 -# FX=1 build for 3dfx Glide3. Note that this disables -# compilation of most WMesa code and requires fxMesa. -# As a consequence, you'll need the Win32 Glide3 -# library to build any application. -# default = no -# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow). -# default = no -# -# Targets: -# all: build GL -# clean: remove object files -# - - -.PHONY: all clean -.INTERMEDIATE: x86/gen_matypes.exe -.SUFFIXES: .rc .res - -# Set this to the prefix of your build tools, i.e. mingw32- -TOOLS_PREFIX = mingw32- - -LIB_NAME = opengl32 - -DLL_EXT = .dll -IMP_EXT = .a -LIB_PRE = lib -STRIP = -s - -AR = ar -ARFLAGS = crus -DLLTOOL = dlltool - -TOP = ../.. -GLIDE ?= $(TOP)/glide3 -LIBDIR = $(TOP)/lib - -GL_DLL = $(LIB_NAME)$(DLL_EXT) -GL_IMP = $(LIB_PRE)$(LIB_NAME)$(IMP_EXT) - -MESA_LIB = libmesa.a -CC = $(TOOLS_PREFIX)gcc - -LDLIBS = -lgdi32 -luser32 -liberty -LDFLAGS = $(STRIP) -shared -fPIC -Wl,--kill-at - -CFLAGS += -DBUILD_GL32 -D_DLL -DMESA_MINWARN -CFLAGS += -DNDEBUG -DUSE_EXTERNAL_DXTN_LIB=1 - -ifeq ($(FX),1) - CFLAGS += -I$(GLIDE)/include -DFX - LDLIBS += -L$(GLIDE)/lib -lglide3x - GL_DEF = drivers/windows/fx/fxopengl.def - GL_RES = drivers/windows/fx/fx.rc -else - GL_DEF = $(LIB_NAME).def -endif - - - -UNLINK = del $(subst /,\,$(1)) -ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) -UNLINK = $(RM) $(1) -endif -ifneq ($(wildcard $(addsuffix /rm,$(subst :, ,$(PATH)))),) -UNLINK = $(RM) $(1) -endif - -include sources.mak - -CFLAGS += $(INCLUDE_DIRS) - -ifeq ($(X86),1) -CFLAGS += -DUSE_X86_ASM -CFLAGS += -DUSE_MMX_ASM -CFLAGS += -DUSE_SSE_ASM -CFLAGS += -DUSE_3DNOW_ASM -X86_SOURCES += $(X86_API) -else -X86_SOURCES = -endif - -ifeq ($(FX),1) -DRIVER_SOURCES = \ - $(GLIDE_DRIVER_SOURCES) \ - drivers/windows/fx/fxwgl.c -else -DRIVER_SOURCES = \ - drivers/windows/gdi/wmesa.c \ - drivers/windows/gdi/wgl.c -endif - -SOURCES = $(MESA_SOURCES) $(GLAPI_SOURCES) $(X86_SOURCES) $(DRIVER_SOURCES) - -OBJECTS = $(addsuffix .o,$(basename $(SOURCES))) - -X86_OBJECTS = $(addsuffix .o,$(basename $(X86_SOURCES))) - -RESOURCE = $(GL_RES:.rc=.res) - -.c.o: - $(CC) -o $@ $(CFLAGS) -c $< -.s.o: - $(CC) -o $@ $(CFLAGS) -x assembler-with-cpp -c $< - -.rc.res: - windres -o $@ -Irc -Ocoff $< - - -all: $(LIBDIR) $(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP) - -$(LIBDIR): - mkdir -p $(LIBDIR) - -$(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP): $(OBJECTS) $(RESOURCE) - $(CC) $(LDFLAGS) -o $(LIBDIR)/$(GL_DLL) $^ $(LDLIBS) - $(DLLTOOL) --as=as --dllname $(LIB_NAME) --output-def $(LIBDIR)/$(GL_DEF) $^ - $(DLLTOOL) --as=as -k --dllname $(LIB_NAME) --output-lib $(LIBDIR)/$(GL_IMP) --def $(LIBDIR)/$(GL_DEF) - - -$(X86_OBJECTS): x86/matypes.h - -x86/matypes.h: x86/gen_matypes.exe - $(subst /,\,$< > $@) - -x86/gen_matypes.exe: x86/gen_matypes.c - $(CC) -o $@ $(CFLAGS) -s $< - -# [dBorca] -# glapi_x86.S needs some adjustments -# in order to generate correct entrypoints -# Trick: change the following condition to -# be always false if you need C entrypoints -# with USE_X86_ASM (useful for trace/debug) -ifeq (1,1) -x86/glapi_x86.o: x86/glapi_x86.S - $(CC) -o $@ $(CFLAGS) -DSTDCALL_API -c $< -else -glapi/glapi_dispatch.o: glapi/glapi_dispatch.c - $(CC) -o $@ $(CFLAGS) -UUSE_X86_ASM -c $< -glapi/glapi.o: glapi/glapi.c - $(CC) -o $@ $(CFLAGS) -UUSE_X86_ASM -c $< -endif - -# [dBorca] -# if we want codegen, we have to stdcall -tnl/t_vtx_x86_gcc.o: tnl/t_vtx_x86_gcc.S - $(CC) -o $@ $(CFLAGS) -DSTDCALL_API -c $< - -clean: - -$(call UNLINK,glapi/*.o) - -$(call UNLINK,main/*.o) - -$(call UNLINK,math/*.o) - -$(call UNLINK,vbo/*.o) - -$(call UNLINK,program/*.o) - -$(call UNLINK,slang/*.o) - -$(call UNLINK,sparc/*.o) - -$(call UNLINK,ppc/*.o) - -$(call UNLINK,swrast/*.o) - -$(call UNLINK,swrast_setup/*.o) - -$(call UNLINK,tnl/*.o) - -$(call UNLINK,x86/*.o) - -$(call UNLINK,x86/rtasm/*.o) - -$(call UNLINK,x86-64/*.o) - -$(call UNLINK,drivers/common/*.o) - -$(call UNLINK,drivers/glide/*.o) - -$(call UNLINK,drivers/windows/fx/*.o) - -$(call UNLINK,drivers/windows/fx/*.res) - -$(call UNLINK,drivers/windows/gdi/*.o) - -$(call UNLINK,drivers/windows/icd/*.o) diff --git a/mesalib/src/mesa/drivers/dri/Android.mk b/mesalib/src/mesa/drivers/dri/Android.mk new file mode 100644 index 000000000..b8ccd0c1b --- /dev/null +++ b/mesalib/src/mesa/drivers/dri/Android.mk @@ -0,0 +1,62 @@ +# +# Copyright (C) 2011 Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +LOCAL_PATH := $(call my-dir) + +# Import mesa_dri_common_INCLUDES. +include $(LOCAL_PATH)/common/Makefile.sources + +#----------------------------------------------- +# Variables common to all DRI drivers + +MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/dri +MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/dri + +MESA_DRI_C_INCLUDES := \ + $(addprefix $(MESA_TOP)/, $(mesa_dri_common_INCLUDES)) \ + $(DRM_TOP) \ + $(DRM_TOP)/include/drm \ + external/expat/lib + +MESA_DRI_WHOLE_STATIC_LIBRARIES := \ + libmesa_glsl \ + libmesa_dri_common \ + libmesa_dricore + +MESA_DRI_SHARED_LIBRARIES := \ + libcutils \ + libdl \ + libdrm \ + libexpat \ + libglapi \ + liblog + +#----------------------------------------------- +# Build drivers and libmesa_dri_common + +SUBDIRS := common + +ifneq ($(filter i965, $(MESA_GPU_DRIVERS)),) + SUBDIRS += i965 +endif + +include $(foreach d, $(SUBDIRS), $(LOCAL_PATH)/$(d)/Android.mk) diff --git a/mesalib/src/mesa/drivers/dri/Makefile.defines b/mesalib/src/mesa/drivers/dri/Makefile.defines index 19b6de8b8..6ff8df5c0 100644 --- a/mesalib/src/mesa/drivers/dri/Makefile.defines +++ b/mesalib/src/mesa/drivers/dri/Makefile.defines @@ -1,15 +1,13 @@ # -*-makefile-*- +# Import mesa_dri_common_* +include ../common/Makefile.sources + COMMON_GALLIUM_SOURCES = \ - ../common/utils.c \ - ../common/vblank.c \ - ../common/dri_util.c \ - ../common/xmlconfig.c + $(addprefix ../common/, $(mesa_dri_common_gallium_SOURCES)) -COMMON_SOURCES = $(COMMON_GALLIUM_SOURCES) \ - ../../common/driverfuncs.c \ - ../common/texmem.c \ - ../common/drirenderbuffer.c +COMMON_SOURCES = \ + $(addprefix ../common/, $(mesa_dri_common_SOURCES)) INCLUDES = $(SHARED_INCLUDES) $(EXPAT_INCLUDES) @@ -21,13 +19,8 @@ OBJECTS = $(C_SOURCES:.c=.o) \ ### Include directories SHARED_INCLUDES = \ -I. \ - -I$(TOP)/src/mesa/drivers/dri/common \ -Iserver \ - -I$(TOP)/include \ - -I$(TOP)/src/mapi \ - -I$(TOP)/src/mesa \ - -I$(TOP)/src/egl/main \ - -I$(TOP)/src/egl/drivers/dri \ + $(addprefix -I$(TOP)/, $(mesa_dri_common_INCLUDES)) \ $(LIBDRM_CFLAGS) INCLUDES += $(API_DEFINES) diff --git a/mesalib/src/mesa/drivers/dri/common/Android.mk b/mesalib/src/mesa/drivers/dri/common/Android.mk new file mode 100644 index 000000000..76464a153 --- /dev/null +++ b/mesalib/src/mesa/drivers/dri/common/Android.mk @@ -0,0 +1,41 @@ +# +# Mesa 3-D graphics library +# +# Copyright (C) 2011 Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +# +# Build libmesa_dri_common +# + +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +include $(LOCAL_PATH)/Makefile.sources + +LOCAL_MODULE := libmesa_dri_common +LOCAL_MODULE_CLASS := STATIC_LIBRARIES + +LOCAL_C_INCLUDES := $(MESA_DRI_C_INCLUDES) +LOCAL_SRC_FILES := $(mesa_dri_common_SOURCES) + +include $(MESA_COMMON_MK) +include $(BUILD_STATIC_LIBRARY) diff --git a/mesalib/src/mesa/drivers/dri/common/Makefile.sources b/mesalib/src/mesa/drivers/dri/common/Makefile.sources new file mode 100644 index 000000000..3432dda45 --- /dev/null +++ b/mesalib/src/mesa/drivers/dri/common/Makefile.sources @@ -0,0 +1,19 @@ +mesa_dri_common_gallium_SOURCES := \ + utils.c \ + vblank.c \ + dri_util.c \ + xmlconfig.c + +mesa_dri_common_SOURCES := \ + $(mesa_dri_common_gallium_SOURCES) \ + texmem.c \ + drirenderbuffer.c + +# Paths are relative to MESA_TOP. +mesa_dri_common_INCLUDES := \ + include \ + src/egl/drivers/dri \ + src/egl/main \ + src/mapi \ + src/mesa \ + src/mesa/drivers/dri/common diff --git a/mesalib/src/mesa/drivers/dri/swrast/Makefile b/mesalib/src/mesa/drivers/dri/swrast/Makefile index 4cb99fd0e..509fa28b6 100644 --- a/mesalib/src/mesa/drivers/dri/swrast/Makefile +++ b/mesalib/src/mesa/drivers/dri/swrast/Makefile @@ -20,7 +20,6 @@ C_SOURCES = \ ASM_SOURCES = SWRAST_COMMON_SOURCES = \ - ../../common/driverfuncs.c \ ../common/utils.c \ ../common/drisw_util.c diff --git a/mesalib/src/mesa/drivers/windows/gdi/wgl.c b/mesalib/src/mesa/drivers/windows/gdi/wgl.c index bf4ca9c90..33baabee6 100644 --- a/mesalib/src/mesa/drivers/windows/gdi/wgl.c +++ b/mesalib/src/mesa/drivers/windows/gdi/wgl.c @@ -29,31 +29,8 @@ */ -/* We're essentially building part of GDI here, so define this so that - * we get the right export linkage. */ -#ifdef __MINGW32__ - -#include -#include -#include -#include - -# if defined(BUILD_GL32) -# define WINGDIAPI __declspec(dllexport) -# else -# define __W32API_USE_DLLIMPORT__ -# endif - -#include -#include "GL/mesa_wgl.h" -#include - -#else - -#define _GDI32_ #include -#endif #include "main/config.h" #include "glapi/glapi.h" #include "GL/wmesa.h" /* protos for wmesa* functions */ diff --git a/mesalib/src/mesa/main/state.c b/mesalib/src/mesa/main/state.c index 7ad50bcad..457a730de 100644 --- a/mesalib/src/mesa/main/state.c +++ b/mesalib/src/mesa/main/state.c @@ -631,7 +631,7 @@ _mesa_update_state_locked( struct gl_context *ctx ) if (new_state & (_NEW_BUFFERS | _NEW_VIEWPORT)) update_viewport_matrix(ctx); - if (new_state & _NEW_MULTISAMPLE) + if (new_state & (_NEW_MULTISAMPLE | _NEW_BUFFERS)) update_multisample( ctx ); if (new_state & _NEW_COLOR) diff --git a/mesalib/src/mesa/main/uniforms.c b/mesalib/src/mesa/main/uniforms.c index cda840fe2..fe1ce6d7b 100644 --- a/mesalib/src/mesa/main/uniforms.c +++ b/mesalib/src/mesa/main/uniforms.c @@ -55,17 +55,24 @@ static GLenum base_uniform_type(GLenum type) { switch (type) { -#if 0 /* not needed, for now */ case GL_BOOL: case GL_BOOL_VEC2: case GL_BOOL_VEC3: case GL_BOOL_VEC4: return GL_BOOL; -#endif case GL_FLOAT: case GL_FLOAT_VEC2: case GL_FLOAT_VEC3: case GL_FLOAT_VEC4: + case GL_FLOAT_MAT2: + case GL_FLOAT_MAT2x3: + case GL_FLOAT_MAT2x4: + case GL_FLOAT_MAT3x2: + case GL_FLOAT_MAT3: + case GL_FLOAT_MAT3x4: + case GL_FLOAT_MAT4x2: + case GL_FLOAT_MAT4x3: + case GL_FLOAT_MAT4: return GL_FLOAT; case GL_UNSIGNED_INT: case GL_UNSIGNED_INT_VEC2: @@ -408,8 +415,12 @@ get_uniform(struct gl_context *ctx, GLuint program, GLint location, else { const struct gl_program_parameter *p = &prog->Parameters->Parameters[paramPos]; + gl_constant_value (*values)[4]; GLint rows, cols, i, j, k; GLsizei numBytes; + GLenum storage_type; + + values = prog->Parameters->ParameterValues + paramPos + offset; get_uniform_rows_cols(p, &rows, &cols); @@ -421,62 +432,72 @@ get_uniform(struct gl_context *ctx, GLuint program, GLint location, return; } - switch (returnType) { - case GL_FLOAT: - { - GLfloat *params = (GLfloat *) paramsOut; - k = 0; - for (i = 0; i < rows; i++) { - const int base = paramPos + offset + i; - for (j = 0; j < cols; j++ ) { - params[k++] = prog->Parameters->ParameterValues[base][j].f; - } - } - } - break; - case GL_DOUBLE: - { - GLfloat *params = (GLfloat *) paramsOut; - k = 0; - for (i = 0; i < rows; i++) { - const int base = paramPos + offset + i; - for (j = 0; j < cols; j++ ) { - params[k++] = (GLdouble) - prog->Parameters->ParameterValues[base][j].f; - } - } - } - break; - case GL_INT: - { - GLint *params = (GLint *) paramsOut; - k = 0; - for (i = 0; i < rows; i++) { - const int base = paramPos + offset + i; - for (j = 0; j < cols; j++ ) { - params[k++] = ctx->Const.NativeIntegers ? - prog->Parameters->ParameterValues[base][j].i : - (GLint) prog->Parameters->ParameterValues[base][j].f; - } - } - } - break; - case GL_UNSIGNED_INT: - { - GLuint *params = (GLuint *) paramsOut; - k = 0; - for (i = 0; i < rows; i++) { - const int base = paramPos + offset + i; - for (j = 0; j < cols; j++ ) { - params[k++] = ctx->Const.NativeIntegers ? - prog->Parameters->ParameterValues[base][j].u : - (GLuint) prog->Parameters->ParameterValues[base][j].f; - } - } - } - break; - default: - _mesa_problem(ctx, "bad returnType in get_uniform()"); + if (ctx->Const.NativeIntegers) { + storage_type = base_uniform_type(p->DataType); + } else { + storage_type = GL_FLOAT; + } + + k = 0; + for (i = 0; i < rows; i++) { + for (j = 0; j < cols; j++ ) { + void *out = (char *)paramsOut + 4 * k; + + switch (returnType) { + case GL_FLOAT: + switch (storage_type) { + case GL_FLOAT: + *(float *)out = values[i][j].f; + break; + case GL_INT: + case GL_BOOL: /* boolean is just an integer 1 or 0. */ + *(float *)out = values[i][j].i; + break; + case GL_UNSIGNED_INT: + *(float *)out = values[i][j].u; + break; + } + break; + + case GL_INT: + case GL_UNSIGNED_INT: + switch (storage_type) { + case GL_FLOAT: + /* While the GL 3.2 core spec doesn't explicitly + * state how conversion of float uniforms to integer + * values works, in section 6.2 "State Tables" on + * page 267 it says: + * + * "Unless otherwise specified, when floating + * point state is returned as integer values or + * integer state is returned as floating-point + * values it is converted in the fashion + * described in section 6.1.2" + * + * That section, on page 248, says: + * + * "If GetIntegerv or GetInteger64v are called, + * a floating-point value is rounded to the + * nearest integer..." + */ + *(int *)out = IROUND(values[i][j].f); + break; + + case GL_INT: + case GL_UNSIGNED_INT: + case GL_BOOL: + /* type conversions for these to int/uint are just + * copying the data. + */ + *(int *)out = values[i][j].i; + break; + break; + } + break; + } + + k++; + } } } } diff --git a/mesalib/src/mesa/program/prog_parameter.h b/mesalib/src/mesa/program/prog_parameter.h index 1a5ed3439..4c2773a62 100644 --- a/mesalib/src/mesa/program/prog_parameter.h +++ b/mesalib/src/mesa/program/prog_parameter.h @@ -53,7 +53,7 @@ typedef union gl_constant_value { GLfloat f; - GLboolean b; + GLint b; GLint i; GLuint u; } gl_constant_value; diff --git a/mesalib/src/mesa/tnl/t_draw.c b/mesalib/src/mesa/tnl/t_draw.c index 86af4b7cf..03424d7a4 100644 --- a/mesalib/src/mesa/tnl/t_draw.c +++ b/mesalib/src/mesa/tnl/t_draw.c @@ -26,6 +26,7 @@ */ #include "main/glheader.h" +#include "main/bufferobj.h" #include "main/condrender.h" #include "main/context.h" #include "main/imports.h" @@ -339,14 +340,15 @@ static void bind_indices( struct gl_context *ctx, TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; GLuint i; - void *ptr; + const void *ptr; if (!ib) { VB->Elts = NULL; return; } - if (ib->obj->Name && !ib->obj->Pointer) { + if (_mesa_is_bufferobj(ib->obj) && !_mesa_bufferobj_mapped(ib->obj)) { + /* if the buffer object isn't mapped yet, map it now */ unsigned map_size; switch (ib->type) { @@ -370,7 +372,8 @@ static void bind_indices( struct gl_context *ctx, GL_MAP_READ_BIT, ib->obj); assert(ib->obj->Pointer); } else { - ptr = ib->ptr; + /* user-space elements, or buffer already mapped */ + ptr = ADD_POINTERS(ib->obj->Pointer, ib->ptr); } if (ib->type == GL_UNSIGNED_INT && VB->Primitive[0].basevertex == 0) { -- cgit v1.2.3