Merge branch 'master' into astron-master

This commit is contained in:
Sam Edwards 2015-05-02 12:46:26 -07:00
commit f102e7d60a
737 changed files with 7518 additions and 4187 deletions

View File

@ -29,8 +29,10 @@ need Microsoft Visual Studio to build Panda3D, though - the relevant compilers
are included as part of the Windows 7.1 SDK.
You will also need to have the third-party dependency libraries available for
the build scripts to use. These are available from here:
https://www.panda3d.org/forums/viewtopic.php?f=9&t=16346
the build scripts to use. These are available from one of these two URLs,
depending on whether you are on a 32-bit or 64-bit system:
https://www.panda3d.org/download/panda3d-1.9.0/panda3d-1.9.0-tools-win32.zip
https://www.panda3d.org/download/panda3d-1.9.0/panda3d-1.9.0-tools-win64.zip
After acquiring these dependencies, you may simply build Panda3D from the
command prompt using the following command:
@ -81,3 +83,25 @@ your system. Careful: it is not easy to uninstall Panda3D in this way!
```bash
python2.7 makepanda/installpanda.py --prefix=/usr/local
```
Mac OS X
--------
On Mac OS X, all you need to compile Panda3D is a set of precompiled
thirdparty packages, which can be acquired from here:
https://www.panda3d.org/download/panda3d-1.9.0/panda3d-1.9.0-tools-mac.tar.gz
After placing the thirdparty directory inside the panda3d source directory,
you may build Panda3D using a command like the following:
```bash
python makepanda/makepanda.py --everything --installer
```
In order to make a universal build, pass the --universal flag. You may also
target a specific minimum Mac OS X version using the --osxtarget flag followed
by the release number, eg. 10.6 or 10.7.
If the build was successful, makepanda will have generated a .dmg file in
the source directory containing the installer. Simply open it and run the
package file in order to install the SDK onto your system.

0
contrib/src/ai/Sources.pp Executable file → Normal file
View File

0
contrib/src/panda3dtoolsgui/build_exe.bat Normal file → Executable file
View File

0
direct/src/dcparser/dcPackData.I Executable file → Normal file
View File

0
direct/src/dcparser/dcPackData.cxx Executable file → Normal file
View File

0
direct/src/dcparser/dcPackData.h Executable file → Normal file
View File

0
direct/src/dcparser/dcPacker.I Executable file → Normal file
View File

0
direct/src/dcparser/dcPacker.cxx Executable file → Normal file
View File

0
direct/src/dcparser/dcPacker.h Executable file → Normal file
View File

0
direct/src/dcparser/dcPackerInterface.cxx Executable file → Normal file
View File

0
direct/src/dcparser/dcPackerInterface.h Executable file → Normal file
View File

0
direct/src/dcparser/dcPython.h Executable file → Normal file
View File

0
direct/src/dcparser/dcSwitchParameter.cxx Executable file → Normal file
View File

0
direct/src/dcparser/dcSwitchParameter.h Executable file → Normal file
View File

0
direct/src/dcparser/dcmsgtypes.h Executable file → Normal file
View File

0
direct/src/directbase/ppython.cxx Executable file → Normal file
View File

View File

@ -203,6 +203,11 @@ def processType(handle, type):
if docstring:
print >>handle, docstring
print >>handle, interrogate_type_enum_value_name(type, i_value), "=", interrogate_type_enum_value(type, i_value), ","
elif interrogate_type_is_typedef(type):
wrapped_type = translated_type_name(interrogate_type_wrapped_type(type))
print >>handle, "typedef %s %s;" % (wrapped_type, typename)
return
else:
if interrogate_type_is_struct(type):
classtype = "struct"
@ -211,7 +216,7 @@ def processType(handle, type):
elif interrogate_type_is_union(type):
classtype = "union"
else:
print "I don't know what type %s is" % typename
print "I don't know what type %s is" % interrogate_type_true_name(type)
return
if len(derivations) > 0:

0
direct/src/doc/dcPacker.txt Executable file → Normal file
View File

0
direct/src/doc/howto.PythonRedefine Executable file → Normal file
View File

View File

@ -107,14 +107,13 @@ def Dtool_PreloadDLL(module):
# Dtool_FindModule to find our panda3d.core module. However, we
# should be able to import it. To differentiate the old-style Panda
# build (with .dll's) from the new-style Panda build (with .pyd's), we
# first try to import libpandaexpress directly; if it succeeds we're
# in an old-style build, and if it fails we must be in a new-style
# build.
# first try to import panda3d.core directly; if it succeeds we're in a
# new-style build, and if it fails we must be in an old-style build.
try:
from panda3d.core import *
except ImportError:
Dtool_PreloadDLL("libpandaexpress")
from libpandaexpress import *
except ImportError:
from panda3d.core import *
def Dtool_ObjectToDict(cls, name, obj):
cls.DtoolClassDict[name] = obj;

0
direct/src/http/favicon.ico Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1119,14 +1119,19 @@ class Packager:
# Skip this file.
continue
origFilename = Filename(file.filename)
tempFile = Filename.temporary('', 'p3d_', '.txt')
command = '/usr/bin/otool -arch all -L "%s" >"%s"' % (
file.filename.toOsSpecific(),
origFilename.toOsSpecific(),
tempFile.toOsSpecific())
if self.arch:
arch = self.arch
if arch == "amd64":
arch = "x86_64"
command = '/usr/bin/otool -arch %s -L "%s" >"%s"' % (
self.arch,
file.filename.toOsSpecific(),
arch,
origFilename.toOsSpecific(),
tempFile.toOsSpecific())
exitStatus = os.system(command)
if exitStatus != 0:
@ -1137,13 +1142,13 @@ class Packager:
filenames = self.__parseDependenciesOSX(tempFile)
tempFile.unlink()
if filenames is None:
self.notify.warning("Unable to determine dependencies from %s" % (file.filename))
self.notify.warning("Unable to determine dependencies from %s" % (origFilename))
continue
# Attempt to resolve the dependent filename relative
# to the original filename, before we resolve it along
# the PATH.
path = DSearchPath(Filename(file.filename.getDirname()))
path = DSearchPath(Filename(origFilename.getDirname()))
# Find the dependencies that are referencing a framework
framework_deps = []
@ -1156,7 +1161,10 @@ class Packager:
self.__alterFrameworkDependencies(file, framework_deps)
for filename in filenames:
if '.framework/' in filename:
if '@loader_path' in filename:
filename = filename.replace('@loader_path', origFilename.getDirname())
if False and '.framework/' in filename:
# It references a framework, and besides the fact
# that those often contain absolute paths, they
# aren't commonly on the library path either.
@ -2082,6 +2090,10 @@ class Packager:
# particular architecture, use lipo to strip out the
# part of the file for that architecture.
arch = self.arch
if arch == "amd64":
arch = "x86_64"
# First, we need to verify that it is in fact a
# universal binary.
tfile = Filename.temporary('', 'p3d_')
@ -2107,25 +2119,24 @@ class Packager:
arches = lipoData.rsplit(':', 1)[1]
arches = arches.split()
if arches == [self.arch]:
if arches == [arch]:
# The file only contains the one architecture that
# we want anyway.
file.filename.setBinary()
self.multifile.addSubfile(file.newName, file.filename, compressionLevel)
return True
if self.arch not in arches:
if arch not in arches:
# The file doesn't support the architecture that we
# want at all. Omit the file.
self.notify.warning("%s doesn't support architecture %s" % (
file.filename, self.arch))
return False
# The file contains multiple architectures. Get
# out just the one we want.
command = '/usr/bin/lipo -thin %s -output "%s" "%s"' % (
self.arch, tfile.toOsSpecific(),
arch, tfile.toOsSpecific(),
file.filename.toOsSpecific())
exitStatus = os.system(command)
if exitStatus != 0:
@ -2389,7 +2400,8 @@ class Packager:
'shell32.dll', 'ntdll.dll', 'ws2help.dll', 'rpcrt4.dll',
'imm32.dll', 'ddraw.dll', 'shlwapi.dll', 'secur32.dll',
'dciman32.dll', 'comdlg32.dll', 'comctl32.dll', 'ole32.dll',
'oleaut32.dll', 'gdiplus.dll', 'winmm.dll',
'oleaut32.dll', 'gdiplus.dll', 'winmm.dll', 'iphlpapi.dll',
'msvcrt.dll', 'kernelbase.dll', 'msimg32.dll', 'msacm32.dll',
'libsystem.b.dylib', 'libmathcommon.a.dylib', 'libmx.a.dylib',
'libstdc++.6.dylib', 'libobjc.a.dylib', 'libauto.dylib',
@ -2399,6 +2411,7 @@ class Packager:
# filenames.
self.excludeSystemGlobs = [
GlobPattern('d3dx9_*.dll'),
GlobPattern('api-ms-win-*.dll'),
GlobPattern('libGL.so*'),
GlobPattern('libGLU.so*'),

0
direct/src/p3d/panda3d.pdef Executable file → Normal file
View File

View File

@ -319,7 +319,7 @@ elif deploy_mode == 'installer':
del i
elif deploy_mode == 'html':
w, h = tokens.get("width", 640), tokens.get("height", 480)
w, h = tokens.get("width", 800), tokens.get("height", 600)
if "data" not in tokens:
tokens["data"] = appFilename.getBasename()

View File

@ -90,7 +90,7 @@ Options:
each supported architecture). On other platforms, this option
does nothing. This is therefore safe to apply in all cases, if
you wish to take advantage of universal binaries. This is
equivalent to "-P osx_ppc -P osx_i386" on Mac platforms.
equivalent to "-P osx_i386 -P osx_amd64" on Mac platforms.
-P platform
Specify the platform to masquerade as. The default is whatever
@ -215,8 +215,7 @@ if universalBinaries:
print '\nYou may not specify both -u and -P.\n'
sys.exit(1)
if PandaSystem.getPlatform().startswith('osx_'):
# Maybe soon we'll add osx_x86_64 to this default list.
platforms = ['osx_i386', 'osx_ppc']
platforms = ['osx_i386', 'osx_amd64']
if not platforms:
platforms = [PandaSystem.getPlatform()]

0
direct/src/plugin/fileSpec.I Executable file → Normal file
View File

0
direct/src/plugin/fileSpec.cxx Executable file → Normal file
View File

0
direct/src/plugin/fileSpec.h Executable file → Normal file
View File

0
direct/src/plugin/find_root_dir.cxx Executable file → Normal file
View File

0
direct/src/plugin/find_root_dir.h Executable file → Normal file
View File

0
direct/src/plugin/get_tinyxml.h Executable file → Normal file
View File

0
direct/src/plugin/get_twirl_data.cxx Executable file → Normal file
View File

0
direct/src/plugin/get_twirl_data.h Executable file → Normal file
View File

0
direct/src/plugin/handleStreamBuf.I Executable file → Normal file
View File

0
direct/src/plugin/load_plugin.cxx Executable file → Normal file
View File

0
direct/src/plugin/load_plugin.h Executable file → Normal file
View File

0
direct/src/plugin/mkdir_complete.cxx Executable file → Normal file
View File

0
direct/src/plugin/mkdir_complete.h Executable file → Normal file
View File

0
direct/src/plugin/p3dCInstance.I Executable file → Normal file
View File

0
direct/src/plugin/p3dCInstance.cxx Executable file → Normal file
View File

0
direct/src/plugin/p3dCInstance.h Executable file → Normal file
View File

View File

@ -157,6 +157,10 @@ AuthDialog(const string &cert_filename, const string &cert_dir) :
_stack = NULL;
_verify_result = -1;
// Center the window on the screen.
position((Fl::w() - w()) / 2, (Fl::h() - h()) / 2);
set_modal();
read_cert_file(cert_filename);
get_friendly_name();
verify_cert();
@ -583,6 +587,10 @@ ViewCertDialog(AuthDialog *auth_dialog, X509 *cert) :
_auth_dialog(auth_dialog),
_cert(cert)
{
// Center the window on the screen.
position((Fl::w() - w()) / 2, (Fl::h() - h()) / 2);
set_modal();
layout();
}

0
direct/src/plugin/p3dDownload.I Executable file → Normal file
View File

0
direct/src/plugin/p3dDownload.cxx Executable file → Normal file
View File

0
direct/src/plugin/p3dDownload.h Executable file → Normal file
View File

0
direct/src/plugin/p3dFileDownload.I Executable file → Normal file
View File

0
direct/src/plugin/p3dFileDownload.cxx Executable file → Normal file
View File

0
direct/src/plugin/p3dFileDownload.h Executable file → Normal file
View File

View File

@ -45,6 +45,10 @@
#include <dirent.h>
#endif
#ifdef __APPLE__
#include <sys/sysctl.h>
#endif
#include <stdio.h>
static ofstream logfile;
@ -230,9 +234,29 @@ initialize(int api_version, const string &contents_filename,
_supported_platforms.push_back("win_i386");
_supported_platforms.push_back("win32");
}
#elif defined(__APPLE__)
if (_platform == "osx_amd64") {
_supported_platforms.push_back("osx_amd64");
_supported_platforms.push_back("osx_i386");
} else if (_platform == "osx_i386") {
// This is a 32-bit process, but determine if the underlying OS
// supports 64-bit.
int mib[2] = { CTL_HW, HW_MACHINE };
char machine[512];
size_t len = 511;
if (sysctl(mib, 2, (void *)machine, &len, NULL, 0) == 0) {
if (strcmp(machine, "x86_64") == 0) {
_supported_platforms.push_back("osx_amd64");
}
}
_supported_platforms.push_back("osx_i386");
}
#endif // _WIN32
// TODO: OSX, Linux multiplatform support. Just add the
// TODO: Linux multiplatform support. Just add the
// appropriate platform strings to _supported_platforms.
}

0
direct/src/plugin/p3dPackage.I Executable file → Normal file
View File

0
direct/src/plugin/p3dPackage.cxx Executable file → Normal file
View File

0
direct/src/plugin/p3dPackage.h Executable file → Normal file
View File

0
direct/src/plugin/p3dPythonRun.I Executable file → Normal file
View File

0
direct/src/plugin/p3dPythonRun.cxx Executable file → Normal file
View File

0
direct/src/plugin/p3dPythonRun.h Executable file → Normal file
View File

0
direct/src/plugin/p3dSplashWindow.I Executable file → Normal file
View File

0
direct/src/plugin/p3dSplashWindow.cxx Executable file → Normal file
View File

0
direct/src/plugin/p3dSplashWindow.h Executable file → Normal file
View File

0
direct/src/plugin/p3dWinSplashWindow.I Executable file → Normal file
View File

0
direct/src/plugin/p3dWinSplashWindow.cxx Executable file → Normal file
View File

0
direct/src/plugin/p3dWinSplashWindow.h Executable file → Normal file
View File

0
direct/src/plugin/p3dX11SplashWindow.cxx Executable file → Normal file
View File

0
direct/src/plugin/p3dX11SplashWindow.h Executable file → Normal file
View File

0
direct/src/plugin/p3d_lock.h Executable file → Normal file
View File

0
direct/src/plugin/twirl.xcf Executable file → Normal file
View File

0
direct/src/plugin/wstring_encode.cxx Executable file → Normal file
View File

0
direct/src/plugin/wstring_encode.h Executable file → Normal file
View File

0
direct/src/plugin/xml_helpers.cxx Executable file → Normal file
View File

0
direct/src/plugin/xml_helpers.h Executable file → Normal file
View File

0
direct/src/plugin_activex/P3DActiveX.rc.pp Executable file → Normal file
View File

0
direct/src/plugin_activex/Sources.pp Executable file → Normal file
View File

0
direct/src/plugin_activex/p3dactivex_composite1.cxx Executable file → Normal file
View File

View File

@ -461,7 +461,10 @@ def makeInstaller():
infoFilename = None
descriptionFilename = None
packagemaker = "/Developer/usr/bin/packagemaker"
packagemaker = "/Applications/Xcode.app/Contents/Applications/PackageMaker.app/Contents/MacOS/PackageMaker"
if not os.path.exists(packagemaker):
packagemaker = "/Developer/usr/bin/packagemaker"
if os.path.exists(packagemaker):
# PackageMaker 3.0 or better, e.g. OSX 10.5.
CMD = packagemaker
@ -469,7 +472,7 @@ def makeInstaller():
CMD += ' --version "%s"' % options.version
CMD += ' --title "%s"' % options.long_name
CMD += ' --out "%s"' % (pkgname)
CMD += ' --target 10.4' # The earliest version of OSX supported by Panda
CMD += ' --target 10.5' # The earliest version of OSX supported by Panda
CMD += ' --domain system'
CMD += ' --root "%s"' % tmproot
CMD += ' --resources "%s"' % tmpresdir
@ -520,7 +523,11 @@ def makeInstaller():
# Pack the .pkg into a .dmg
if not os.path.exists(tmproot): os.makedirs(tmproot)
shutil.copytree(pkgname, os.path.join(tmproot, pkgname))
if os.path.isdir(pkgname):
shutil.copytree(pkgname, os.path.join(tmproot, pkgname))
else:
shutil.copyfile(pkgname, os.path.join(tmproot, pkgname))
tmpdmg = tempfile.mktemp('', 'p3d-setup') + ".dmg"
CMD = 'hdiutil create "%s" -srcfolder "%s"' % (tmpdmg, tmproot)
print ""

View File

@ -233,7 +233,7 @@ NP_GetEntryPoints(NPPluginFuncs *pluginFuncs) {
if (pluginFuncs->size == 0) {
pluginFuncs->size = sizeof(*pluginFuncs);
}
if (pluginFuncs->size < sizeof(*pluginFuncs)) {
if (pluginFuncs->size < offsetof(NPPluginFuncs, gotfocus)) {
nout << "Invalid NPPPluginFuncs size\n";
return NPERR_INVALID_FUNCTABLE_ERROR;
}

0
direct/src/plugin_standalone/p3dEmbed.h Executable file → Normal file
View File

0
direct/src/plugin_standalone/panda3d.I Executable file → Normal file
View File

View File

@ -226,8 +226,8 @@ run_command_line(int argc, char *argv[]) {
// The user asked for an embedded window. Create a toplevel
// window to be its parent, of the requested size.
if (_win_width == 0 && _win_height == 0) {
_win_width = 640;
_win_height = 480;
_win_width = 800;
_win_height = 600;
}
make_parent_window();

0
direct/src/plugin_standalone/panda3d.h Executable file → Normal file
View File

0
direct/src/plugin_standalone/panda3d.ico Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

0
direct/src/plugin_standalone/panda3dBase.I Executable file → Normal file
View File

View File

@ -62,8 +62,8 @@ Panda3DBase(bool console_environment) {
_win_x = -1;
_win_y = -1;
_win_width = 640;
_win_height = 480;
_win_width = 800;
_win_height = 600;
_got_win_size = false;
_exit_with_last_instance = true;

0
direct/src/plugin_standalone/panda3dBase.h Executable file → Normal file
View File

View File

@ -1429,11 +1429,12 @@ dtoolSuperBase = None
def _getDtoolSuperBase():
global dtoolSuperBase
from panda3d.core import PandaNode
dtoolSuperBase = PandaNode('').__class__.__bases__[0].__bases__[0].__bases__[0]
from panda3d.core import TypedObject
dtoolSuperBase = TypedObject.__bases__[0]
assert repr(dtoolSuperBase) == "<type 'libdtoolconfig.DTOOL_SUPER_BASE111'>" \
or repr(dtoolSuperBase) == "<type 'libdtoolconfig.DTOOL_SUPPER_BASE111'>" \
or repr(dtoolSuperBase) == "<type 'dtoolconfig.DTOOL_SUPER_BASE111'>"
or repr(dtoolSuperBase) == "<type 'dtoolconfig.DTOOL_SUPER_BASE111'>" \
or repr(dtoolSuperBase) == "<type 'dtoolconfig.DTOOL_SUPER_BASE'>"
safeReprNotify = None

View File

@ -143,8 +143,8 @@ class CompilationEnvironment:
self.arch = '-arch i386'
elif proc == 'ppc':
self.arch = '-arch ppc'
elif proc == 'x86_64':
self.arch = '-arch x86_x64'
elif proc == 'amd64':
self.arch = '-arch x86_64'
self.compileObj = "gcc -fPIC -c %(arch)s -o %(basename)s.o -O2 -I%(pythonIPath)s %(filename)s"
self.linkExe = "gcc %(arch)s -o %(basename)s %(basename)s.o -framework Python"
self.linkDll = "gcc %(arch)s -undefined dynamic_lookup -bundle -o %(basename)s.so %(basename)s.o"

View File

@ -1,3 +1,114 @@
------------------------ RELEASE 1.9.0 ------------------------
This is a major release with many exciting new features!
Beware of bugs.
The list below contains a subset of the changes introduced:
* We now offer 64-bit Windows and Mac OS X builds.
* Switch to MSVC 2010; no more assembly manifests.
* Cocoa port for better Mac OS X support, esp. newer versions.
* We now compile the Python modules into panda3d/*.pyd modules;
no more imp.load_dynamic hackery needed.
* Support for GPU profiling in OpenGL, see pstats-gpu-timing
* sRGB framebuffers, see framebuffer-srgb
* sRGB texture support, see Texture::F_srgb et al.
* Integer vector support, including passing to shaders
* Native .ogg vorbis and .wav loader (does not require ffmpeg)
* FFmpeg support is a separate plug-in module now, libp3ffmpeg.
* Sample programs are now part of the source code repository
* Can be built with Python 3 (highly experimental)
* Improvements to Windows installer
* M_filled_wireframe rendering mode
* Support specifying sampler state separate from textures
* Support for bindless texture clearing
* Texture LOD bias and min/max LOD settings
* Framebuffer properties allows separate red/green/blue bits
* Explicit float color and float depth specification in fbprops
* Coverage samples settable via FrameBufferProperties
* Stereo buffer implementation in OpenGL via FBOs
* Support enumeration of pixel formats in WebcamVideo
* Frame rate meter can be configured to show milliseconds
* Changes to improve font crispness with default settings
* Fix assertion error when using more than one GraphicsEngine
* raw-w, raw-a, etc. keyboard events for layout-independent input
* Allow querying active keyboard layout via win.get_keyboard_map()
* Distinguish between lmeta and rmeta keys on Mac OS X
* Floating-point image manipulation API, support float tiffs
* Various new 16-bit and 32-bit and int texture formats
* Man pages are now available for the majority of utilities
Pipeline:
* Fix bugs with <Collide> group transformations in .egg
* Don't create unnecessary intermediate node when loading .egg
* bam2egg supports materials, and correctly converts animations
* dae2egg has some skeletal animation support
* Support Maya versions up to 2015
OpenGL renderer changes:
* Error checking is now OFF by default for performance reasons,
set gl-check-errors or gl-debug to true to enable.
* GL 4.2 shader_image_load_store support (incl. multi-bind)
* Layered render-to-texture (using geometry shaders)
* Seamless cube maps (on by default), see gl-cube-map-seamless
* Added gl-debug for improved debug output support
* Added GL object labels when gl-debug is enabled
* gl-dump-compiled-shaders can be used to dump program binaries
* Direct3D-style NT_packed_dabc vertex arrays now directly supported
* Native rendering of line strips, using primitive restart
* Immutable texture storage support (disabled by default)
* Bindless texture support (disabled by default)
* Specular component is now computed separately in FFP
Shader system:
* Support for tessellation shaders
* Support for compute shaders via ComputeNode
* GLSL preprocessor with "#pragma include" support
* Much better coverage of shader inputs in GLSL
* GLSL error messages now show source filename
* Fixes apiclip_of_x shader inputs
* Matrices can be passed directly to setShaderInput
* Support binding images to shaders
* Viewport array support
Optimizations and performance improvements:
* Use of C++11 move semantics to reduce refcounting overhead
* Build with Eigen by default for faster linear math
* Dramatic overhead reduction of generated bindings
* Streamline culling process
* Tighter bounding volume generation
* Take advantage of CPU features for bit operations
* Circumvent bounding volume generation when not required
* Optimizations for interned strings
* Use of GCC atomics should improve 64-bit Linux performance
API features:
* Buffer protocol support for textures and arrays
* Interrogate supports various C++11 features
* Expose TextGlyph interfaces for making custom text renderers
* Better handling of default arguments for many functions
* Cyclic references can sometimes be tracked through tasks
* ShowBase clean teardown possible
* API documentation is more accurate
* Improve interfaces for interop with other applications
Deprecated features:
* Use of pandac.PandaModules is discouraged; use panda3d.core
* Deprecate DirectStart and global run() function; use ShowBase
* Remove old decal system
* Remove Direct3D 8 renderer
* Remove M_light_vector tex gen mode and FFP-based bump mapping
Bug fixes:
* Various point rendering issues are fixed now
* Fix pview issue with 1-frame and/or multiple animations
* Fixes for multisampling in FBOs
* Fix aspect ratio of frame rate meter
* Support NaN and infinity values in Config.prc variables
* Fixes for webcams on Linux that do not output Huffman tables
* Better support for non-basic Cg shaders on non-NVIDIA cards
* Many others
------------------------ RELEASE 1.8.1 ------------------------
This is a bugfix release, fixing many issues in 1.8.0.

0
dtool/Config.Cygwin64.pp Executable file → Normal file
View File

0
dtool/Config.Win64.pp Executable file → Normal file
View File

View File

@ -44,5 +44,4 @@
// integers, but by convention it will consist of four integers, with
// the first three matching the plugin version, and the fourth integer
// being incremented with each new Core API revision.
#define P3D_COREAPI_VERSION $[P3D_PLUGIN_VERSION] 1
#define P3D_COREAPI_VERSION $[P3D_PLUGIN_VERSION] 2

File diff suppressed because it is too large Load Diff

0
dtool/pptempl/PythonPackageInit.pp Executable file → Normal file
View File

View File

@ -26,6 +26,7 @@
#include "cppFunctionGroup.h"
#include "cppFunctionType.h"
#include "cppBison.h"
#include "pdtoa.h"
#include <assert.h>
@ -1079,7 +1080,13 @@ output(ostream &out, int indent_level, CPPScope *scope, bool) const {
break;
case T_real:
out << _u._real;
{
// We use our own dtoa implementation here because it guarantees
// to never format the number as an integer.
char buffer[32];
pdtoa(_u._real, buffer);
out << buffer;
}
break;
case T_string:
@ -1155,14 +1162,15 @@ output(ostream &out, int indent_level, CPPScope *scope, bool) const {
break;
case T_construct:
out << "(" << _u._typecast._to->get_typedef_name(scope)
<< "(";
_u._typecast._to->output(out, indent_level, scope, false);
out << "(";
_u._typecast._op1->output(out, indent_level, scope, false);
out << "))";
out << ")";
break;
case T_default_construct:
out << "(" << _u._typecast._to->get_typedef_name(scope) << "())";
_u._typecast._to->output(out, indent_level, scope, false);
out << "()";
break;
case T_new:

View File

@ -558,7 +558,7 @@ output(ostream &out, int indent_level, CPPScope *scope, bool complete,
out << " = 0";
}
if (_initializer != NULL) {
out << " = (" << *_initializer << ")";
out << " = " << *_initializer;
}
}

View File

@ -204,6 +204,19 @@ CPPDeclaration *CPPTypedefType::
substitute_decl(CPPDeclaration::SubstDecl &subst,
CPPScope *current_scope, CPPScope *global_scope) {
if (_ident != NULL && _ident->get_scope(current_scope, global_scope) == global_scope) {
// Hack... I know that size_t etc is supposed to work fine, so
// preserve these top-level typedefs.
CPPDeclaration *top =
CPPType::substitute_decl(subst, current_scope, global_scope);
if (top != this) {
return top;
}
top = new CPPTypedefType(*this);
subst.insert(SubstDecl::value_type(this, top));
return top;
}
return _type->substitute_decl(subst, current_scope, global_scope);
// Bah, this doesn't seem to work, and I can't figure out why.

0
dtool/src/dtoolbase/addHash.I Executable file → Normal file
View File

0
dtool/src/dtoolbase/addHash.cxx Executable file → Normal file
View File

0
dtool/src/dtoolbase/addHash.h Executable file → Normal file
View File

View File

@ -31,7 +31,7 @@ struct AtomicAdjust {
#include "atomicAdjustDummyImpl.h"
typedef AtomicAdjustDummyImpl AtomicAdjust;
#elif defined(__i386__) || defined(_M_IX86)
#elif (defined(__i386__) || defined(_M_IX86)) && !defined(__APPLE__)
// For an i386 architecture, we'll always use the i386 implementation.
// It should be safe for any OS, and it might be a bit faster than
// any OS-provided calls.

View File

@ -26,7 +26,7 @@
////////////////////////////////////////////////////////////////////
class EXPCL_DTOOL AtomicAdjustGccImpl {
public:
#if __GCC_ATOMIC_LONG_LOCK_FREE > __GCC_ATOMIC_INT_LOCK_FREE
#if __GCC_ATOMIC_LONG_LOCK_FREE >= __GCC_ATOMIC_INT_LOCK_FREE
// If the long can be more lock-free than int, use it instead.
typedef __attribute__ ((aligned (__SIZEOF_LONG__))) long Integer;
#else

View File

@ -12,10 +12,4 @@
//
////////////////////////////////////////////////////////////////////
#include "selectThreadImpl.h"
#ifdef __i386__
#include "atomicAdjustI386Impl.h"
#endif // __i386__

View File

@ -18,7 +18,7 @@
#include "dtoolbase.h"
#include "selectThreadImpl.h"
#if defined(__i386__) || defined(_M_IX86)
#if (defined(__i386__) || defined(_M_IX86)) && !defined(__APPLE__)
#include "numeric_types.h"

Some files were not shown because too many files have changed in this diff Show More