Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Complete OpenGL API logging. Regal context initialization rework. Mor…

…e compile-time configuration. Added documentation. Added VC10 project.
  • Loading branch information...
commit 1df6ef298c996e8010e6157c7498022e11953a7e 1 parent 9f08eb1
@nigels-com nigels-com authored
Showing with 109,370 additions and 70,718 deletions.
  1. +20 −10 Makefile
  2. +12 −0 README.rst
  3. +1 −1  config/Makefile.cygwin
  4. +1 −1  config/Makefile.linux
  5. +1 −1  config/Makefile.linux-32
  6. +1 −1  config/Makefile.linux-64
  7. +9 −0 examples/dreamtorus/glut/code/main.cpp
  8. +24 −16 examples/dreamtorus/ios/minimal_ios.xcodeproj/project.pbxproj
  9. +24 −16 examples/dreamtorus/osx/minimal_osx.xcodeproj/project.pbxproj
  10. +36 −0 include/GL/Regal.h
  11. +361 −0 include/GL/RegalGLU.h
  12. +105 −0 src/boost/boost/print/detail.cpp
  13. +78 −0 src/boost/boost/print/interface.cpp
  14. +21 −17 src/glu/include/GL/glu.h
  15. +12,610 −9,888 src/regal/Regal.cpp
  16. +1 −0  src/regal/Regal.def
  17. +10 −4 src/regal/RegalBin.h
  18. +23 −2 src/regal/RegalConfig.cpp
  19. +3 −2 src/regal/RegalConfig.h
  20. +29 −18 src/regal/RegalContext.cpp
  21. +21 −15 src/regal/RegalContext.h
  22. +12 −13 src/regal/RegalContextInfo.cpp
  23. +0 −1  src/regal/RegalContextInfo.h
  24. +9 −9 src/regal/RegalDebugInfo.h
  25. +2 −5 src/regal/RegalDispatch.h
  26. +4,778 −4,800 src/regal/{RegalDebugDispatch.cpp → RegalDispatchDebug.cpp}
  27. +1,631 −3,770 src/regal/{RegalEmuDispatch.cpp → RegalDispatchEmu.cpp}
  28. +44,325 −0 src/regal/RegalDispatchError.cpp
  29. +66 −0 src/regal/RegalDispatchError.h
  30. +14,330 −9,836 src/regal/{RegalLoaderDispatch.cpp → RegalDispatchLoader.cpp}
  31. +30,003 −0 src/regal/RegalDispatchLog.cpp
  32. +192 −0 src/regal/RegalDispatchState.h
  33. +1 −3 src/regal/RegalDllMain.cpp
  34. +24 −24 src/regal/RegalDsa.h
  35. +3 −3 src/regal/RegalEmu.h
  36. +0 −41,994 src/regal/RegalErrorDispatch.cpp
  37. +1 −1  src/regal/RegalHelper.cpp
  38. +2 −2 src/regal/RegalHelper.h
  39. +14 −14 src/regal/RegalIff.cpp
  40. +20 −19 src/regal/RegalIff.h
  41. +4 −1 src/regal/RegalInit.cpp
  42. +3 −3 src/regal/RegalLog.cpp
  43. +1 −1  src/regal/RegalLog.h
  44. +4 −2 src/regal/RegalLookup.cpp
  45. +3 −3 src/regal/RegalLookup.h
  46. +6 −6 src/regal/RegalMarker.h
  47. +17 −17 src/regal/RegalObj.h
  48. +41 −41 src/regal/RegalPpc.h
  49. +0 −135 src/regal/RegalPrivate.h
  50. +16 −0 src/regal/RegalToken.cpp
  51. +1 −0  src/regal/RegalToken.h
  52. +268 −0 src/regal/RegalUtil.cpp
  53. +34 −16 src/regal/RegalUtil.h
  54. +6 −6 src/regal/RegalVao.h
  55. +1 −0  src/regal/Regalm.def
  56. +1 −1  src/regal/linear.h
  57. +20 −0 win32/vs2010/Regal/Regal.sln
  58. +140 −0 win32/vs2010/Regal/Regal.vcxproj
View
30 Makefile
@@ -43,8 +43,8 @@ all debug: regal.lib glew.lib glut.lib regal.bin
export:
scripts/Export.py --api gl 4.2 --api wgl 4.0 --api glx 4.0 --api cgl 1.4 --api egl 1.0 --outdir src/regal
-LIB.LDFLAGS := $(LDFLAGS.EXTRA) $(LDFLAGS.GL) -lstdc++ -lpthread
-LIB.LIBS := $(GL_LDFLAGS)
+LIB.LDFLAGS := -lstdc++ -lpthread -ldl -lm
+LIB.LIBS :=
LIB.SRCS :=
LIB.SRCS += src/regal/RegalIff.cpp
@@ -52,15 +52,17 @@ LIB.SRCS += src/regal/Regal.cpp
LIB.SRCS += src/regal/RegalToken.cpp
LIB.SRCS += src/regal/RegalLog.cpp
LIB.SRCS += src/regal/RegalInit.cpp
+LIB.SRCS += src/regal/RegalUtil.cpp
LIB.SRCS += src/regal/RegalConfig.cpp
LIB.SRCS += src/regal/RegalLookup.cpp
LIB.SRCS += src/regal/RegalHelper.cpp
LIB.SRCS += src/regal/RegalContext.cpp
LIB.SRCS += src/regal/RegalContextInfo.cpp
-LIB.SRCS += src/regal/RegalEmuDispatch.cpp
-LIB.SRCS += src/regal/RegalDebugDispatch.cpp
-LIB.SRCS += src/regal/RegalErrorDispatch.cpp
-LIB.SRCS += src/regal/RegalLoaderDispatch.cpp
+LIB.SRCS += src/regal/RegalDispatchEmu.cpp
+LIB.SRCS += src/regal/RegalDispatchLog.cpp
+LIB.SRCS += src/regal/RegalDispatchDebug.cpp
+LIB.SRCS += src/regal/RegalDispatchError.cpp
+LIB.SRCS += src/regal/RegalDispatchLoader.cpp
LIB.SRCS.NAMES := $(notdir $(LIB.SRCS))
@@ -115,7 +117,8 @@ GLEW.SRCS += src/glew/src/glew.c
GLEW.SRCS.NAMES := $(notdir $(GLEW.SRCS))
GLEW.OBJS := $(addprefix tmp/$(SYSTEM)/glew/shared/,$(GLEW.SRCS.NAMES))
GLEW.OBJS := $(GLEW.OBJS:.c=.o)
-GLEW.CFLAGS := -Isrc/glew/include -DGLEW_EXPORTS -DGLEW_BUILD
+GLEW.CFLAGS := -Isrc/glew/include -Isrc/glu/include -DGLEW_EXPORTS -DGLEW_BUILD
+GLEW.LIBS := -Llib -lRegal
GLEW.SHARED := libRegalGLEW.$(EXT.DYNAMIC)
GLEW.STATIC := libRegalGLEW.a
@@ -198,6 +201,9 @@ GLUT.SRCS.NAMES := $(notdir $(GLUT.SRCS))
GLUT.OBJS := $(addprefix tmp/$(SYSTEM)/glut/shared/,$(GLUT.SRCS.NAMES))
GLUT.OBJS := $(GLUT.OBJS:.c=.o)
GLUT.CFLAGS := -Isrc/glut/include -DBUILD_GLUT32 -DGLUT_BUILDING_LIB -DGLUT_STATIC
+GLUT.LIBS := -Llib -lRegal
+GLUT.LIBS += -lGLU -lX11 -lXmu -lXi
+GLUT.LIBS += -lpthread -lm
GLUT.SHARED := libRegalGLUT.$(EXT.DYNAMIC)
GLUT.STATIC := libRegalGLUT.a
@@ -208,7 +214,7 @@ tmp/$(SYSTEM)/glut/shared/%.o: src/glut/src/%.c
$(CC) $(CFLAGS) $(PICFLAG) $(GLUT.CFLAGS) $(CFLAGS.SO) -o $@ -c $<
lib/$(GLUT.SHARED): $(GLUT.OBJS)
- $(LD) $(LDFLAGS.DYNAMIC) -o $@ $^ -Llib -lRegal -lGLU -lX11 -lXmu -lXi -lpthread
+ $(LD) $(LDFLAGS.DYNAMIC) -o $@ $^ $(GLUT.LIBS)
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
@@ -232,6 +238,8 @@ DREAMTORUS.SRCS.NAMES := $(notdir $(DREAMTORUS.SRCS))
DREAMTORUS.OBJS := $(addprefix tmp/$(SYSTEM)/dreamtorus/static/,$(DREAMTORUS.SRCS.NAMES))
DREAMTORUS.OBJS := $(DREAMTORUS.OBJS:.cpp=.o)
DREAMTORUS.CFLAGS := -Iinclude -Iexamples/dreamtorus/src
+DREAMTORUS.LIBS += -Llib -lRegal $(LDFLAGS.GLUT)
+DREAMTORUS.LIBS += -lm -lpthread
tmp/$(SYSTEM)/dreamtorus/static/%.o: examples/dreamtorus/src/%.cpp
@mkdir -p $(dir $@)
@@ -242,7 +250,7 @@ tmp/$(SYSTEM)/dreamtorus/static/%.o: examples/dreamtorus/glut/code/%.cpp
$(CC) $(CFLAGS) $(DREAMTORUS.CFLAGS) $(CFLAGS.SO) -o $@ -c $<
bin/dreamtorus: $(DREAMTORUS.OBJS)
- $(LD) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS) $(LDFLAGS.GLUT) $(LDFLAGS.GL) -Llib -l$(NAME) -lm -lpthread
+ $(LD) -o $@ $^ $(LIB.LDFLAGS) $(DREAMTORUS.LIBS)
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
@@ -258,13 +266,15 @@ TIGER.SRCS.NAMES := $(notdir $(TIGER.SRCS))
TIGER.OBJS := $(addprefix tmp/$(SYSTEM)/tiger/static/,$(TIGER.SRCS.NAMES))
TIGER.OBJS := $(TIGER.OBJS:.c=.o)
TIGER.CFLAGS := -Iinclude
+TIGER.LIBS += -Llib -lRegalGLEW $(LDFLAGS.GLUT) -lRegal
+TIGER.LIBS += -lm -lpthread
tmp/$(SYSTEM)/tiger/static/%.o: examples/tiger/%.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) $(TIGER.CFLAGS) $(CFLAGS.SO) -o $@ -c $<
bin/tiger: $(TIGER.OBJS)
- $(LD) -o $@ $^ -Llib -l$(NAME) -lRegalGLEW $(LDFLAGS.GLUT) -lm -lpthread
+ $(LD) -o $@ $^ $(TIGER.LIBS)
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
View
12 README.rst
@@ -63,8 +63,20 @@ Features
http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt
+ - Enabled by default.
+
+ - Build-time configuration: **REGAL_NO_EMULATION**
+
+ - Environment variable configuration: **REGAL_NO_EMULATION**
+
* OpenGL error checking
+ - Disabled by default.
+
+ - Build-time configuration: **REGAL_ERROR**
+
+ - Environment variable configuration: **REGAL_ERROR**
+
* Logging
Regal supports detailed logging for development purposes.
View
2  config/Makefile.cygwin
@@ -5,7 +5,7 @@ PICFLAG =
LDFLAGS.EXTRA =
LIBDIR =
LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11
-LDFLAGS.GLUT = -lglut
+LDFLAGS.GLUT = -lRegalGLUT
LDFLAGS.STATIC = -Wl,-Bstatic
LDFLAGS.DYNAMIC = -Wl,-Bdynamic
WARN = -Wall -W
View
2  config/Makefile.linux
@@ -12,7 +12,7 @@ LDFLAGS.EXTRA = -L/usr/X11R6/lib
LIBDIR = $(REGAL_DEST)/lib
endif
LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11
-LDFLAGS.GLUT = -lglut
+LDFLAGS.GLUT = -lRegalGLUT
LDFLAGS.STATIC =
LDFLAGS.DYNAMIC = -shared
WARN = -Wall -W -Wno-unused-parameter
View
2  config/Makefile.linux-32
@@ -14,7 +14,7 @@ endif
CFLAGS.EXTRA += -m32
LDFLAGS.EXTRA += -m32
LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11
-LDFLAGS.GLUT = -lglut
+LDFLAGS.GLUT = -lRegalGLUT
LDFLAGS.STATIC =
LDFLAGS.DYNAMIC = -shared
WARN = -Wall -W -Wno-unused-parameter
View
2  config/Makefile.linux-64
@@ -14,7 +14,7 @@ endif
CFLAGS.EXTRA += -m64
LDFLAGS.EXTRA += -m64
LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11
-LDFLAGS.GLUT = -lglut
+LDFLAGS.GLUT = -lRegalGLUT
LDFLAGS.STATIC =
LDFLAGS.DYNAMIC = -shared
WARN = -Wall -W -Wno-unused-parameter
View
9 examples/dreamtorus/glut/code/main.cpp
@@ -14,6 +14,8 @@
#include <GL/RegalGLUT.h>
#endif
+#include <GL/RegalGLU.h>
+
#include "render.h"
#include <cstdio>
@@ -42,6 +44,11 @@ static void myKeyboard(unsigned char c, int x, int y)
}
}
+static void myError(GLenum error)
+{
+ printf("dreamtorus error: %s\n",glErrorStringREGAL(error));
+}
+
int main(int argc, const char *argv[])
{
glutInitDisplayString("rgba>=8 depth double");
@@ -55,6 +62,8 @@ int main(int argc, const char *argv[])
RegalMakeCurrent(CGLGetCurrentContext());
#endif
+ RegalSetErrorCallback(myError);
+
// Exercise REGAL_extension_query extension, just 'coz
if (!glIsSupportedREGAL("GL_EXT_framebuffer_object"))
View
40 examples/dreamtorus/ios/minimal_ios.xcodeproj/project.pbxproj
@@ -9,10 +9,7 @@
/* Begin PBXBuildFile section */
4316DE2E155B324300E70FC9 /* Regal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4316DE1E155B324300E70FC9 /* Regal.cpp */; };
4316DE2F155B324300E70FC9 /* RegalDllMain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4316DE20155B324300E70FC9 /* RegalDllMain.cpp */; };
- 4316DE30155B324300E70FC9 /* RegalEmuDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4316DE23155B324300E70FC9 /* RegalEmuDispatch.cpp */; };
- 4316DE31155B324300E70FC9 /* RegalErrorDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4316DE24155B324300E70FC9 /* RegalErrorDispatch.cpp */; };
4316DE32155B324300E70FC9 /* RegalIff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4316DE25155B324300E70FC9 /* RegalIff.cpp */; };
- 4316DE33155B324300E70FC9 /* RegalLoaderDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4316DE27155B324300E70FC9 /* RegalLoaderDispatch.cpp */; };
4316DE34155B324300E70FC9 /* RegalLookup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4316DE28155B324300E70FC9 /* RegalLookup.cpp */; };
43787F6A14E8539C00636639 /* render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43787F6814E8539C00636639 /* render.cpp */; };
43B7EEE314D05D8500737488 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43B7EEE214D05D8500737488 /* UIKit.framework */; };
@@ -33,11 +30,15 @@
43B7EF3314D0938F00737488 /* RGLOpenGLContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 43B7EF3214D0938F00737488 /* RGLOpenGLContext.m */; };
43DDC9A91583CA980006D8FB /* RegalContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43DDC99A1583CA980006D8FB /* RegalContext.cpp */; };
43DDC9AA1583CA980006D8FB /* RegalContextInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43DDC99C1583CA980006D8FB /* RegalContextInfo.cpp */; };
- 43DDC9AB1583CA980006D8FB /* RegalDebugDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43DDC99E1583CA980006D8FB /* RegalDebugDispatch.cpp */; };
43DDC9AC1583CA980006D8FB /* RegalLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43DDC9A11583CA980006D8FB /* RegalLog.cpp */; };
43DDC9AD1583CA980006D8FB /* RegalToken.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43DDC9A51583CA980006D8FB /* RegalToken.cpp */; };
43DDC9AE1583CA980006D8FB /* RegalUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43DDC9A71583CA980006D8FB /* RegalUtil.cpp */; };
BC0F6D8315858BF9004163BD /* RegalHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0F6D8115858BF9004163BD /* RegalHelper.cpp */; };
+ BC4A154A1599F8B50063C8DA /* RegalDispatchDebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15431599F8B50063C8DA /* RegalDispatchDebug.cpp */; };
+ BC4A154B1599F8B50063C8DA /* RegalDispatchEmu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15441599F8B50063C8DA /* RegalDispatchEmu.cpp */; };
+ BC4A154C1599F8B50063C8DA /* RegalDispatchError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15451599F8B50063C8DA /* RegalDispatchError.cpp */; };
+ BC4A154D1599F8B50063C8DA /* RegalDispatchLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15471599F8B50063C8DA /* RegalDispatchLoader.cpp */; };
+ BC4A154E1599F8B50063C8DA /* RegalDispatchLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15481599F8B50063C8DA /* RegalDispatchLog.cpp */; };
BCB79EFD1592178F00C418FB /* RegalConfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB79EFB1592178F00C418FB /* RegalConfig.cpp */; };
BCB79F011592180B00C418FB /* RegalInit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB79EFF1592180B00C418FB /* RegalInit.cpp */; };
/* End PBXBuildFile section */
@@ -49,11 +50,8 @@
4316DE20155B324300E70FC9 /* RegalDllMain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDllMain.cpp; path = ../../../../src/regal/RegalDllMain.cpp; sourceTree = "<group>"; };
4316DE21155B324300E70FC9 /* RegalDsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalDsa.h; path = ../../../../src/regal/RegalDsa.h; sourceTree = "<group>"; };
4316DE22155B324300E70FC9 /* RegalEmu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalEmu.h; path = ../../../../src/regal/RegalEmu.h; sourceTree = "<group>"; };
- 4316DE23155B324300E70FC9 /* RegalEmuDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalEmuDispatch.cpp; path = ../../../../src/regal/RegalEmuDispatch.cpp; sourceTree = "<group>"; };
- 4316DE24155B324300E70FC9 /* RegalErrorDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalErrorDispatch.cpp; path = ../../../../src/regal/RegalErrorDispatch.cpp; sourceTree = "<group>"; };
4316DE25155B324300E70FC9 /* RegalIff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalIff.cpp; path = ../../../../src/regal/RegalIff.cpp; sourceTree = "<group>"; };
4316DE26155B324300E70FC9 /* RegalIff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalIff.h; path = ../../../../src/regal/RegalIff.h; sourceTree = "<group>"; };
- 4316DE27155B324300E70FC9 /* RegalLoaderDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalLoaderDispatch.cpp; path = ../../../../src/regal/RegalLoaderDispatch.cpp; sourceTree = "<group>"; };
4316DE28155B324300E70FC9 /* RegalLookup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalLookup.cpp; path = ../../../../src/regal/RegalLookup.cpp; sourceTree = "<group>"; };
4316DE29155B324300E70FC9 /* RegalLookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalLookup.h; path = ../../../../src/regal/RegalLookup.h; sourceTree = "<group>"; };
4316DE2A155B324300E70FC9 /* RegalObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalObj.h; path = ../../../../src/regal/RegalObj.h; sourceTree = "<group>"; };
@@ -89,7 +87,6 @@
43DDC99B1583CA980006D8FB /* RegalContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalContext.h; path = ../../../../src/regal/RegalContext.h; sourceTree = "<group>"; };
43DDC99C1583CA980006D8FB /* RegalContextInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalContextInfo.cpp; path = ../../../../src/regal/RegalContextInfo.cpp; sourceTree = "<group>"; };
43DDC99D1583CA980006D8FB /* RegalContextInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalContextInfo.h; path = ../../../../src/regal/RegalContextInfo.h; sourceTree = "<group>"; };
- 43DDC99E1583CA980006D8FB /* RegalDebugDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDebugDispatch.cpp; path = ../../../../src/regal/RegalDebugDispatch.cpp; sourceTree = "<group>"; };
43DDC99F1583CA980006D8FB /* RegalDebugInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalDebugInfo.h; path = ../../../../src/regal/RegalDebugInfo.h; sourceTree = "<group>"; };
43DDC9A01583CA980006D8FB /* RegalDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalDispatch.h; path = ../../../../src/regal/RegalDispatch.h; sourceTree = "<group>"; };
43DDC9A11583CA980006D8FB /* RegalLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalLog.cpp; path = ../../../../src/regal/RegalLog.cpp; sourceTree = "<group>"; };
@@ -102,6 +99,13 @@
43DDC9A81583CA980006D8FB /* RegalUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalUtil.h; path = ../../../../src/regal/RegalUtil.h; sourceTree = "<group>"; };
BC0F6D8115858BF9004163BD /* RegalHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalHelper.cpp; path = ../../../../src/regal/RegalHelper.cpp; sourceTree = "<group>"; };
BC0F6D8215858BF9004163BD /* RegalHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalHelper.h; path = ../../../../src/regal/RegalHelper.h; sourceTree = "<group>"; };
+ BC4A15431599F8B50063C8DA /* RegalDispatchDebug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchDebug.cpp; path = ../../../../src/regal/RegalDispatchDebug.cpp; sourceTree = "<group>"; };
+ BC4A15441599F8B50063C8DA /* RegalDispatchEmu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchEmu.cpp; path = ../../../../src/regal/RegalDispatchEmu.cpp; sourceTree = "<group>"; };
+ BC4A15451599F8B50063C8DA /* RegalDispatchError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchError.cpp; path = ../../../../src/regal/RegalDispatchError.cpp; sourceTree = "<group>"; };
+ BC4A15461599F8B50063C8DA /* RegalDispatchError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalDispatchError.h; path = ../../../../src/regal/RegalDispatchError.h; sourceTree = "<group>"; };
+ BC4A15471599F8B50063C8DA /* RegalDispatchLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchLoader.cpp; path = ../../../../src/regal/RegalDispatchLoader.cpp; sourceTree = "<group>"; };
+ BC4A15481599F8B50063C8DA /* RegalDispatchLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchLog.cpp; path = ../../../../src/regal/RegalDispatchLog.cpp; sourceTree = "<group>"; };
+ BC4A15491599F8B50063C8DA /* RegalDispatchState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalDispatchState.h; path = ../../../../src/regal/RegalDispatchState.h; sourceTree = "<group>"; };
BCB79EFB1592178F00C418FB /* RegalConfig.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalConfig.cpp; path = ../../../../src/regal/RegalConfig.cpp; sourceTree = "<group>"; };
BCB79EFC1592178F00C418FB /* RegalConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalConfig.h; path = ../../../../src/regal/RegalConfig.h; sourceTree = "<group>"; };
BCB79EFF1592180B00C418FB /* RegalInit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalInit.cpp; path = ../../../../src/regal/RegalInit.cpp; sourceTree = "<group>"; };
@@ -206,7 +210,6 @@
BCB79EFC1592178F00C418FB /* RegalConfig.h */,
43DDC99C1583CA980006D8FB /* RegalContextInfo.cpp */,
43DDC99D1583CA980006D8FB /* RegalContextInfo.h */,
- 43DDC99E1583CA980006D8FB /* RegalDebugDispatch.cpp */,
43DDC99F1583CA980006D8FB /* RegalDebugInfo.h */,
43DDC9A01583CA980006D8FB /* RegalDispatch.h */,
43DDC9A11583CA980006D8FB /* RegalLog.cpp */,
@@ -220,17 +223,21 @@
43DDC9A71583CA980006D8FB /* RegalUtil.cpp */,
43DDC9A81583CA980006D8FB /* RegalUtil.h */,
4316DE35155B324F00E70FC9 /* Regal.h */,
+ BC4A15431599F8B50063C8DA /* RegalDispatchDebug.cpp */,
+ BC4A15441599F8B50063C8DA /* RegalDispatchEmu.cpp */,
+ BC4A15451599F8B50063C8DA /* RegalDispatchError.cpp */,
+ BC4A15461599F8B50063C8DA /* RegalDispatchError.h */,
+ BC4A15471599F8B50063C8DA /* RegalDispatchLoader.cpp */,
+ BC4A15481599F8B50063C8DA /* RegalDispatchLog.cpp */,
+ BC4A15491599F8B50063C8DA /* RegalDispatchState.h */,
4316DE1D155B324300E70FC9 /* linear.h */,
4316DE1E155B324300E70FC9 /* Regal.cpp */,
4316DE1F155B324300E70FC9 /* RegalBin.h */,
4316DE20155B324300E70FC9 /* RegalDllMain.cpp */,
4316DE21155B324300E70FC9 /* RegalDsa.h */,
4316DE22155B324300E70FC9 /* RegalEmu.h */,
- 4316DE23155B324300E70FC9 /* RegalEmuDispatch.cpp */,
- 4316DE24155B324300E70FC9 /* RegalErrorDispatch.cpp */,
4316DE25155B324300E70FC9 /* RegalIff.cpp */,
4316DE26155B324300E70FC9 /* RegalIff.h */,
- 4316DE27155B324300E70FC9 /* RegalLoaderDispatch.cpp */,
4316DE28155B324300E70FC9 /* RegalLookup.cpp */,
4316DE29155B324300E70FC9 /* RegalLookup.h */,
4316DE2A155B324300E70FC9 /* RegalObj.h */,
@@ -316,20 +323,21 @@
43787F6A14E8539C00636639 /* render.cpp in Sources */,
4316DE2E155B324300E70FC9 /* Regal.cpp in Sources */,
4316DE2F155B324300E70FC9 /* RegalDllMain.cpp in Sources */,
- 4316DE30155B324300E70FC9 /* RegalEmuDispatch.cpp in Sources */,
- 4316DE31155B324300E70FC9 /* RegalErrorDispatch.cpp in Sources */,
4316DE32155B324300E70FC9 /* RegalIff.cpp in Sources */,
- 4316DE33155B324300E70FC9 /* RegalLoaderDispatch.cpp in Sources */,
4316DE34155B324300E70FC9 /* RegalLookup.cpp in Sources */,
43DDC9A91583CA980006D8FB /* RegalContext.cpp in Sources */,
43DDC9AA1583CA980006D8FB /* RegalContextInfo.cpp in Sources */,
- 43DDC9AB1583CA980006D8FB /* RegalDebugDispatch.cpp in Sources */,
43DDC9AC1583CA980006D8FB /* RegalLog.cpp in Sources */,
43DDC9AD1583CA980006D8FB /* RegalToken.cpp in Sources */,
43DDC9AE1583CA980006D8FB /* RegalUtil.cpp in Sources */,
BC0F6D8315858BF9004163BD /* RegalHelper.cpp in Sources */,
BCB79EFD1592178F00C418FB /* RegalConfig.cpp in Sources */,
BCB79F011592180B00C418FB /* RegalInit.cpp in Sources */,
+ BC4A154A1599F8B50063C8DA /* RegalDispatchDebug.cpp in Sources */,
+ BC4A154B1599F8B50063C8DA /* RegalDispatchEmu.cpp in Sources */,
+ BC4A154C1599F8B50063C8DA /* RegalDispatchError.cpp in Sources */,
+ BC4A154D1599F8B50063C8DA /* RegalDispatchLoader.cpp in Sources */,
+ BC4A154E1599F8B50063C8DA /* RegalDispatchLog.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
View
40 examples/dreamtorus/osx/minimal_osx.xcodeproj/project.pbxproj
@@ -11,10 +11,7 @@
256AC3DA0F4B6AC300CF3369 /* minimal_osxAppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* minimal_osxAppDelegate.mm */; };
43085426148B0F3400AE231A /* RGLOpenGLContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 43085425148B0F3400AE231A /* RGLOpenGLContext.m */; };
4326D4D0153486A0009EF3ED /* Regal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4326D4C1153486A0009EF3ED /* Regal.cpp */; };
- 4326D4D1153486A0009EF3ED /* RegalEmuDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4326D4C6153486A0009EF3ED /* RegalEmuDispatch.cpp */; };
- 4326D4D2153486A0009EF3ED /* RegalErrorDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4326D4C7153486A0009EF3ED /* RegalErrorDispatch.cpp */; };
4326D4D3153486A0009EF3ED /* RegalIff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4326D4C8153486A0009EF3ED /* RegalIff.cpp */; };
- 4326D4D4153486A0009EF3ED /* RegalLoaderDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4326D4CA153486A0009EF3ED /* RegalLoaderDispatch.cpp */; };
4326D4D5153486A0009EF3ED /* RegalLookup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4326D4CB153486A0009EF3ED /* RegalLookup.cpp */; };
4344FC911332A8BA006F07E8 /* nv.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4344FC901332A8BA006F07E8 /* nv.icns */; };
43787F5014E8512400636639 /* render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43787F4E14E8512400636639 /* render.cpp */; };
@@ -27,8 +24,12 @@
8D11072D0486CEB800E47090 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.mm */; settings = {ATTRIBUTES = (); }; };
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
BC0F6D7415858568004163BD /* RegalHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0F6D7215858568004163BD /* RegalHelper.cpp */; };
- BC0F6D7A1585882C004163BD /* RegalDebugDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0F6D781585860A004163BD /* RegalDebugDispatch.cpp */; };
BC0F6D7B15858831004163BD /* RegalInit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0F6D761585859E004163BD /* RegalInit.cpp */; };
+ BC4A15381599F7F00063C8DA /* RegalDispatchDebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15301599F7F00063C8DA /* RegalDispatchDebug.cpp */; };
+ BC4A15391599F7F00063C8DA /* RegalDispatchEmu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15311599F7F00063C8DA /* RegalDispatchEmu.cpp */; };
+ BC4A153A1599F7F00063C8DA /* RegalDispatchError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15321599F7F00063C8DA /* RegalDispatchError.cpp */; };
+ BC4A153C1599F7F00063C8DA /* RegalDispatchLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15351599F7F00063C8DA /* RegalDispatchLoader.cpp */; };
+ BC4A153D1599F7F00063C8DA /* RegalDispatchLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4A15361599F7F00063C8DA /* RegalDispatchLog.cpp */; };
BCB79F081592189500C418FB /* RegalConfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB79F061592189500C418FB /* RegalConfig.cpp */; };
BCE3A410156E9E0E00CFA9A9 /* RegalContextInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE3A40E156E9E0E00CFA9A9 /* RegalContextInfo.cpp */; };
BCE3A414156E9EE500CFA9A9 /* RegalLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCE3A412156E9EE500CFA9A9 /* RegalLog.cpp */; };
@@ -52,11 +53,8 @@
4326D4C3153486A0009EF3ED /* RegalBin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalBin.h; path = ../../../src/regal/RegalBin.h; sourceTree = "<group>"; };
4326D4C4153486A0009EF3ED /* RegalDsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalDsa.h; path = ../../../src/regal/RegalDsa.h; sourceTree = "<group>"; };
4326D4C5153486A0009EF3ED /* RegalEmu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalEmu.h; path = ../../../src/regal/RegalEmu.h; sourceTree = "<group>"; };
- 4326D4C6153486A0009EF3ED /* RegalEmuDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalEmuDispatch.cpp; path = ../../../src/regal/RegalEmuDispatch.cpp; sourceTree = "<group>"; };
- 4326D4C7153486A0009EF3ED /* RegalErrorDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalErrorDispatch.cpp; path = ../../../src/regal/RegalErrorDispatch.cpp; sourceTree = "<group>"; };
4326D4C8153486A0009EF3ED /* RegalIff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalIff.cpp; path = ../../../src/regal/RegalIff.cpp; sourceTree = "<group>"; };
4326D4C9153486A0009EF3ED /* RegalIff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalIff.h; path = ../../../src/regal/RegalIff.h; sourceTree = "<group>"; };
- 4326D4CA153486A0009EF3ED /* RegalLoaderDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalLoaderDispatch.cpp; path = ../../../src/regal/RegalLoaderDispatch.cpp; sourceTree = "<group>"; };
4326D4CB153486A0009EF3ED /* RegalLookup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalLookup.cpp; path = ../../../src/regal/RegalLookup.cpp; sourceTree = "<group>"; };
4326D4CC153486A0009EF3ED /* RegalLookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalLookup.h; path = ../../../src/regal/RegalLookup.h; sourceTree = "<group>"; };
4326D4CD153486A0009EF3ED /* RegalObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalObj.h; path = ../../../src/regal/RegalObj.h; sourceTree = "<group>"; };
@@ -82,8 +80,14 @@
BC0F6D7315858568004163BD /* RegalHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalHelper.h; path = ../../../src/regal/RegalHelper.h; sourceTree = "<group>"; };
BC0F6D761585859E004163BD /* RegalInit.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RegalInit.cpp; path = ../../../src/regal/RegalInit.cpp; sourceTree = "<group>"; };
BC0F6D771585859E004163BD /* RegalInit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RegalInit.h; path = ../../../src/regal/RegalInit.h; sourceTree = "<group>"; };
- BC0F6D781585860A004163BD /* RegalDebugDispatch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDebugDispatch.cpp; path = ../../../src/regal/RegalDebugDispatch.cpp; sourceTree = "<group>"; };
BC0F6D791585860A004163BD /* RegalDebugInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RegalDebugInfo.h; path = ../../../src/regal/RegalDebugInfo.h; sourceTree = "<group>"; };
+ BC4A15301599F7F00063C8DA /* RegalDispatchDebug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchDebug.cpp; path = ../../../src/regal/RegalDispatchDebug.cpp; sourceTree = "<group>"; };
+ BC4A15311599F7F00063C8DA /* RegalDispatchEmu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchEmu.cpp; path = ../../../src/regal/RegalDispatchEmu.cpp; sourceTree = "<group>"; };
+ BC4A15321599F7F00063C8DA /* RegalDispatchError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchError.cpp; path = ../../../src/regal/RegalDispatchError.cpp; sourceTree = "<group>"; };
+ BC4A15331599F7F00063C8DA /* RegalDispatchError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalDispatchError.h; path = ../../../src/regal/RegalDispatchError.h; sourceTree = "<group>"; };
+ BC4A15351599F7F00063C8DA /* RegalDispatchLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchLoader.cpp; path = ../../../src/regal/RegalDispatchLoader.cpp; sourceTree = "<group>"; };
+ BC4A15361599F7F00063C8DA /* RegalDispatchLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchLog.cpp; path = ../../../src/regal/RegalDispatchLog.cpp; sourceTree = "<group>"; };
+ BC4A15371599F7F00063C8DA /* RegalDispatchState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalDispatchState.h; path = ../../../src/regal/RegalDispatchState.h; sourceTree = "<group>"; };
BCB79F061592189500C418FB /* RegalConfig.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalConfig.cpp; path = ../../../src/regal/RegalConfig.cpp; sourceTree = "<group>"; };
BCB79F071592189500C418FB /* RegalConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalConfig.h; path = ../../../src/regal/RegalConfig.h; sourceTree = "<group>"; };
BCE3A40E156E9E0E00CFA9A9 /* RegalContextInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalContextInfo.cpp; path = ../../../src/regal/RegalContextInfo.cpp; sourceTree = "<group>"; };
@@ -182,7 +186,6 @@
43FFED88149524D7004FAD3A /* Regal */ = {
isa = PBXGroup;
children = (
- BC0F6D781585860A004163BD /* RegalDebugDispatch.cpp */,
BC0F6D791585860A004163BD /* RegalDebugInfo.h */,
BCB79F061592189500C418FB /* RegalConfig.cpp */,
BCB79F071592189500C418FB /* RegalConfig.h */,
@@ -199,6 +202,13 @@
43A9D2BD15653BB800D8E95E /* RegalDispatch.h */,
43A9D2BE15653BB800D8E95E /* RegalDllMain.cpp */,
43A9D2BF15653BB800D8E95E /* RegalPpc.h */,
+ BC4A15301599F7F00063C8DA /* RegalDispatchDebug.cpp */,
+ BC4A15311599F7F00063C8DA /* RegalDispatchEmu.cpp */,
+ BC4A15321599F7F00063C8DA /* RegalDispatchError.cpp */,
+ BC4A15331599F7F00063C8DA /* RegalDispatchError.h */,
+ BC4A15351599F7F00063C8DA /* RegalDispatchLoader.cpp */,
+ BC4A15361599F7F00063C8DA /* RegalDispatchLog.cpp */,
+ BC4A15371599F7F00063C8DA /* RegalDispatchState.h */,
43A9D2C015653BB800D8E95E /* RegalToken.cpp */,
43A9D2C115653BB800D8E95E /* RegalToken.h */,
43A9D2C215653BB800D8E95E /* RegalUtil.cpp */,
@@ -208,11 +218,8 @@
4326D4C3153486A0009EF3ED /* RegalBin.h */,
4326D4C4153486A0009EF3ED /* RegalDsa.h */,
4326D4C5153486A0009EF3ED /* RegalEmu.h */,
- 4326D4C6153486A0009EF3ED /* RegalEmuDispatch.cpp */,
- 4326D4C7153486A0009EF3ED /* RegalErrorDispatch.cpp */,
4326D4C8153486A0009EF3ED /* RegalIff.cpp */,
4326D4C9153486A0009EF3ED /* RegalIff.h */,
- 4326D4CA153486A0009EF3ED /* RegalLoaderDispatch.cpp */,
4326D4CB153486A0009EF3ED /* RegalLookup.cpp */,
4326D4CC153486A0009EF3ED /* RegalLookup.h */,
4326D4CD153486A0009EF3ED /* RegalObj.h */,
@@ -294,10 +301,7 @@
43085426148B0F3400AE231A /* RGLOpenGLContext.m in Sources */,
43787F5014E8512400636639 /* render.cpp in Sources */,
4326D4D0153486A0009EF3ED /* Regal.cpp in Sources */,
- 4326D4D1153486A0009EF3ED /* RegalEmuDispatch.cpp in Sources */,
- 4326D4D2153486A0009EF3ED /* RegalErrorDispatch.cpp in Sources */,
4326D4D3153486A0009EF3ED /* RegalIff.cpp in Sources */,
- 4326D4D4153486A0009EF3ED /* RegalLoaderDispatch.cpp in Sources */,
4326D4D5153486A0009EF3ED /* RegalLookup.cpp in Sources */,
43A9D2C415653BB800D8E95E /* RegalContext.cpp in Sources */,
43A9D2C515653BB800D8E95E /* RegalDllMain.cpp in Sources */,
@@ -306,9 +310,13 @@
BCE3A410156E9E0E00CFA9A9 /* RegalContextInfo.cpp in Sources */,
BCE3A414156E9EE500CFA9A9 /* RegalLog.cpp in Sources */,
BC0F6D7415858568004163BD /* RegalHelper.cpp in Sources */,
- BC0F6D7A1585882C004163BD /* RegalDebugDispatch.cpp in Sources */,
BC0F6D7B15858831004163BD /* RegalInit.cpp in Sources */,
BCB79F081592189500C418FB /* RegalConfig.cpp in Sources */,
+ BC4A15381599F7F00063C8DA /* RegalDispatchDebug.cpp in Sources */,
+ BC4A15391599F7F00063C8DA /* RegalDispatchEmu.cpp in Sources */,
+ BC4A153A1599F7F00063C8DA /* RegalDispatchError.cpp in Sources */,
+ BC4A153C1599F7F00063C8DA /* RegalDispatchLoader.cpp in Sources */,
+ BC4A153D1599F7F00063C8DA /* RegalDispatchLog.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
View
36 include/GL/Regal.h
@@ -17952,6 +17952,42 @@ REGAL_DECL void REGAL_CALL glHintPGI(GLenum target, GLint mode);
#endif
/**
+ ** GL_REGAL_error_string
+ **/
+
+#if (defined(GL_REGAL_ERROR_STRING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_ENUM_GL_REGAL_ERROR_STRING)
+#define REGAL_NO_ENUM_GL_REGAL_ERROR_STRING
+#endif
+
+#if (defined(GL_REGAL_ERROR_STRING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_TYPEDEF_GL_REGAL_ERROR_STRING)
+#define REGAL_NO_TYPEDEF_GL_REGAL_ERROR_STRING
+#endif
+
+#if (defined(GL_REGAL_ERROR_STRING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_NAMESPACE_GL_REGAL_ERROR_STRING)
+#define REGAL_NO_NAMESPACE_GL_REGAL_ERROR_STRING
+#endif
+
+#if (defined(GL_REGAL_ERROR_STRING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_DECLARATION_GL_REGAL_ERROR_STRING)
+#define REGAL_NO_DECLARATION_GL_REGAL_ERROR_STRING
+#endif
+
+#ifndef GL_REGAL_error_string
+#define GL_REGAL_error_string 1
+#endif
+
+#ifndef REGAL_NO_TYPEDEF_GL_REGAL_ERROR_STRING
+typedef const GLchar *(REGAL_CALL *PFNGLERRORSTRINGREGALPROC)(GLenum error);
+#endif
+
+#ifndef REGAL_NO_NAMESPACE_GL_REGAL_ERROR_STRING
+#define glErrorStringREGAL rglErrorStringREGAL
+#endif
+
+#ifndef REGAL_NO_DECLARATION_GL_REGAL_ERROR_STRING
+REGAL_DECL const GLchar *REGAL_CALL glErrorStringREGAL(GLenum error);
+#endif
+
+/**
** GL_REGAL_extension_query
**/
View
361 include/GL/RegalGLU.h
@@ -0,0 +1,361 @@
+/*
+ * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+ * Copyright (C) 1991-2000 Silicon Graphics, Inc. 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 including the dates of first publication and
+ * either this permission notice or a reference to
+ * http://oss.sgi.com/projects/FreeB/
+ * 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
+ * SILICON GRAPHICS, INC. 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.
+ *
+ * Except as contained in this notice, the name of Silicon Graphics, Inc.
+ * shall not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization from
+ * Silicon Graphics, Inc.
+ */
+
+#ifndef __glu_h__
+#define __glu_h__
+
+#include <GL/Regal.h>
+
+#if REGAL_SYS_WGL
+# define REGALGLU_CALL __stdcall
+#else
+# define REGALGLU_CALL
+#endif
+
+/* REGALGLU_DECL specified in the build, or inferred here... */
+
+#ifndef REGALGLU_DECL
+# ifdef _WIN32
+# if REGALGLU_DECL_EXPORT
+# define REGALGLU_DECL
+# else
+# define REGALGLU_DECL __declspec(dllimport)
+# endif
+# elif defined(__GNUC__) && __GNUC__>=4
+# if REGALGLU_DECL_EXPORT
+# define REGALGLU_DECL __attribute__ ((visibility("default")))
+# else
+# define REGALGLU_DECL
+# endif
+# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+# if REGALGLU_DECL_EXPORT
+# define REGALGLU_DECL __global
+# else
+# define REGALGLU_DECL
+# endif
+# else
+# define REGALGLU_DECL
+# endif
+#endif
+
+#ifndef REGALGLU_CALLP
+#define REGALGLU_CALLP REGALGLU_CALL *
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*************************************************************/
+
+/* Extensions */
+#define GLU_EXT_object_space_tess 1
+#define GLU_EXT_nurbs_tessellator 1
+
+/* Boolean */
+#define GLU_FALSE 0
+#define GLU_TRUE 1
+
+/* Version */
+#define GLU_VERSION_1_1 1
+#define GLU_VERSION_1_2 1
+#define GLU_VERSION_1_3 1
+
+/* StringName */
+#define GLU_VERSION 100800
+#define GLU_EXTENSIONS 100801
+
+/* ErrorCode */
+#define GLU_INVALID_ENUM 100900
+#define GLU_INVALID_VALUE 100901
+#define GLU_OUT_OF_MEMORY 100902
+#define GLU_INCOMPATIBLE_GL_VERSION 100903
+#define GLU_INVALID_OPERATION 100904
+
+/* NurbsDisplay */
+/* GLU_FILL */
+#define GLU_OUTLINE_POLYGON 100240
+#define GLU_OUTLINE_PATCH 100241
+
+/* NurbsCallback */
+#define GLU_NURBS_ERROR 100103
+#define GLU_ERROR 100103
+#define GLU_NURBS_BEGIN 100164
+#define GLU_NURBS_BEGIN_EXT 100164
+#define GLU_NURBS_VERTEX 100165
+#define GLU_NURBS_VERTEX_EXT 100165
+#define GLU_NURBS_NORMAL 100166
+#define GLU_NURBS_NORMAL_EXT 100166
+#define GLU_NURBS_COLOR 100167
+#define GLU_NURBS_COLOR_EXT 100167
+#define GLU_NURBS_TEXTURE_COORD 100168
+#define GLU_NURBS_TEX_COORD_EXT 100168
+#define GLU_NURBS_END 100169
+#define GLU_NURBS_END_EXT 100169
+#define GLU_NURBS_BEGIN_DATA 100170
+#define GLU_NURBS_BEGIN_DATA_EXT 100170
+#define GLU_NURBS_VERTEX_DATA 100171
+#define GLU_NURBS_VERTEX_DATA_EXT 100171
+#define GLU_NURBS_NORMAL_DATA 100172
+#define GLU_NURBS_NORMAL_DATA_EXT 100172
+#define GLU_NURBS_COLOR_DATA 100173
+#define GLU_NURBS_COLOR_DATA_EXT 100173
+#define GLU_NURBS_TEXTURE_COORD_DATA 100174
+#define GLU_NURBS_TEX_COORD_DATA_EXT 100174
+#define GLU_NURBS_END_DATA 100175
+#define GLU_NURBS_END_DATA_EXT 100175
+
+/* NurbsError */
+#define GLU_NURBS_ERROR1 100251
+#define GLU_NURBS_ERROR2 100252
+#define GLU_NURBS_ERROR3 100253
+#define GLU_NURBS_ERROR4 100254
+#define GLU_NURBS_ERROR5 100255
+#define GLU_NURBS_ERROR6 100256
+#define GLU_NURBS_ERROR7 100257
+#define GLU_NURBS_ERROR8 100258
+#define GLU_NURBS_ERROR9 100259
+#define GLU_NURBS_ERROR10 100260
+#define GLU_NURBS_ERROR11 100261
+#define GLU_NURBS_ERROR12 100262
+#define GLU_NURBS_ERROR13 100263
+#define GLU_NURBS_ERROR14 100264
+#define GLU_NURBS_ERROR15 100265
+#define GLU_NURBS_ERROR16 100266
+#define GLU_NURBS_ERROR17 100267
+#define GLU_NURBS_ERROR18 100268
+#define GLU_NURBS_ERROR19 100269
+#define GLU_NURBS_ERROR20 100270
+#define GLU_NURBS_ERROR21 100271
+#define GLU_NURBS_ERROR22 100272
+#define GLU_NURBS_ERROR23 100273
+#define GLU_NURBS_ERROR24 100274
+#define GLU_NURBS_ERROR25 100275
+#define GLU_NURBS_ERROR26 100276
+#define GLU_NURBS_ERROR27 100277
+#define GLU_NURBS_ERROR28 100278
+#define GLU_NURBS_ERROR29 100279
+#define GLU_NURBS_ERROR30 100280
+#define GLU_NURBS_ERROR31 100281
+#define GLU_NURBS_ERROR32 100282
+#define GLU_NURBS_ERROR33 100283
+#define GLU_NURBS_ERROR34 100284
+#define GLU_NURBS_ERROR35 100285
+#define GLU_NURBS_ERROR36 100286
+#define GLU_NURBS_ERROR37 100287
+
+/* NurbsProperty */
+#define GLU_AUTO_LOAD_MATRIX 100200
+#define GLU_CULLING 100201
+#define GLU_SAMPLING_TOLERANCE 100203
+#define GLU_DISPLAY_MODE 100204
+#define GLU_PARAMETRIC_TOLERANCE 100202
+#define GLU_SAMPLING_METHOD 100205
+#define GLU_U_STEP 100206
+#define GLU_V_STEP 100207
+#define GLU_NURBS_MODE 100160
+#define GLU_NURBS_MODE_EXT 100160
+#define GLU_NURBS_TESSELLATOR 100161
+#define GLU_NURBS_TESSELLATOR_EXT 100161
+#define GLU_NURBS_RENDERER 100162
+#define GLU_NURBS_RENDERER_EXT 100162
+
+/* NurbsSampling */
+#define GLU_OBJECT_PARAMETRIC_ERROR 100208
+#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208
+#define GLU_OBJECT_PATH_LENGTH 100209
+#define GLU_OBJECT_PATH_LENGTH_EXT 100209
+#define GLU_PATH_LENGTH 100215
+#define GLU_PARAMETRIC_ERROR 100216
+#define GLU_DOMAIN_DISTANCE 100217
+
+/* NurbsTrim */
+#define GLU_MAP1_TRIM_2 100210
+#define GLU_MAP1_TRIM_3 100211
+
+/* QuadricDrawStyle */
+#define GLU_POINT 100010
+#define GLU_LINE 100011
+#define GLU_FILL 100012
+#define GLU_SILHOUETTE 100013
+
+/* QuadricCallback */
+/* GLU_ERROR */
+
+/* QuadricNormal */
+#define GLU_SMOOTH 100000
+#define GLU_FLAT 100001
+#define GLU_NONE 100002
+
+/* QuadricOrientation */
+#define GLU_OUTSIDE 100020
+#define GLU_INSIDE 100021
+
+/* TessCallback */
+#define GLU_TESS_BEGIN 100100
+#define GLU_BEGIN 100100
+#define GLU_TESS_VERTEX 100101
+#define GLU_VERTEX 100101
+#define GLU_TESS_END 100102
+#define GLU_END 100102
+#define GLU_TESS_ERROR 100103
+#define GLU_TESS_EDGE_FLAG 100104
+#define GLU_EDGE_FLAG 100104
+#define GLU_TESS_COMBINE 100105
+#define GLU_TESS_BEGIN_DATA 100106
+#define GLU_TESS_VERTEX_DATA 100107
+#define GLU_TESS_END_DATA 100108
+#define GLU_TESS_ERROR_DATA 100109
+#define GLU_TESS_EDGE_FLAG_DATA 100110
+#define GLU_TESS_COMBINE_DATA 100111
+
+/* TessContour */
+#define GLU_CW 100120
+#define GLU_CCW 100121
+#define GLU_INTERIOR 100122
+#define GLU_EXTERIOR 100123
+#define GLU_UNKNOWN 100124
+
+/* TessProperty */
+#define GLU_TESS_WINDING_RULE 100140
+#define GLU_TESS_BOUNDARY_ONLY 100141
+#define GLU_TESS_TOLERANCE 100142
+
+/* TessError */
+#define GLU_TESS_ERROR1 100151
+#define GLU_TESS_ERROR2 100152
+#define GLU_TESS_ERROR3 100153
+#define GLU_TESS_ERROR4 100154
+#define GLU_TESS_ERROR5 100155
+#define GLU_TESS_ERROR6 100156
+#define GLU_TESS_ERROR7 100157
+#define GLU_TESS_ERROR8 100158
+#define GLU_TESS_MISSING_BEGIN_POLYGON 100151
+#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152
+#define GLU_TESS_MISSING_END_POLYGON 100153
+#define GLU_TESS_MISSING_END_CONTOUR 100154
+#define GLU_TESS_COORD_TOO_LARGE 100155
+#define GLU_TESS_NEED_COMBINE_CALLBACK 100156
+
+/* TessWinding */
+#define GLU_TESS_WINDING_ODD 100130
+#define GLU_TESS_WINDING_NONZERO 100131
+#define GLU_TESS_WINDING_POSITIVE 100132
+#define GLU_TESS_WINDING_NEGATIVE 100133
+#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134
+
+/*************************************************************/
+
+
+#ifdef __cplusplus
+class GLUnurbs;
+class GLUquadric;
+class GLUtesselator;
+#else
+typedef struct GLUnurbs GLUnurbs;
+typedef struct GLUquadric GLUquadric;
+typedef struct GLUtesselator GLUtesselator;
+#endif
+
+typedef GLUnurbs GLUnurbsObj;
+typedef GLUquadric GLUquadricObj;
+typedef GLUtesselator GLUtesselatorObj;
+typedef GLUtesselator GLUtriangulatorObj;
+
+#define GLU_TESS_MAX_COORD 1.0e150
+
+/* Internal convenience typedefs */
+typedef void (REGALGLU_CALLP _GLUfuncptr)(void);
+
+REGALGLU_DECL void REGALGLU_CALL gluBeginCurve (GLUnurbs* nurb);
+REGALGLU_DECL void REGALGLU_CALL gluBeginPolygon (GLUtesselator* tess);
+REGALGLU_DECL void REGALGLU_CALL gluBeginSurface (GLUnurbs* nurb);
+REGALGLU_DECL void REGALGLU_CALL gluBeginTrim (GLUnurbs* nurb);
+REGALGLU_DECL GLint REGALGLU_CALL gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
+REGALGLU_DECL GLint REGALGLU_CALL gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data);
+REGALGLU_DECL GLint REGALGLU_CALL gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
+REGALGLU_DECL GLint REGALGLU_CALL gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data);
+REGALGLU_DECL GLint REGALGLU_CALL gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
+REGALGLU_DECL GLint REGALGLU_CALL gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
+REGALGLU_DECL GLboolean REGALGLU_CALL gluCheckExtension (const GLubyte *extName, const GLubyte *extString);
+REGALGLU_DECL void REGALGLU_CALL gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
+REGALGLU_DECL void REGALGLU_CALL gluDeleteNurbsRenderer (GLUnurbs* nurb);
+REGALGLU_DECL void REGALGLU_CALL gluDeleteQuadric (GLUquadric* quad);
+REGALGLU_DECL void REGALGLU_CALL gluDeleteTess (GLUtesselator* tess);
+REGALGLU_DECL void REGALGLU_CALL gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
+REGALGLU_DECL void REGALGLU_CALL gluEndCurve (GLUnurbs* nurb);
+REGALGLU_DECL void REGALGLU_CALL gluEndPolygon (GLUtesselator* tess);
+REGALGLU_DECL void REGALGLU_CALL gluEndSurface (GLUnurbs* nurb);
+REGALGLU_DECL void REGALGLU_CALL gluEndTrim (GLUnurbs* nurb);
+REGALGLU_DECL const GLubyte * REGALGLU_CALL gluErrorString (GLenum error);
+REGALGLU_DECL void REGALGLU_CALL gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data);
+REGALGLU_DECL const GLubyte * REGALGLU_CALL gluGetString (GLenum name);
+REGALGLU_DECL void REGALGLU_CALL gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data);
+REGALGLU_DECL void REGALGLU_CALL gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view);
+REGALGLU_DECL void REGALGLU_CALL gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ);
+REGALGLU_DECL GLUnurbs* REGALGLU_CALL gluNewNurbsRenderer (void);
+REGALGLU_DECL GLUquadric* REGALGLU_CALL gluNewQuadric (void);
+REGALGLU_DECL GLUtesselator* REGALGLU_CALL gluNewTess (void);
+REGALGLU_DECL void REGALGLU_CALL gluNextContour (GLUtesselator* tess, GLenum type);
+REGALGLU_DECL void REGALGLU_CALL gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc);
+REGALGLU_DECL void REGALGLU_CALL gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData);
+REGALGLU_DECL void REGALGLU_CALL gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData);
+REGALGLU_DECL void REGALGLU_CALL gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type);
+REGALGLU_DECL void REGALGLU_CALL gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value);
+REGALGLU_DECL void REGALGLU_CALL gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type);
+REGALGLU_DECL void REGALGLU_CALL gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);
+REGALGLU_DECL void REGALGLU_CALL gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
+REGALGLU_DECL void REGALGLU_CALL gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
+REGALGLU_DECL void REGALGLU_CALL gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport);
+REGALGLU_DECL GLint REGALGLU_CALL gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ);
+REGALGLU_DECL void REGALGLU_CALL gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type);
+REGALGLU_DECL void REGALGLU_CALL gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc);
+REGALGLU_DECL void REGALGLU_CALL gluQuadricDrawStyle (GLUquadric* quad, GLenum draw);
+REGALGLU_DECL void REGALGLU_CALL gluQuadricNormals (GLUquadric* quad, GLenum normal);
+REGALGLU_DECL void REGALGLU_CALL gluQuadricOrientation (GLUquadric* quad, GLenum orientation);
+REGALGLU_DECL void REGALGLU_CALL gluQuadricTexture (GLUquadric* quad, GLboolean texture);
+REGALGLU_DECL GLint REGALGLU_CALL gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut);
+REGALGLU_DECL void REGALGLU_CALL gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks);
+REGALGLU_DECL void REGALGLU_CALL gluTessBeginContour (GLUtesselator* tess);
+REGALGLU_DECL void REGALGLU_CALL gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data);
+REGALGLU_DECL void REGALGLU_CALL gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc);
+REGALGLU_DECL void REGALGLU_CALL gluTessEndContour (GLUtesselator* tess);
+REGALGLU_DECL void REGALGLU_CALL gluTessEndPolygon (GLUtesselator* tess);
+REGALGLU_DECL void REGALGLU_CALL gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ);
+REGALGLU_DECL void REGALGLU_CALL gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data);
+REGALGLU_DECL void REGALGLU_CALL gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data);
+REGALGLU_DECL GLint REGALGLU_CALL gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
+REGALGLU_DECL GLint REGALGLU_CALL gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __glu_h__ */
View
105 src/boost/boost/print/detail.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2010-2012 NVIDIA Corporation
+ * Copyright (c) 2010-2012 Nigel Stewart
+ * All rights reserved.
+ *
+ * Distributed under the Boost Software License, Version 1.0.
+ * (See accompanying file LICENSE_1_0.txt or copy at
+ * http://www.boost.org/LICENSE_1_0.txt)
+ *
+ * boost::print is a library for string conversion.
+ * boost::print is not currently a part of boost.
+ */
+
+#if defined(_MSC_VER) && (_MSC_VER>=1200)
+#pragma once
+#endif
+
+#include "detail.hpp"
+
+//
+// boost::print::detail namespace for internal implementation purposes
+//
+
+namespace boost { namespace print { namespace detail {
+
+// Determine the number of digits of an unsigned integer
+// Use binary search to minimise comparisons.
+
+// 8-bit unsigned integer
+
+size_t unsigned_length(const boost::uint8_t val)
+{
+ return val<10 ? 1 : (val<100 ? 2 : 3);
+}
+
+// 16-bit unsigned integer
+
+size_t unsigned_length(const boost::uint16_t val)
+{
+ if (val<1000)
+ return val<10 ? 1 : (val<100 ? 2 : 3);
+ else
+ return val<10000 ? 4 : 5;
+}
+
+// 32-bit unsigned integer
+
+size_t unsigned_length(const boost::uint32_t val)
+{
+ if (val<10000)
+ return val<100 ? (val<10 ? 1 : 2) : (val<1000 ? 3 : 4);
+ else
+ return val<10000000 ?
+ ( val < 100000 ? 5 : (val<1000000 ? 6 : 7)) :
+ ( val < 100000000 ? 8 : (val<1000000000 ? 9 : 10));
+}
+
+// 64-bit unsigned integer
+
+size_t unsigned_length(const boost::uint64_t val)
+{
+ if (val<100000000ll)
+ {
+ if (val<10000)
+ return val<100 ? (val<10 ? 1 : 2) : (val<1000 ? 3 : 4);
+ else
+ return val<1000000 ? (val<100000 ? 5 : 6) : (val<10000000 ? 7 : 8);
+ }
+ else
+ {
+ if (val<1000000000000ll)
+ return val<10000000000ll ? (val<1000000000ll ? 9 : 10) : (val<100000000000ll ? 11 : 12);
+ else
+ {
+ if (val<10000000000000000ll)
+ return val<100000000000000ll ? (val<10000000000000ll ? 13 : 14) : (val<1000000000000000ll ? 15 : 16);
+ else
+ return val<1000000000000000000ll ? (val<100000000000000000ll ? 17 : 18) : (val<10000000000000000000ull ? 19 : 20);
+ }
+ }
+}
+
+// Output unsigned integer
+
+void write_unsigned(std::string::iterator &i, boost::uint8_t val)
+{
+ return write_unsigned<std::string::iterator, boost::uint8_t>(i,val);
+}
+
+void write_unsigned(std::string::iterator &i, boost::uint16_t val)
+{
+ return write_unsigned<std::string::iterator, boost::uint16_t>(i,val);
+}
+
+void write_unsigned(std::string::iterator &i, boost::uint32_t val)
+{
+ return write_unsigned<std::string::iterator, boost::uint32_t>(i,val);
+}
+
+void write_unsigned(std::string::iterator &i, boost::uint64_t val)
+{
+ return write_unsigned<std::string::iterator, boost::uint64_t>(i,val);
+}
+
+}}}
View
78 src/boost/boost/print/interface.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2010-2012 NVIDIA Corporation
+ * Copyright (c) 2010-2012 Nigel Stewart
+ * All rights reserved.
+ *
+ * Distributed under the Boost Software License, Version 1.0.
+ * (See accompanying file LICENSE_1_0.txt or copy at
+ * http://www.boost.org/LICENSE_1_0.txt)
+ *
+ * boost::print is a library for string conversion.
+ * boost::print is not currently a part of boost.
+ */
+
+#include "interface.hpp"
+
+namespace boost { namespace print { namespace extend {
+
+std::size_t length(const ::boost::print::detail::array<boost::uint8_t, const char *> &val)
+{
+ return ::boost::print::extend::length<boost::uint8_t, const char *>(val);
+}
+
+std::size_t length(const ::boost::print::detail::array<boost::uint16_t, const char *> &val)
+{
+ return length<boost::uint16_t, const char *>(val);
+}
+
+std::size_t length(const ::boost::print::detail::array<boost::uint32_t, const char *> &val)
+{
+ return length<boost::uint32_t, const char *>(val);
+}
+
+std::size_t length(const ::boost::print::detail::array<boost::uint64_t, const char *> &val)
+{
+ return length<boost::uint64_t, const char *>(val);
+}
+
+std::size_t length(const ::boost::print::detail::array<float, const char *> &val)
+{
+ return length<float, const char *>(val);
+}
+
+std::size_t length(const ::boost::print::detail::array<double, const char *> &val)
+{
+ return length<double, const char *>(val);
+}
+
+void write(std::string::iterator &i, const ::boost::print::detail::array<boost::uint8_t, const char *> &val)
+{
+ write<std::string::iterator,boost::uint8_t,const char *>(i,val);
+}
+
+void write(std::string::iterator &i, const ::boost::print::detail::array<boost::uint16_t, const char *> &val)
+{
+ write<std::string::iterator,boost::uint16_t,const char *>(i,val);
+}
+
+void write(std::string::iterator &i, const ::boost::print::detail::array<boost::uint32_t, const char *> &val)
+{
+ write<std::string::iterator,boost::uint32_t,const char *>(i,val);
+}
+
+void write(std::string::iterator &i, const ::boost::print::detail::array<boost::uint64_t, const char *> &val)
+{
+ write<std::string::iterator,boost::uint64_t,const char *>(i,val);
+}
+
+void write(std::string::iterator &i, const ::boost::print::detail::array<float, const char *> &val)
+{
+ write<std::string::iterator,float,const char *>(i,val);
+}
+
+void write(std::string::iterator &i, const ::boost::print::detail::array<double, const char *> &val)
+{
+ write<std::string::iterator,double,const char *>(i,val);
+}
+
+}}}
View
38 src/glu/include/GL/glu.h
@@ -39,26 +39,30 @@
# define REGALGLU_CALL
#endif
-#ifdef _WIN32
-# if REGALGLU_DECL_EXPORT
-# define REGALGLU_DECL
-# else
-# define REGALGLU_DECL __declspec(dllimport)
-# endif
-#elif defined(__GNUC__) && __GNUC__>=4
-# if REGALGLU_DECL_EXPORT
-# define REGALGLU_DECL __attribute__ ((visibility("default")))
+/* REGALGLU_DECL specified in the build, or inferred here... */
+
+#ifndef REGALGLU_DECL
+# ifdef _WIN32
+# if REGALGLU_DECL_EXPORT
+# define REGALGLU_DECL
+# else
+# define REGALGLU_DECL __declspec(dllimport)
+# endif
+# elif defined(__GNUC__) && __GNUC__>=4
+# if REGALGLU_DECL_EXPORT
+# define REGALGLU_DECL __attribute__ ((visibility("default")))
+# else
+# define REGALGLU_DECL
+# endif
+# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+# if REGALGLU_DECL_EXPORT
+# define REGALGLU_DECL __global
+# else
+# define REGALGLU_DECL
+# endif
# else
# define REGALGLU_DECL
# endif
-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-# if REGALGLU_DECL_EXPORT
-# define REGALGLU_DECL __global
-# else
-# define REGALGLU_DECL
-# endif
-#else
-# define REGALGLU_DECL
#endif
#ifndef REGALGLU_CALLP
View
22,498 src/regal/Regal.cpp
12,610 additions, 9,888 deletions not shown
View
1  src/regal/Regal.def
@@ -440,6 +440,7 @@ EXPORTS
glEndTransformFeedbackNV
glEndVertexShaderEXT
glEndVideoCaptureNV
+ glErrorStringREGAL
glEvalCoord1d
glEvalCoord1dv
glEvalCoord1f
View
14 src/regal/RegalBin.h
@@ -5,16 +5,16 @@
Copyright (c) 2012 Mathias Schott
Copyright (c) 2012 Nigel Stewart
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
-
+
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
@@ -38,7 +38,13 @@
#define __REGAL_BIN_H__
#include "RegalUtil.h"
+
+REGAL_GLOBAL_BEGIN
+
#include "RegalEmu.h"
+#include "RegalDispatchState.h"
+
+REGAL_GLOBAL_END
REGAL_NAMESPACE_BEGIN
@@ -49,7 +55,7 @@ struct RegalBin : public RegalEmu {
}
void ShaderBinary( RegalContext * ctx, GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void * binary, GLsizei length) {
- DispatchTable & tbl = ctx->dsp.emuTbl;
+ DispatchTable & tbl = ctx->dsp->emuTbl;
tbl.glShaderBinary( count, shaders, binaryFormat, binary, length );
}
};
View
25 src/regal/RegalConfig.cpp
@@ -49,7 +49,8 @@ Config Config::config;
Config::Config()
: forceCoreProfile(false),
enableEmulation(true),
- enableDebug(false)
+ enableDebug(false),
+ enableError(false)
{
#ifndef REGAL_NO_GETENV
const char *tmp;
@@ -62,11 +63,31 @@ Config::Config()
tmp = GetEnv( "REGAL_DEBUG" );
if (tmp) enableDebug = atoi(tmp)!=0;
+
+ tmp = GetEnv( "REGAL_ERROR" );
+ if (tmp) enableError = atoi(tmp)!=0;
+#endif
+
+#ifdef REGAL_FORCE_CORE_PROFILE
+ forceCoreProfile = (REGAL_FORCE_CORE_PROFILE) != 0;
+#endif
+
+#ifdef REGAL_NO_EMULATION
+ enableEmulation = (REGAL_NO_EMULATION) == 0;
+#endif
+
+#ifdef REGAL_DEBUG
+ enableDebug = (REGAL_DEBUG) != 0;
+#endif
+
+#ifdef REGAL_ERROR
+ enableDebug = (REGAL_ERROR) != 0;
#endif
Info("REGAL_FORCE_CORE_PROFILE ", forceCoreProfile ? "enabled" : "disabled");
Info("REGAL_NO_EMULATION ", !enableEmulation ? "enabled" : "disabled");
Info("REGAL_DEBUG ", enableDebug ? "enabled" : "disabled");
+ Info("REGAL_ERROR ", enableError ? "enabled" : "disabled");
}
-
+
REGAL_NAMESPACE_END
View
5 src/regal/RegalConfig.h
@@ -42,11 +42,12 @@ REGAL_NAMESPACE_BEGIN
struct Config
{
Config();
-
+
bool forceCoreProfile;
bool enableEmulation;
bool enableDebug;
-
+ bool enableError;
+
static Config config;
};
View
47 src/regal/RegalContext.cpp
@@ -40,6 +40,7 @@ REGAL_GLOBAL_BEGIN
#include "RegalConfig.h"
#include "RegalContext.h"
+#include "RegalDispatchState.h"
#include "RegalDebugInfo.h"
#include "RegalContextInfo.h"
#include "RegalObj.h"
@@ -55,29 +56,40 @@ REGAL_NAMESPACE_BEGIN
using namespace Logging;
-void RegalContext::Init()
+RegalContext::RegalContext()
+: dsp(new DispatchState()),
+ dbg(NULL),
+ info(NULL),
+ obj(NULL),
+ marker(NULL),
+ bin(NULL),
+ dsa(NULL),
+ iff(NULL),
+ vao(NULL),
+ sysCtx(0),
+ thread(0)
{
- ITrace("RegalContext::Init()");
- dsp.Init();
- err.Init();
+ ITrace("RegalContext::RegalContext");
+ dsp->Init();
if( Config::config.enableDebug ) {
dbg = new DebugInfo();
dbg->Init(this);
- } else {
- dbg = NULL;
}
+ RegalAssert(dsp);
+}
+
+void
+RegalContext::Init()
+{
+ ITrace("RegalContext::Init");
+
info = new ContextInfo();
RegalAssert(this);
RegalAssert(info);
info->init(*this);
+
// emu
- emuLevel = 8;
- vao = NULL;
- iff = NULL;
- dsa = NULL;
- bin = NULL;
- marker = NULL;
- obj = NULL;
+ emuLevel = 7;
if( Config::config.enableEmulation ) {
vao = new RegalVao;
vao->emuLevel = 1;
@@ -95,17 +107,16 @@ void RegalContext::Init()
marker->emuLevel = 5;
marker->Init( this );
obj = new RegalObj;
- obj->emuLevel = 8;
+ obj->emuLevel = 7;
obj->Init( this );
}
- sysCtx = 0;
- thread = 0;
}
-void RegalContext::Cleanup()
+RegalContext::~RegalContext()
{
- ITrace("RegalContext::Cleanup()");
+ ITrace("RegalContext::~RegalContext");
+ delete dsp;
delete info;
// emu
delete obj;
View
36 src/regal/RegalContext.h
@@ -40,6 +40,7 @@
REGAL_GLOBAL_BEGIN
#include "RegalPrivate.h"
+#include "RegalDispatchError.h"
REGAL_GLOBAL_END
@@ -47,6 +48,7 @@ REGAL_NAMESPACE_BEGIN
struct DebugInfo;
struct ContextInfo;
+struct DispatchState;
struct RegalObj;
struct RegalMarker;
@@ -55,24 +57,28 @@ struct RegalDsa;
struct RegalIff;
struct RegalVao;
-struct RegalContext {
+struct RegalContext
+{
+ RegalContext();
+ ~RegalContext();
+
void Init();
- void Cleanup();
- RegalDispatchState dsp;
- RegalErrorState err;
- DebugInfo *dbg;
- ContextInfo *info;
+
+ DispatchState *dsp;
+ DispatchErrorState err;
+ DebugInfo *dbg;
+ ContextInfo *info;
// emu
int emuLevel;
- RegalObj * obj;
- RegalMarker * marker;
- RegalBin * bin;
- RegalDsa * dsa;
- RegalIff * iff;
- RegalVao * vao;
-
- RegalSystemContext sysCtx;
- Thread thread;
+ RegalObj *obj;
+ RegalMarker *marker;
+ RegalBin *bin;
+ RegalDsa *dsa;
+ RegalIff *iff;
+ RegalVao *vao;
+
+ RegalSystemContext sysCtx;
+ Thread thread;
};
REGAL_NAMESPACE_END
View
25 src/regal/RegalContextInfo.cpp
@@ -275,7 +275,6 @@ ContextInfo::ContextInfo()
gl_nv_vertex_program4(false),
gl_nv_video_capture(false),
gl_pgi_misc_hints(false),
- gl_regal_extension_query(false),
gl_sgis_detail_texture(false),
gl_sgis_fog_function(false),
gl_sgis_multisample(false),
@@ -382,8 +381,8 @@ ContextInfo::~ContextInfo()
inline string getString(const RegalContext &context, const GLenum e)
{
ITrace("getString ",e);
- RegalAssert(context.dsp.driverTbl.glGetString);
- const GLubyte *str = context.dsp.driverTbl.glGetString(e);
+ RegalAssert(context.dsp->driverTbl.glGetString);
+ const GLubyte *str = context.dsp->driverTbl.glGetString(e);
return str ? string(reinterpret_cast<const char *>(str)) : string();
}
@@ -419,8 +418,8 @@ ContextInfo::init(const RegalContext &context)
if (!gles && gl_version_major>=3)
{
GLint flags = 0;
- RegalAssert(context.dsp.driverTbl.glGetIntegerv);
- context.dsp.driverTbl.glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &flags);
+ RegalAssert(context.dsp->driverTbl.glGetIntegerv);
+ context.dsp->driverTbl.glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &flags);
core = flags & GL_CONTEXT_CORE_PROFILE_BIT ? GL_TRUE : GL_FALSE;
}
@@ -432,14 +431,14 @@ ContextInfo::init(const RegalContext &context)
if (core)
{
- RegalAssert(context.dsp.driverTbl.glGetStringi);
- RegalAssert(context.dsp.driverTbl.glGetIntegerv);
+ RegalAssert(context.dsp->driverTbl.glGetStringi);
+ RegalAssert(context.dsp->driverTbl.glGetIntegerv);
GLint n = 0;
- context.dsp.driverTbl.glGetIntegerv(GL_NUM_EXTENSIONS, &n);
+ context.dsp->driverTbl.glGetIntegerv(GL_NUM_EXTENSIONS, &n);
for (GLint i=0; i<n; ++i)
- extList.push_back(reinterpret_cast<const char *>(context.dsp.driverTbl.glGetStringi(GL_EXTENSIONS,i)));
+ extList.push_back(reinterpret_cast<const char *>(context.dsp->driverTbl.glGetStringi(GL_EXTENSIONS,i)));
extensions = extList.join(" ");
}
else
@@ -710,7 +709,6 @@ ContextInfo::init(const RegalContext &context)
gl_nv_vertex_program4 = e.find("GL_NV_vertex_program4")!=e.end();
gl_nv_video_capture = e.find("GL_NV_video_capture")!=e.end();
gl_pgi_misc_hints = e.find("GL_PGI_misc_hints")!=e.end();
- gl_regal_extension_query = e.find("GL_REGAL_extension_query")!=e.end();
gl_sgis_detail_texture = e.find("GL_SGIS_detail_texture")!=e.end();
gl_sgis_fog_function = e.find("GL_SGIS_fog_function")!=e.end();
gl_sgis_multisample = e.find("GL_SGIS_multisample")!=e.end();
@@ -806,8 +804,8 @@ ContextInfo::init(const RegalContext &context)
glx_sun_video_resize = e.find("GLX_SUN_video_resize")!=e.end();
#endif
- RegalAssert(context.dsp.driverTbl.glGetIntegerv);
- context.dsp.driverTbl.glGetIntegerv( GL_MAX_VERTEX_ATTRIBS, reinterpret_cast<GLint *>(&maxVertexAttribs));
+ RegalAssert(context.dsp->driverTbl.glGetIntegerv);
+ context.dsp->driverTbl.glGetIntegerv( GL_MAX_VERTEX_ATTRIBS, reinterpret_cast<GLint *>(&maxVertexAttribs));
if (maxVertexAttribs > REGAL_MAX_VERTEX_ATTRIBS)
maxVertexAttribs = REGAL_MAX_VERTEX_ATTRIBS;
@@ -1007,7 +1005,8 @@ ContextInfo::getExtension(const char *ext) const
if (!strcmp(ext,"GL_NV_vertex_program4")) return gl_nv_vertex_program4;
if (!strcmp(ext,"GL_NV_video_capture")) return gl_nv_video_capture;
if (!strcmp(ext,"GL_PGI_misc_hints")) return gl_pgi_misc_hints;
- if (!strcmp(ext,"GL_REGAL_extension_query")) return gl_regal_extension_query;
+ if (!strcmp(ext,"GL_REGAL_error_string")) return true;
+ if (!strcmp(ext,"GL_REGAL_extension_query")) return true;
if (!strcmp(ext,"GL_SGIS_detail_texture")) return gl_sgis_detail_texture;
if (!strcmp(ext,"GL_SGIS_fog_function")) return gl_sgis_fog_function;
if (!strcmp(ext,"GL_SGIS_multisample")) return gl_sgis_multisample;
View
1  src/regal/RegalContextInfo.h
@@ -298,7 +298,6 @@ struct ContextInfo
GLboolean gl_nv_vertex_program4 : 1;
GLboolean gl_nv_video_capture : 1;
GLboolean gl_pgi_misc_hints : 1;
- GLboolean gl_regal_extension_query : 1;
GLboolean gl_sgis_detail_texture : 1;
GLboolean gl_sgis_fog_function : 1;
GLboolean gl_sgis_multisample : 1;
View
18 src/regal/RegalDebugInfo.h
@@ -5,16 +5,16 @@
Copyright (c) 2012 Mathias Schott
Copyright (c) 2012 Nigel Stewart
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
-
+
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
@@ -91,11 +91,11 @@ struct DebugInfo {
std::map< GLuint, DebugTexObject > textures;
std::map< GLuint, DebugBufferObject> buffers;
- DebugInfo()
+ DebugInfo()
: clientActiveTextureIndex( 0 )
- , activeTextureIndex( 0 ) {
+ , activeTextureIndex( 0 ) {
}
-
+
void Init( RegalContext * ctx ) {
UNUSED_PARAMETER(ctx);
matrixMode = RGL_MODELVIEW;
@@ -105,15 +105,15 @@ struct DebugInfo {
UNUSED_PARAMETER(ctx);
matrixMode = static_cast<RegalEnum>(mode);
}
-
+
void ClientActiveTexture( RegalContext * ctx, GLenum texture ) {
UNUSED_PARAMETER(ctx);
- clientActiveTextureIndex = texture - GL_TEXTURE0;
+ clientActiveTextureIndex = texture - GL_TEXTURE0;
}
void ActiveTexture( RegalContext * ctx, GLenum texture ) {
UNUSED_PARAMETER(ctx);
- activeTextureIndex = texture - GL_TEXTURE0;
+ activeTextureIndex = texture - GL_TEXTURE0;
}
};
View
7 src/regal/RegalDispatch.h
@@ -604,6 +604,8 @@ struct DispatchTableGlobal {
};
+extern DispatchTableGlobal dispatchTableGlobal;
+
struct DispatchTable {
// GL_VERSION_1_0
@@ -3549,11 +3551,6 @@ struct DispatchTable {
void (REGAL_CALL *glTransformPathNV)(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues);
void (REGAL_CALL *glWeightPathsNV)(GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights);
- // GL_REGAL_extension_query
-
- GLboolean (REGAL_CALL *glGetExtensionREGAL)(const GLchar *ext);
- GLboolean (REGAL_CALL *glIsSupportedREGAL)(const GLchar *ext);
-
// GL_AMD_debug_output
GLuint (REGAL_CALL *glGetDebugMessageLogAMD)(GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
View
9,578 src/regal/RegalDebugDispatch.cpp → src/regal/RegalDispatchDebug.cpp
4,778 additions, 4,800 deletions not shown
View
5,401 src/regal/RegalEmuDispatch.cpp → src/regal/RegalDispatchEmu.cpp
1,631 additions, 3,770 deletions not shown
View
44,325 src/regal/RegalDispatchError.cpp
44,325 additions, 0 deletions not shown
View
66 src/regal/RegalDispatchError.h
@@ -0,0 +1,66 @@
+/*
+Copyright (c) 2011 NVIDIA Corporation
+Copyright (c) 2011-2012 Cass Everitt
+Copyright (c) 2012 Scott Nations
+Copyright (c) 2012 Mathias Schott
+Copyright (c) 2012 Nigel Stewart
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef __REGAL_DISPATCH_ERROR_H__
+#define __REGAL_DISPATCH_ERROR_H__
+
+#include "RegalUtil.h"
+
+REGAL_GLOBAL_BEGIN
+
+#include <GL/Regal.h>
+
+REGAL_GLOBAL_END
+
+REGAL_NAMESPACE_BEGIN
+
+struct RegalContext;
+
+struct DispatchErrorState
+{
+public:
+ DispatchErrorState()
+ : callback(NULL),
+ inBeginEnd(false)
+ {
+ }
+
+ ~DispatchErrorState()
+ {
+ }
+
+ ::RegalErrorCallback Set( RegalContext *ctx, ::RegalErrorCallback cb );
+
+ ::RegalErrorCallback callback;
+ bool inBeginEnd;
+};
+
+REGAL_NAMESPACE_END
+
+#endif // __REGAL_DISPATCH_ERROR_H__
View
24,166 src/regal/RegalLoaderDispatch.cpp → src/regal/RegalDispatchLoader.cpp
14,330 additions, 9,836 deletions not shown
View
30,003 src/regal/RegalDispatchLog.cpp
30,003 additions, 0 deletions not shown
View
192 src/regal/RegalDispatchState.h
@@ -0,0 +1,192 @@
+/*
+Copyright (c) 2011 NVIDIA Corporation
+Copyright (c) 2011-2012 Cass Everitt
+Copyright (c) 2012 Scott Nations
+Copyright (c) 2012 Mathias Schott
+Copyright (c) 2012 Nigel Stewart
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef __REGAL_DISPATCH_STATE_H__
+#define __REGAL_DISPATCH_STATE_H__
+
+#include "RegalUtil.h"
+
+REGAL_GLOBAL_BEGIN
+
+#include "RegalPrivate.h"
+
+REGAL_GLOBAL_END
+
+REGAL_NAMESPACE_BEGIN
+
+#define REGAL_MAX_DISPATCH_TABLE_STACK_SIZE 5
+
+void InitDispatchTableDebug (DispatchTable &tbl);
+void InitDispatchTableError (DispatchTable &tbl);
+void InitDispatchTableEmu (DispatchTable &tbl);
+void InitDispatchTableLoader(DispatchTable &tbl);
+void InitDispatchTableLog (DispatchTable &tbl);
+
+enum RegalDispatchTableEnum {
+ RDT_Debug = 5,
+ RDT_Error = 4,
+ RDT_Emu = 3,
+ RDT_Log = 2,
+ RDT_Driver = 1
+};
+
+struct DispatchState {
+ void Init()
+ {
+ for( int i = 0; i < REGAL_MAX_DISPATCH_TABLE_STACK_SIZE + 1; i++ ) {
+ stack[i] = NULL;
+ }
+ stackSize = 0;
+ stackCurr = 0; // todo: remove stackCurr
+ curr = stack[ stackCurr ];
+ InitDispatchTableDebug( dbgTbl );
+ InitDispatchTableError( errorTbl );
+ InitDispatchTableLog( emuTbl );
+ InitDispatchTableEmu( emuTbl ); // overrides emulated functions only
+ InitDispatchTableLog( logTbl );
+ InitDispatchTableLoader( driverTbl );
+ if (Config::config.enableDebug)
+ Insert(0, RDT_Debug);
+ if (Config::config.enableError)
+ Insert(0, RDT_Error);
+ Insert( 0, RDT_Emu );
+ Insert( 0, RDT_Log );
+ Insert( 0, RDT_Driver );
+ }
+ void StepDown()
+ {
+ RegalAssert( stackCurr > 0 );
+ stackCurr--;
+ curr = stack[stackCurr];
+ }
+ void StepUp()
+ {
+ RegalAssert( stackCurr < REGAL_MAX_DISPATCH_TABLE_STACK_SIZE );
+ stackCurr++;
+ curr = stack[stackCurr];
+ }
+ DispatchTable *Table( RegalDispatchTableEnum dt )
+ {
+ switch( dt ) {
+ case RDT_Debug: return &dbgTbl;
+ case RDT_Error: return &errorTbl;
+ case RDT_Emu: return &emuTbl;
+ case RDT_Log: return &logTbl;
+ case RDT_Driver: return &driverTbl;
+ default: break;
+ }
+ return NULL;
+ }
+
+ void Insert( int loc, RegalDispatchTableEnum dt )
+ {
+ DispatchTable * tbl = Table( dt );
+ if (loc > stackSize || loc < 0 || tbl == NULL) {
+ return;
+ }
+ if (stackSize >= REGAL_MAX_DISPATCH_TABLE_STACK_SIZE) {
+ return;
+ }
+ stackSize++;
+ stackCurr = stackSize - 1;
+ for( int i = stackSize-1; i > loc; i-- ) {
+ stack[ i ] = stack[ i - 1 ];
+ }
+ stack[ loc ] = tbl;
+ curr = stack[stackCurr];
+ }
+
+ void Erase( RegalDispatchTableEnum dt )
+ {
+ DispatchTable * tbl = Table( dt );
+ int slot = 0;
+ for( int i = 1; i < REGAL_MAX_DISPATCH_TABLE_STACK_SIZE; i++ ) {
+ if (stack[i] == tbl) {
+ slot = i;
+ break;
+ }
+ }
+ if (slot == REGAL_MAX_DISPATCH_TABLE_STACK_SIZE) {
+ return;
+ }
+ for( int i = slot; i < REGAL_MAX_DISPATCH_TABLE_STACK_SIZE; i++ ) {
+ stack[ i ] = stack[ i + 1 ];
+ }
+ stackSize--;
+ stackCurr = stackSize - 1;
+ curr = stack[stackCurr];
+ }
+
+ DispatchTable *stack[ REGAL_MAX_DISPATCH_TABLE_STACK_SIZE + 1 ];
+ DispatchTable *curr;
+ int stackSize;
+ int stackCurr;
+
+ DispatchTable dbgTbl;
+ DispatchTable errorTbl;
+ DispatchTable emuTbl;
+ DispatchTable logTbl;
+ DispatchTable driverTbl;
+};
+
+struct DispatchStateScopedStepDown
+{
+public:
+ DispatchStateScopedStepDown(DispatchState &dispatchState)
+ : dsp(&dispatchState)
+ {
+ RegalAssert(dsp);
+ dsp->StepDown();
+ }
+
+ DispatchStateScopedStepDown(DispatchState *dispatchState)
+ : dsp(dispatchState)
+ {
+ RegalAssert(dsp);
+ dsp->StepDown();
+ }
+
+ ~DispatchStateScopedStepDown()
+ {
+ RegalAssert(dsp);
+ dsp->StepUp();
+ }
+
+private:
+ DispatchState *dsp;
+
+ // make these private, not needed
+
+ DispatchStateScopedStepDown(const DispatchStateScopedStepDown &other);
+ DispatchStateScopedStepDown &operator=(const DispatchStateScopedStepDown &other);
+};
+
+REGAL_NAMESPACE_END
+
+#endif // __REGAL_DISPATCH_STATE_H__
View
4 src/regal/RegalDllMain.cpp
@@ -21,8 +21,6 @@ REGAL_GLOBAL_END
REGAL_NAMESPACE_BEGIN
-extern void *RegalGetProcAddress(const char *entry);
-
REGAL_NAMESPACE_END
BOOL APIENTRY
@@ -36,7 +34,7 @@ DllMain
UNUSED_PARAMETER(module);
UNUSED_PARAMETER(reserved);
- switch (reason)
+ switch (reason)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
View
48 src/regal/RegalDsa.h
@@ -5,16 +5,16 @@
Copyright (c) 2012 Mathias Schott
Copyright (c) 2012 Nigel Stewart
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
-
+
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
@@ -143,12 +143,12 @@ struct RegalDsa : public RegalEmu {
dsa.matrixMode = GL_TEXTURE;
break;
}
- ctx->dsp.emuTbl.glMatrixMode( dsa.matrixMode );
+ ctx->dsp->emuTbl.glMatrixMode( dsa.matrixMode );
}
}
void RestoreMatrixMode( RegalContext * ctx ) {
if( dsa.matrixMode != REGAL_DSA_INVALID ) {
- ctx->dsp.emuTbl.glMatrixMode( drv.matrixMode );
+ ctx->dsp->emuTbl.glMatrixMode( drv.matrixMode );
RestoreActiveTexture( ctx );
dsa.matrixMode = REGAL_DSA_INVALID;
}
@@ -166,12 +166,12 @@ struct RegalDsa : public RegalEmu {
void DsaActiveTexture( RegalContext * ctx, GLenum tex) {
if( NotActiveTexture( tex ) ) {
dsa.activeTexture = tex;
- ctx->dsp.emuTbl.glActiveTexture( dsa.activeTexture );
+ ctx->dsp->emuTbl.glActiveTexture( dsa.activeTexture );
}
}
void RestoreActiveTexture( RegalContext * ctx ) {
if( dsa.activeTexture != REGAL_DSA_INVALID ) {
- ctx->dsp.emuTbl.glActiveTexture( drv.activeTexture );
+ ctx->dsp->emuTbl.glActiveTexture( drv.activeTexture );
dsa.activeTexture = REGAL_DSA_INVALID;
}
}
@@ -187,12 +187,12 @@ struct RegalDsa : public RegalEmu {
void DsaClientActiveTexture( RegalContext * ctx, GLenum tex ) {
if( NotClientActiveTexture( tex ) ) {
dsa.clientActiveTexture = tex;
- ctx->dsp.emuTbl.glClientActiveTexture( dsa.clientActiveTexture );
+ ctx->dsp->emuTbl.glClientActiveTexture( dsa.clientActiveTexture );
}
}
void RestoreClientActiveTexture( RegalContext * ctx ) {
if( dsa.clientActiveTexture != REGAL_DSA_INVALID ) {
- ctx->dsp.emuTbl.glClientActiveTexture( drv.clientActiveTexture );
+ ctx->dsp->emuTbl.glClientActiveTexture( drv.clientActiveTexture );
dsa.clientActiveTexture = REGAL_DSA_INVALID;
}
}
@@ -208,12 +208,12 @@ struct RegalDsa : public RegalEmu {
void DsaGlslProgram( RegalContext * ctx, GLuint program ) {
if( NotGlslProgram( program ) ) {
dsa.glslProgram = program;
- ctx->dsp.emuTbl.glUseProgram( dsa.glslProgram );
+ ctx->dsp->emuTbl.glUseProgram( dsa.glslProgram );
}
}
void RestoreGlslProgram( RegalContext * ctx ) {
if( dsa.glslProgram != REGAL_DSA_INVALID ) {
- ctx->dsp.emuTbl.glUseProgram( drv.glslProgram );
+ ctx->dsp->emuTbl.glUseProgram( drv.glslProgram );
dsa.glslProgram = REGAL_DSA_INVALID;
}
}
@@ -234,12 +234,12 @@ struct RegalDsa : public RegalEmu {
if( NotFramebuffer( target, framebuffer ) ) {
dsa.framebufferTarget = target;
dsa.framebuffer = framebuffer;
- ctx->dsp.emuTbl.glBindFramebuffer( dsa.framebufferTarget, dsa.framebuffer );
+ ctx->dsp->emuTbl.glBindFramebuffer( dsa.framebufferTarget, dsa.framebuffer );
}
}
void RestoreFramebuffer( RegalContext * ctx ) {
if( dsa.framebuffer != REGAL_DSA_INVALID ) {
- ctx->dsp.emuTbl.glBindFramebuffer( drv.framebufferTarget, drv.framebuffer );
+ ctx->dsp->emuTbl.glBindFramebuffer( drv.framebufferTarget, drv.framebuffer );
dsa.framebufferTarget = REGAL_DSA_INVALID;
dsa.framebuffer = REGAL_DSA_INVALID;
}
@@ -273,13 +273,13 @@ struct RegalDsa : public RegalEmu {
int idx = AsmTargetIndex( target );
if( NotAsmProgram( target, prog ) ) {
dsa.asmProgram[idx] = prog;
- ctx->dsp.emuTbl.glBindProgramARB( target, dsa.asmProgram[idx] );
+ ctx->dsp->emuTbl.glBindProgramARB( target, dsa.asmProgram[idx] );
}
}
void RestoreAsmProgram( RegalContext * ctx, GLenum target ) {
int idx = AsmTargetIndex( target );
if( dsa.asmProgram[idx] != REGAL_DSA_INVALID ) {
- ctx->dsp.emuTbl.glBindProgramARB( target, drv.asmProgram[idx] );
+ ctx->dsp->emuTbl.glBindProgramARB( target, drv.asmProgram[idx] );
dsa.asmProgram[idx] = REGAL_DSA_INVALID;
}
}
@@ -295,12 +295,12 @@ struct RegalDsa : public RegalEmu {
void DsaVao( RegalContext * ctx, GLuint vao ) {
if( NotVao( vao ) ) {
dsa.vao = vao;
- ctx->dsp.emuTbl.glBindVertexArray( dsa.vao );
+ ctx->dsp->emuTbl.glBindVertexArray( dsa.vao );
}
}
void RestoreVao( RegalContext * ctx ) {
if( dsa.vao != REGAL_DSA_INVALID ) {
- ctx->dsp.emuTbl.glBindVertexArray( drv.vao );
+ ctx->dsp->emuTbl.glBindVertexArray( drv.vao );
dsa.vao = REGAL_DSA_INVALID;
}
}
@@ -321,12 +321,12 @@ struct RegalDsa : public RegalEmu {
void DsaBuffer( RegalContext * ctx, GLuint buf ) {
if( NotBuffer( buf ) ) {
dsa.buffer = buf;
- ctx->dsp.emuTbl.glBindBuffer( GL_ARRAY_BUFFER, dsa.buffer );
+ ctx->dsp->emuTbl.glBindBuffer( GL_ARRAY_BUFFER, dsa.buffer );
}
}
void RestoreBuffer( RegalContext * ctx ) {
if( dsa.buffer != REGAL_DSA_INVALID ) {
- ctx->dsp.emuTbl.glBindBuffer( GL_ARRAY_BUFFER, drv.buffer );
+ ctx->dsp->emuTbl.glBindBuffer( GL_ARRAY_BUFFER, drv.buffer );
dsa.buffer = REGAL_DSA_INVALID;
}
}
@@ -357,13 +357,13 @@ struct RegalDsa : public RegalEmu {
dsa.textureTarget = target;
dsa.texture = texture;
DsaActiveTexture( ctx, GL_TEXTURE0 );
- ctx->dsp.emuTbl.glBindTexture( dsa.textureTarget, dsa.texture );
+ ctx->dsp->emuTbl.glBindTexture( dsa.textureTarget, dsa.texture );
}
}
void RestoreTexture( RegalContext * ctx ) {
if( dsa.texture != REGAL_DSA_INVALID ) {
DsaActiveTexture( ctx, GL_TEXTURE0 );
- ctx->dsp.emuTbl.glBindTexture( drv.textureTarget, drv.texture );
+ ctx->dsp->emuTbl.glBindTexture( drv.textureTarget, drv.texture );
dsa.textureTarget = REGAL_DSA_INVALID;
dsa.texture = REGAL_DSA_INVALID;
}
@@ -371,7 +371,7 @@ struct RegalDsa : public RegalEmu {
void ClientAttribDefault( RegalContext * ctx, GLbitfield mask ) {
- DispatchTable &tbl = ctx->dsp.emuTbl;
+ DispatchTable &tbl = ctx->dsp->emuTbl;
if( mask & GL_CLIENT_PIXEL_STORE_BIT ) {
tbl.glPixelStorei( GL_UNPACK_SWAP_BYTES, 0 );
tbl.glPixelStorei( GL_UNPACK_LSB_FIRST, 0 );
@@ -436,7 +436,7 @@ struct RegalDsa : public RegalEmu {
template< typename T >
bool GetIndexedv( RegalContext * ctx, GLenum pname, GLuint index, T * params ) {
- DispatchTable &tbl = ctx->dsp.emuTbl;
+ DispatchTable &tbl = ctx->dsp->emuTbl;
switch( pname ) {
case GL_PROGRAM_MATRIX_EXT:
ctx->dsa->DsaMatrixMode( ctx, GL_MATRIX0_ARB + index );
@@ -573,7 +573,7 @@ struct RegalDsa : public RegalEmu {
}
GLboolean IsEnabledIndexed( RegalContext * ctx, GLenum pname, GLuint index ) {
- DispatchTable &tbl = ctx->dsp.emuTbl;
+ DispatchTable &tbl = ctx->dsp->emuTbl;
switch( pname ) {
case GL_TEXTURE_1D:
case GL_TEXTURE_2D:
View
6 src/regal/RegalEmu.h
@@ -5,16 +5,16 @@
Copyright (c) 2012 Mathias Schott
Copyright (c) 2012 Nigel Stewart
All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
-
+
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
View
41,994 src/regal/RegalErrorDispatch.cpp
0 additions, 41,994 deletions not shown
View
2  src/regal/RegalHelper.cpp
@@ -84,7 +84,7 @@ fogv(GLenum pname)
case GL_FOG_COORD_SRC: return 1;
// GL_NV_fog_distance
-
+
case GL_FOG_DISTANCE_MODE_NV: return 1;
default: return 0;
View
4 src/regal/RegalHelper.h
@@ -58,8 +58,8 @@ namespace helper {
std::size_t namedString(const GLint, const GLchar *);
std::size_t namedStringParams(const GLenum);
}
-
- const GLchar **shaderSourceStrings(const GLsizei, const GLchar **, const GLint *);
+
+ const GLchar **shaderSourceStrings(const GLsizei, const GLchar **, const GLint *);
}
REGAL_NAMESPACE_END
View
28 src/regal/RegalIff.cpp
@@ -1301,7 +1301,7 @@ void State::SetClip( RegalIff * ffn, GLenum plane, const GLfloat * equation ) {
void Program::Init( RegalContext * ctx, const Store & sstore, const GLchar *vsSrc, const GLchar *fsSrc ) {
ver = 0;
progcount = 0;
- DispatchTable & tbl = ctx->dsp.emuTbl;
+ DispatchTable & tbl = ctx->dsp->emuTbl;
store = sstore;
pg = tbl.glCreateProgram();
Shader( tbl, GL_VERTEX_SHADER, vs, vsSrc );
@@ -1322,14 +1322,14 @@ void Program::Init( RegalContext * ctx, const Store & sstore, const GLchar *vsSr
void Program::Init( RegalContext * ctx, const Store & sstore ) {
ver = 0;
progcount = 0;
- DispatchTable & tbl = ctx->dsp.emuTbl;
+ DispatchTable & tbl = ctx->dsp->emuTbl;
store = sstore;