From faf116fdde23b321f6c1b8293af9be3e18082c28 Mon Sep 17 00:00:00 2001 From: spartanj Date: Sun, 15 Aug 2010 19:03:23 -0300 Subject: [PATCH] Added support for Mac OS X. Fixed shader reloading. Added pack loading for shaders. Added support for direct loading of compressed textures ( direct upload to vram ). Added cImage class. --- Makefile.macosx | 135 ++++++++++++ ee.linux.cbp | 4 +- ee.win.cbp | 5 +- src/audio/csoundfiledefault.cpp | 3 +- src/audio/csoundfiledefault.hpp | 4 +- src/audio/openal.hpp | 6 + src/graphics/cimage.cpp | 143 +++++++++++++ src/graphics/cimage.hpp | 76 +++++++ src/graphics/cparticlesystem.cpp | 44 ++-- src/graphics/cshader.cpp | 87 +++++--- src/graphics/cshader.hpp | 9 +- src/graphics/cshaderprogram.cpp | 23 +++ src/graphics/cshaderprogram.hpp | 3 + src/graphics/ctexture.cpp | 285 +++++++++++++------------- src/graphics/ctexture.hpp | 88 +++----- src/graphics/ctexturefactory.cpp | 40 ++-- src/graphics/ctexturefactory.hpp | 12 +- src/graphics/ctextureloader.cpp | 61 +++++- src/graphics/ctextureloader.hpp | 2 + src/helper/SOIL/SOIL.c | 12 +- src/helper/SOIL/SOIL.h | 12 ++ src/helper/SOIL/stb_image.h | 5 +- src/helper/SOIL/stbi_DDS.h | 10 +- src/helper/SOIL/stbi_DDS_c.h | 83 +++++++- src/helper/haikuttf/hkbase.hpp | 14 +- src/helper/haikuttf/hkfont.cpp | 38 ++-- src/helper/haikuttf/hkfont.hpp | 12 +- src/helper/haikuttf/hkfontmanager.cpp | 2 +- src/helper/haikuttf/hkfontmanager.hpp | 2 +- src/helper/haikuttf/hkglyph.hpp | 6 +- src/helper/haikuttf/sophist.h | 180 ++++++++++++++++ src/helper/zip_utils/unzip.cpp | 4 +- src/test/ee.cpp | 48 ++++- src/utils/utils.cpp | 2 +- src/window/cengine.cpp | 48 ++--- src/window/cengine.hpp | 2 +- 36 files changed, 1132 insertions(+), 378 deletions(-) create mode 100644 Makefile.macosx create mode 100644 src/graphics/cimage.cpp create mode 100644 src/graphics/cimage.hpp create mode 100644 src/helper/haikuttf/sophist.h diff --git a/Makefile.macosx b/Makefile.macosx new file mode 100644 index 000000000..f91616707 --- /dev/null +++ b/Makefile.macosx @@ -0,0 +1,135 @@ +ifeq ($(DEBUGBUILD), yes) + DEBUGFLAGS = -g -DDEBUG -DEE_DEBUG +else + DEBUGFLAGS = -O2 -s -DNDEBUG +endif + +ifeq ($(STATIC), no) + BUILDFLAGS = -fPIC + LINKFLAGS = -shared +else + BUILDFLAGS = + LINKFLAGS = +endif + +export CC = gcc +export CPP = g++ + +ifeq ($(LLVM_BUILD), yes) +export CC = llvm-gcc +export CPP = llvm-g++ +endif + +export CFLAGS = -Wall $(DEBUGFLAGS) $(BUILDFLAGS) +export CFLAGSEXT = $(DEBUGFLAGS) $(BUILDFLAGS) +export LDFLAGS = $(LINKFLAGS) +export LIBPATH = ./ +export VERSION = 0.6svn +export CP = cp +export LN = ln +export LNFLAGS = -s -f +export AR = ar +export ARFLAGS = rcs +export DESTDIR = /usr +export DESTLIBDIR = $(DESTDIR)/lib +export DESTINCDIR = $(DESTDIR)/include + +EXE = eetest +EXEIV = eeiv + +SRCGLEW = $(wildcard ./src/helper/glew/*.c) +SRCSOIL = $(wildcard ./src/helper/SOIL/*.c) +SRCSTBVORBIS = $(wildcard ./src/helper/stb_vorbis/*.c) +SRCHAIKUTTF = $(wildcard ./src/helper/haikuttf/*.cpp) +SRCZIPUTILS = $(wildcard ./src/helper/zip_utils/*.cpp) + +SRCAUDIO = $(wildcard ./src/audio/*.cpp) +SRCGAMING = $(wildcard ./src/gaming/*.cpp) +SRCGRAPHICS = $(wildcard ./src/graphics/*.cpp) +SRCMATH = $(wildcard ./src/math/*.cpp) +SRCSYSTEM = $(wildcard ./src/system/*.cpp) +SRCUI = $(wildcard ./src/ui/*.cpp) +SRCUTILS = $(wildcard ./src/utils/*.cpp) +SRCWINDOW = $(wildcard ./src/window/*.cpp) + +SRCTEST = $(wildcard ./src/test/*.cpp) +SRCEEIV = $(wildcard ./src/eeiv/*.cpp) + +OBJGLEW = $(SRCGLEW:.c=.o) +OBJHAIKUTTF = $(SRCHAIKUTTF:.cpp=.o) +OBJSOIL = $(SRCSOIL:.c=.o) +OBJSTBVORBIS = $(SRCSTBVORBIS:.c=.o) +OBJZIPUTILS = $(SRCZIPUTILS:.cpp=.o) + +OBJAUDIO = $(SRCAUDIO:.cpp=.o) +OBJGAMING = $(SRCGAMING:.cpp=.o) +OBJGRAPHICS = $(SRCGRAPHICS:.cpp=.o) +OBJMATH = $(SRCMATH:.cpp=.o) +OBJSYSTEM = $(SRCSYSTEM:.cpp=.o) +OBJUI = $(SRCUI:.cpp=.o) +OBJUTILS = $(SRCUTILS:.cpp=.o) +OBJWINDOW = $(SRCWINDOW:.cpp=.o) + +OBJHELPERS = $(OBJGLEW) $(OBJHAIKUTTF) $(OBJSOIL) $(OBJSTBVORBIS) $(OBJZIPUTILS) +OBJMODULES = $(OBJUTILS) $(OBJMATH) $(OBJSYSTEM) $(OBJAUDIO) $(OBJWINDOW) $(OBJGRAPHICS) $(OBJGAMING) $(OBJUI) + +OBJTEST = $(SRCTEST:.cpp=.o) +OBJEEIV = $(SRCEEIV:.cpp=.o) + +ifeq ($(STATIC), yes) + LIB = libeepp-s.a + LIBNAME = $(LIBPATH)/$(LIB) + INSTALL = +else + LIB = libeepp.so + LIBNAME = $(LIBPATH)/$(LIB).$(VERSION) + INSTALL = && $(LN) $(LNFLAGS) $(DESTLIBDIR)/$(LIB).$(VERSION) $(DESTLIBDIR)/$(LIB) +endif + +all: $(LIB) + +libeepp-s.a: $(OBJHELPERS) $(OBJMODULES) + $(AR) $(ARFLAGS) $(LIBNAME) $(OBJHELPERS) $(OBJMODULES) + +libeepp.so: $(OBJHELPERS) $(OBJMODULES) + $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJHELPERS) $(OBJMODULES)-lfreetype -lSDL -lsndfile -framework OpenGL -framework GLUT -framework OpenAL -framework Cocoa -framework CoreFoundation + +$(OBJMODULES) $(OBJZIPUTILS) $(OBJHAIKUTTF): %.o: %.cpp + $(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2 + +$(OBJGLEW) $(OBJSOIL) $(OBJSTBVORBIS): %.o: %.c + $(CC) -o $@ -c $< $(CFLAGSEXT) -DSTBI_FAILURE_USERMSG -I/usr/include/freetype2 + +test: $(EXE) + +$(EXE): $(OBJHELPERS) $(OBJMODULES) $(OBJTEST) + $(CPP) -o ./$(EXE) $(OBJHELPERS) $(OBJMODULES) $(OBJTEST) $(LDFLAGS) -lfreetype -lSDL -lSDLmain -lsndfile -framework OpenGL -framework GLUT -framework OpenAL -framework Cocoa -framework CoreFoundation + +$(OBJTEST): %.o: %.cpp + $(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2 + +eeiv: $(EXEIV) + +$(EXEIV): $(OBJHELPERS) $(OBJMODULES) $(OBJEEIV) + $(CPP) -o ./$(EXEIV) $(OBJHELPERS) $(OBJMODULES) $(OBJEEIV) $(LDFLAGS) -lfreetype -lSDL -lSDLmain -lsndfile -framework OpenGL -framework GLUT -framework OpenAL -framework Cocoa -framework CoreFoundation + +$(OBJEEIV): %.o: %.cpp + $(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2 + +docs: + doxygen ./Doxyfile + +clean: + @rm -rf $(OBJHELPERS) $(OBJMODULES) $(OBJTEST) $(OBJEEIV) + +cleantemp: + @rm -rf $(OBJMODULES) $(OBJTEST) $(OBJEEIV) + +cleanall: clean + @rm -rf $(LIBNAME) + @rm -rf ./$(EXE) + @rm -rf ./$(EXEIV) + @rm -rf ./log.log + +install: + @($(CP) $(LIBNAME) $(DESTLIBDIR) $(INSTALL)) diff --git a/ee.linux.cbp b/ee.linux.cbp index aa707598e..706f500b7 100644 --- a/ee.linux.cbp +++ b/ee.linux.cbp @@ -86,6 +86,8 @@ + + @@ -164,7 +166,7 @@ - + diff --git a/ee.win.cbp b/ee.win.cbp index 7a457304e..c0577e81f 100644 --- a/ee.win.cbp +++ b/ee.win.cbp @@ -12,7 +12,6 @@