Merge branch 'master' into cmake

This commit is contained in:
Sam Edwards 2018-05-14 19:09:14 -06:00
commit 6efb07de93
114 changed files with 554 additions and 296 deletions

View File

@ -10,7 +10,7 @@ __all__ = ['indent',
'bound', 'clamp', 'lerp', 'average', 'addListsByValue',
'boolEqual', 'lineupPos', 'formatElapsedSeconds', 'solveQuadratic',
'findPythonModule', 'mostDerivedLast',
'weightedChoice', 'randFloat', 'normalDistrib',
'clampScalar', 'weightedChoice', 'randFloat', 'normalDistrib',
'weightedRand', 'randUint31', 'randInt32',
'SerialNumGen', 'serialNum', 'uniqueName', 'Enum', 'Singleton',
'SingletonError', 'printListEnum', 'safeRepr',
@ -178,27 +178,6 @@ class Queue:
def __len__(self):
return len(self.__list)
if __debug__ and __name__ == '__main__':
q = Queue()
assert q.isEmpty()
q.clear()
assert q.isEmpty()
q.push(10)
assert not q.isEmpty()
q.push(20)
assert not q.isEmpty()
assert len(q) == 2
assert q.front() == 10
assert q.back() == 20
assert q.top() == 10
assert q.top() == 10
assert q.pop() == 10
assert len(q) == 1
assert not q.isEmpty()
assert q.pop() == 20
assert len(q) == 0
assert q.isEmpty()
def indent(stream, numIndents, str):
"""
@ -1130,6 +1109,23 @@ def findPythonModule(module):
return None
def clampScalar(value, a, b):
# calling this ought to be faster than calling both min and max
if a < b:
if value < a:
return a
elif value > b:
return b
else:
return value
else:
if value < b:
return b
elif value > a:
return a
else:
return value
def weightedChoice(choiceList, rng=random.random, sum=None):
"""given a list of (weight, item) pairs, chooses an item based on the
weights. rng must return 0..1. if you happen to have the sum of the
@ -2313,36 +2309,6 @@ def flywheel(*args, **kArgs):
pass
return flywheel
if __debug__ and __name__ == '__main__':
f = flywheel(['a','b','c','d'], countList=[11,20,3,4])
obj2count = {}
for obj in f:
obj2count.setdefault(obj, 0)
obj2count[obj] += 1
assert obj2count['a'] == 11
assert obj2count['b'] == 20
assert obj2count['c'] == 3
assert obj2count['d'] == 4
f = flywheel([1,2,3,4], countFunc=lambda x: x*2)
obj2count = {}
for obj in f:
obj2count.setdefault(obj, 0)
obj2count[obj] += 1
assert obj2count[1] == 2
assert obj2count[2] == 4
assert obj2count[3] == 6
assert obj2count[4] == 8
f = flywheel([1,2,3,4], countFunc=lambda x: x, scale = 3)
obj2count = {}
for obj in f:
obj2count.setdefault(obj, 0)
obj2count[obj] += 1
assert obj2count[1] == 1 * 3
assert obj2count[2] == 2 * 3
assert obj2count[3] == 3 * 3
assert obj2count[4] == 4 * 3
if __debug__:
def quickProfile(name="unnamed"):
@ -2687,11 +2653,36 @@ def unescapeHtmlString(s):
result += char
return result
if __debug__ and __name__ == '__main__':
assert unescapeHtmlString('asdf') == 'asdf'
assert unescapeHtmlString('as+df') == 'as df'
assert unescapeHtmlString('as%32df') == 'as2df'
assert unescapeHtmlString('asdf%32') == 'asdf2'
class PriorityCallbacks:
""" manage a set of prioritized callbacks, and allow them to be invoked in order of priority """
def __init__(self):
self._callbacks = []
def clear(self):
del self._callbacks[:]
def add(self, callback, priority=None):
if priority is None:
priority = 0
callbacks = self._callbacks
lo = 0
hi = len(callbacks)
while lo < hi:
mid = (lo + hi) // 2
if priority < callbacks[mid][0]:
hi = mid
else:
lo = mid + 1
item = (priority, callback)
callbacks.insert(lo, item)
return item
def remove(self, item):
self._callbacks.remove(item)
def __call__(self):
for priority, callback in self._callbacks:
callback()
builtins.Functor = Functor
builtins.Stack = Stack

View File

@ -2672,15 +2672,18 @@ class ShowBase(DirectObject.DirectObject):
output file name (e.g. if sd = 4, movie_0001.png)
- source is the Window, Buffer, DisplayRegion, or Texture from which
to save the resulting images. The default is the main window.
The task is returned, so that it can be awaited.
"""
globalClock.setMode(ClockObject.MNonRealTime)
globalClock.setDt(1.0/float(fps))
t = taskMgr.add(self._movieTask, namePrefix + '_task')
t = self.taskMgr.add(self._movieTask, namePrefix + '_task')
t.frameIndex = 0 # Frame 0 is not captured.
t.numFrames = int(duration * fps)
t.source = source
t.outputString = namePrefix + '_%0' + repr(sd) + 'd.' + format
t.setUponDeath(lambda state: globalClock.setMode(ClockObject.MNormal))
return t
def _movieTask(self, state):
if state.frameIndex != 0:

View File

@ -23,7 +23,9 @@ class Transitions:
scale=3.0,
pos=Vec3(0, 0, 0)):
self.transitionIval = None
self.__transitionFuture = None
self.letterboxIval = None
self.__letterboxFuture = None
self.iris = None
self.fade = None
self.letterbox = None
@ -94,7 +96,9 @@ class Transitions:
"""
#self.noTransitions() masad: this creates a one frame pop, is it necessary?
self.loadFade()
transitionIval = Sequence(Func(self.fade.reparentTo, aspect2d, DGG.FADE_SORT_INDEX),
parent = aspect2d if self.fadeModel else render2d
transitionIval = Sequence(Func(self.fade.reparentTo, parent, DGG.FADE_SORT_INDEX),
Func(self.fade.showThrough), # in case aspect2d is hidden for some reason
self.lerpFunc(self.fade, t,
self.alphaOff,
@ -115,7 +119,8 @@ class Transitions:
self.noTransitions()
self.loadFade()
transitionIval = Sequence(Func(self.fade.reparentTo,aspect2d,DGG.FADE_SORT_INDEX),
parent = aspect2d if self.fadeModel else render2d
transitionIval = Sequence(Func(self.fade.reparentTo, parent, DGG.FADE_SORT_INDEX),
Func(self.fade.showThrough), # in case aspect2d is hidden for some reason
self.lerpFunc(self.fade, t,
self.alphaOn,
@ -148,11 +153,17 @@ class Transitions:
self.noTransitions()
self.loadFade()
self.fade.detachNode()
fut = AsyncFuture()
fut.setResult(None)
return fut
else:
# Create a sequence that lerps the color out, then
# parents the fade to hidden
self.transitionIval = self.getFadeInIval(t, finishIval)
self.transitionIval.append(Func(self.__finishTransition))
self.__transitionFuture = AsyncFuture()
self.transitionIval.start()
return self.__transitionFuture
def fadeOut(self, t=0.5, finishIval=None):
"""
@ -167,7 +178,9 @@ class Transitions:
# Fade out immediately with no lerp
self.noTransitions()
self.loadFade()
self.fade.reparentTo(aspect2d, DGG.FADE_SORT_INDEX)
parent = aspect2d if self.fadeModel else render2d
self.fade.reparentTo(parent, DGG.FADE_SORT_INDEX)
self.fade.setColor(self.alphaOn)
elif ConfigVariableBool('no-loading-screen', False):
if finishIval:
@ -176,8 +189,16 @@ class Transitions:
else:
# Create a sequence that lerps the color out, then
# parents the fade to hidden
self.transitionIval = self.getFadeOutIval(t,finishIval)
self.transitionIval = self.getFadeOutIval(t, finishIval)
self.transitionIval.append(Func(self.__finishTransition))
self.__transitionFuture = AsyncFuture()
self.transitionIval.start()
return self.__transitionFuture
# Immediately done, so return a dummy future.
fut = AsyncFuture()
fut.setResult(None)
return fut
def fadeOutActive(self):
return self.fade and self.fade.getColor()[3] > 0
@ -191,7 +212,9 @@ class Transitions:
#print "transitiosn: fadeScreen"
self.noTransitions()
self.loadFade()
self.fade.reparentTo(aspect2d, DGG.FADE_SORT_INDEX)
parent = aspect2d if self.fadeModel else render2d
self.fade.reparentTo(parent, DGG.FADE_SORT_INDEX)
self.fade.setColor(self.alphaOn[0],
self.alphaOn[1],
self.alphaOn[2],
@ -206,7 +229,9 @@ class Transitions:
#print "transitiosn: fadeScreenColor"
self.noTransitions()
self.loadFade()
self.fade.reparentTo(aspect2d, DGG.FADE_SORT_INDEX)
parent = aspect2d if self.fadeModel else render2d
self.fade.reparentTo(parent, DGG.FADE_SORT_INDEX)
self.fade.setColor(color)
def noFade(self):
@ -217,6 +242,9 @@ class Transitions:
if self.transitionIval:
self.transitionIval.pause()
self.transitionIval = None
if self.__transitionFuture:
self.__transitionFuture.cancel()
self.__transitionFuture = None
if self.fade:
# Make sure to reset the color, since fadeOutActive() is looking at it
self.fade.setColor(self.alphaOff)
@ -247,18 +275,25 @@ class Transitions:
self.loadIris()
if (t == 0):
self.iris.detachNode()
fut = AsyncFuture()
fut.setResult(None)
return fut
else:
self.iris.reparentTo(aspect2d, DGG.FADE_SORT_INDEX)
scale = 0.18 * max(base.a2dRight, base.a2dTop)
self.transitionIval = Sequence(LerpScaleInterval(self.iris, t,
scale = 0.18,
scale = scale,
startScale = 0.01),
Func(self.iris.detachNode),
Func(self.__finishTransition),
name = self.irisTaskName,
)
self.__transitionFuture = AsyncFuture()
if finishIval:
self.transitionIval.append(finishIval)
self.transitionIval.start()
return self.__transitionFuture
def irisOut(self, t=0.5, finishIval=None):
"""
@ -274,20 +309,27 @@ class Transitions:
if (t == 0):
self.iris.detachNode()
self.fadeOut(0)
fut = AsyncFuture()
fut.setResult(None)
return fut
else:
self.iris.reparentTo(aspect2d, DGG.FADE_SORT_INDEX)
scale = 0.18 * max(base.a2dRight, base.a2dTop)
self.transitionIval = Sequence(LerpScaleInterval(self.iris, t,
scale = 0.01,
startScale = 0.18),
startScale = scale),
Func(self.iris.detachNode),
# Use the fade to cover up the hole that the iris would leave
Func(self.fadeOut, 0),
Func(self.__finishTransition),
name = self.irisTaskName,
)
self.__transitionFuture = AsyncFuture()
if finishIval:
self.transitionIval.append(finishIval)
self.transitionIval.start()
return self.__transitionFuture
def noIris(self):
"""
@ -311,6 +353,11 @@ class Transitions:
# Letterbox is not really a transition, it is a screen overlay
# self.noLetterbox()
def __finishTransition(self):
if self.__transitionFuture:
self.__transitionFuture.setResult(None)
self.__transitionFuture = None
##################################################
# Letterbox
##################################################
@ -383,9 +430,17 @@ class Transitions:
if self.letterboxIval:
self.letterboxIval.pause()
self.letterboxIval = None
if self.__letterboxFuture:
self.__letterboxFuture.cancel()
self.__letterboxFuture = None
if self.letterbox:
self.letterbox.stash()
def __finishLetterbox(self):
if self.__letterboxFuture:
self.__letterboxFuture.setResult(None)
self.__letterboxFuture = None
def letterboxOn(self, t=0.25, finishIval=None):
"""
Move black bars in over t seconds.
@ -396,7 +451,11 @@ class Transitions:
if (t == 0):
self.letterboxBottom.setPos(0, 0, -1)
self.letterboxTop.setPos(0, 0, 0.8)
fut = AsyncFuture()
fut.setResult(None)
return fut
else:
self.__letterboxFuture = AsyncFuture()
self.letterboxIval = Sequence(Parallel(
LerpPosInterval(self.letterboxBottom,
t,
@ -409,11 +468,13 @@ class Transitions:
# startPos = Vec3(0, 0, 1),
),
),
Func(self.__finishLetterbox),
name = self.letterboxTaskName,
)
if finishIval:
self.letterboxIval.append(finishIval)
self.letterboxIval.start()
return self.__letterboxFuture
def letterboxOff(self, t=0.25, finishIval=None):
"""
@ -424,7 +485,11 @@ class Transitions:
self.letterbox.unstash()
if (t == 0):
self.letterbox.stash()
fut = AsyncFuture()
fut.setResult(None)
return fut
else:
self.__letterboxFuture = AsyncFuture()
self.letterboxIval = Sequence(Parallel(
LerpPosInterval(self.letterboxBottom,
t,
@ -438,9 +503,11 @@ class Transitions:
),
),
Func(self.letterbox.stash),
Func(self.__finishLetterbox),
Func(messenger.send,'letterboxOff'),
name = self.letterboxTaskName,
)
if finishIval:
self.letterboxIval.append(finishIval)
self.letterboxIval.start()
return self.__letterboxFuture

View File

@ -224,12 +224,24 @@ substitute_decl(CPPDeclaration::SubstDecl &subst,
bool any_changed = false;
for (size_t i = 0; i < _elements.size(); ++i) {
CPPInstance *elem_rep =
_elements[i]->substitute_decl(subst, current_scope, global_scope)
->as_instance();
// We don't just do substitute_decl on the instance, which could lead to
// an infinite recursion.
CPPInstance *element = _elements[i];
CPPExpression *value = element->_initializer->
substitute_decl(subst, current_scope, global_scope)->as_expression();
if (elem_rep != _elements[i]) {
rep->_elements[i] = elem_rep;
if (is_scoped()) {
// For a strong enum, we consider the elements to be of this type.
if (value != element->_initializer) {
rep->_elements[i] = new CPPInstance(rep, element->_ident);
rep->_elements[i]->_initializer = value;
any_changed = true;
}
} else if (value != element->_initializer ||
rep->get_underlying_type() != get_underlying_type()) {
// In an unscoped enum, the elements are integers.
rep->_elements[i] = new CPPInstance(rep->get_underlying_type(), element->_ident);
rep->_elements[i]->_initializer = value;
any_changed = true;
}
}

View File

@ -81,7 +81,7 @@ as_integer() const {
case RT_pointer:
// We don't mind if this loses precision.
return (int)reinterpret_cast<long>(_u._pointer);
return (int)(intptr_t)(_u._pointer);
default:
cerr << "Invalid type\n";
@ -104,7 +104,7 @@ as_real() const {
case RT_pointer:
// We don't mind if this loses precision.
return (double)reinterpret_cast<long>(_u._pointer);
return (double)(uintptr_t)(_u._pointer);
default:
cerr << "Invalid type\n";
@ -120,10 +120,10 @@ void *CPPExpression::Result::
as_pointer() const {
switch (_type) {
case RT_integer:
return reinterpret_cast<void*>((long)_u._integer);
return (void *)(intptr_t)_u._integer;
case RT_real:
return reinterpret_cast<void*>((long)_u._real);
return (void *)(uintptr_t)_u._real;
case RT_pointer:
return _u._pointer;

View File

@ -122,6 +122,11 @@ typedef ios::seekdir ios_seekdir;
// Apple has an outdated libstdc++. Not all is lost, though, as we can fill
// in some important missing functions.
#if defined(__GLIBCXX__) && __GLIBCXX__ <= 20070719
#include <tr1/tuple>
using std::tr1::tuple;
using std::tr1::tie;
typedef decltype(nullptr) nullptr_t;
template<class T> struct remove_reference {typedef T type;};

View File

@ -368,7 +368,7 @@ SectionGroup "Python support"
SetOutPath $INSTDIR\pandac\input
File /r "${BUILT}\pandac\input\*"
SetOutPath $INSTDIR\Pmw
File /r /x CVS "${BUILT}\Pmw\*"
File /nonfatal /r /x CVS "${BUILT}\Pmw\*"
!ifdef REGVIEW
SetRegView ${REGVIEW}

View File

@ -3668,6 +3668,7 @@ if (not RUNTIME):
OPTS=['DIR:panda/src/putil', 'ZLIB', 'PYTHON']
IGATEFILES=GetDirectoryContents('panda/src/putil', ["*.h", "*_composite*.cxx"])
IGATEFILES.remove("test_bam.h")
IGATEFILES.remove("config_util.h")
TargetAdd('libp3putil.in', opts=OPTS, input=IGATEFILES)
TargetAdd('libp3putil.in', opts=['IMOD:panda3d.core', 'ILIB:libp3putil', 'SRCDIR:panda/src/putil'])
TargetAdd('libp3putil_igate.obj', input='libp3putil.in', opts=["DEPENDENCYONLY"])
@ -3794,6 +3795,7 @@ if (not RUNTIME):
OPTS=['DIR:panda/src/pstatclient', 'PYTHON']
IGATEFILES=GetDirectoryContents('panda/src/pstatclient', ["*.h", "*_composite*.cxx"])
IGATEFILES.remove("config_pstats.h")
TargetAdd('libp3pstatclient.in', opts=OPTS, input=IGATEFILES)
TargetAdd('libp3pstatclient.in', opts=['IMOD:panda3d.core', 'ILIB:libp3pstatclient', 'SRCDIR:panda/src/pstatclient'])
TargetAdd('libp3pstatclient_igate.obj', input='libp3pstatclient.in', opts=["DEPENDENCYONLY"])
@ -6110,9 +6112,9 @@ if not PkgSkip("PANDATOOL"):
TargetAdd('pfm-trans.exe', opts=['ADVAPI'])
TargetAdd('pfm-bba_pfmBba.obj', opts=OPTS, input='pfmBba.cxx')
TargetAdd('pfm-bba_config_pfm.obj', opts=OPTS, input='config_pfm.cxx')
TargetAdd('pfm-bba_config_pfmprogs.obj', opts=OPTS, input='config_pfmprogs.cxx')
TargetAdd('pfm-bba.exe', input='pfm-bba_pfmBba.obj')
TargetAdd('pfm-bba.exe', input='pfm-bba_config_pfm.obj')
TargetAdd('pfm-bba.exe', input='pfm-bba_config_pfmprogs.obj')
TargetAdd('pfm-bba.exe', input='libp3progbase.lib')
TargetAdd('pfm-bba.exe', input='libp3pandatoolbase.lib')
TargetAdd('pfm-bba.exe', input=COMMON_PANDA_LIBS)

View File

@ -1228,7 +1228,7 @@
<File RelativePath="..\panda\src\putil\pta_double.h"></File>
<File RelativePath="..\panda\src\putil\copyOnWritePointer.cxx"></File>
<File RelativePath="..\panda\src\putil\bitMask.cxx"></File>
<File RelativePath="..\panda\src\putil\config_util.h"></File>
<File RelativePath="..\panda\src\putil\config_putil.h"></File>
<File RelativePath="..\panda\src\putil\clockObject.h"></File>
<File RelativePath="..\panda\src\putil\lineStream.h"></File>
<File RelativePath="..\panda\src\putil\datagramInputFile.cxx"></File>
@ -1307,7 +1307,7 @@
<File RelativePath="..\panda\src\putil\bamCacheRecord.I"></File>
<File RelativePath="..\panda\src\putil\animInterface.cxx"></File>
<File RelativePath="..\panda\src\putil\lineStreamBuf.h"></File>
<File RelativePath="..\panda\src\putil\config_util.cxx"></File>
<File RelativePath="..\panda\src\putil\config_putil.cxx"></File>
<File RelativePath="..\panda\src\putil\cachedTypedWritableReferenceCount.cxx"></File>
<File RelativePath="..\panda\src\putil\pythonCallbackObject.cxx"></File>
<File RelativePath="..\panda\src\putil\test_linestream.cxx"></File>
@ -2322,8 +2322,8 @@
<File RelativePath="..\panda\src\pstatclient\pStatCollectorForward.h"></File>
<File RelativePath="..\panda\src\pstatclient\pStatClientControlMessage.h"></File>
<File RelativePath="..\panda\src\pstatclient\pStatServerControlMessage.h"></File>
<File RelativePath="..\panda\src\pstatclient\config_pstats.h"></File>
<File RelativePath="..\panda\src\pstatclient\config_pstats.cxx"></File>
<File RelativePath="..\panda\src\pstatclient\config_pstatclient.h"></File>
<File RelativePath="..\panda\src\pstatclient\config_pstatclient.cxx"></File>
<File RelativePath="..\panda\src\pstatclient\pStatClient.cxx"></File>
<File RelativePath="..\panda\src\pstatclient\pStatFrameData.I"></File>
<File RelativePath="..\panda\src\pstatclient\test_client.cxx"></File>

View File

@ -11,7 +11,7 @@
#include "config_display.h"
#include "config_pgraph.h"
#ifdef DO_PSTATS
#include "config_pstats.h"
#include "config_pstatclient.h"
#endif
// By including checkPandaVersion.h, we guarantee that runtime attempts to

View File

@ -12,7 +12,7 @@
*/
#include "config_android.h"
#include "config_util.h"
#include "config_putil.h"
#include "virtualFileMountAndroidAsset.h"
#include "virtualFileSystem.h"
#include "filename.h"

View File

@ -18,7 +18,7 @@
#include "nullAudioManager.h"
#include "windowsRegistry.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
#include "load_dso.h"
#ifdef WIN32

View File

@ -20,7 +20,7 @@
// Panda headers.
#include "config_audio.h"
#include "config_util.h"
#include "config_putil.h"
#include "fmodAudioManager.h"
#include "fmodAudioSound.h"
#include "filename.h"

View File

@ -21,7 +21,7 @@
#include "milesAudioStream.h"
#include "globalMilesManager.h"
#include "config_audio.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "virtualFileSystem.h"
#include "nullAudioSound.h"

View File

@ -14,7 +14,7 @@
// Panda headers.
#include "config_audio.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "config_openalAudio.h"
#include "openalAudioManager.h"

View File

@ -1052,7 +1052,7 @@ BulletPersistentManifold *BulletWorld::
get_manifold(int idx) const {
LightMutexHolder holder(get_global_lock());
nassertr(idx < get_num_manifolds(), NULL);
nassertr(idx < _dispatcher->getNumManifolds(), NULL);
btPersistentManifold *ptr = _dispatcher->getManifoldByIndexInternal(idx);
return (ptr) ? new BulletPersistentManifold(ptr) : NULL;
@ -1186,7 +1186,12 @@ tick_callback(btDynamicsWorld *world, btScalar timestep) {
CallbackObject *obj = w->_tick_callback_obj;
if (obj) {
BulletTickCallbackData cbdata(timestep);
// Release the global lock that we are holding during the tick callback
// and allow interactions with bullet world in the user callback
get_global_lock().release();
obj->do_callback(&cbdata);
// Acquire the global lock again and protect the execution
get_global_lock().acquire();
}
}

View File

@ -16,7 +16,7 @@
#include "config_collada.h"
#include "sceneGraphReducer.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
#include "bamCacheRecord.h"
static PT(PandaNode)

View File

@ -19,7 +19,7 @@
#include "config_display.h"
#include "typeRegistry.h"
#include "pset.h"
#include "config_util.h"
#include "config_putil.h"
#include <algorithm>

View File

@ -58,7 +58,7 @@
#include "colorScaleAttrib.h"
#include "clipPlaneAttrib.h"
#include "fogAttrib.h"
#include "config_pstats.h"
#include "config_pstatclient.h"
#include <algorithm>
#include <limits.h>

View File

@ -17,7 +17,7 @@
#include "pandabase.h"
#include "pStatTimer.h"
#include "pStatCollector.h"
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "timerQueryContext.h"
class Thread;

View File

@ -426,6 +426,23 @@ get_max_updates_per_second() const {
return _max_updates_per_second;
}
/**
* Specifies the Content-Type header, useful for applications that require
* different types of content, such as JSON.
*/
INLINE void HTTPChannel::
set_content_type(string content_type) {
_content_type = content_type;
}
/**
* Returns the value of the Content-Type header.
*/
INLINE string HTTPChannel::
get_content_type() const {
return _content_type;
}
/**
* This may be called immediately after a call to get_document() or some
* related function to specify the expected size of the document we are

View File

@ -100,6 +100,7 @@ HTTPChannel(HTTPClient *client) :
_response_type = RT_none;
_http_version = _client->get_http_version();
_http_version_string = _client->get_http_version_string();
_content_type = "application/x-www-form-urlencoded";
_state = S_new;
_done_state = S_new;
_started_download = false;
@ -3624,7 +3625,7 @@ make_header() {
if (!_body.empty()) {
stream
<< "Content-Type: application/x-www-form-urlencoded\r\n"
<< "Content-Type: " << _content_type << "\r\n"
<< "Content-Length: " << _body.length() << "\r\n";
}

View File

@ -143,6 +143,9 @@ PUBLISHED:
INLINE void set_max_updates_per_second(double max_updates_per_second);
INLINE double get_max_updates_per_second() const;
INLINE void set_content_type(string content_type);
INLINE string get_content_type() const;
INLINE void set_expected_file_size(size_t file_size);
streamsize get_file_size() const;
INLINE bool is_file_size_known() const;
@ -336,6 +339,7 @@ private:
string request_path;
string _header;
string _body;
string _content_type;
bool _want_ssl;
bool _proxy_serves_document;
bool _proxy_tunnel_now;

View File

@ -18,7 +18,7 @@
#include "eggComment.h"
#include "eggPoolUniquifier.h"
#include "config_egg.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "string_utils.h"
#include "dSearchPath.h"

View File

@ -16,7 +16,7 @@
#include "config_egg2pg.h"
#include "sceneGraphReducer.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
#include "bamCacheRecord.h"
static PT(PandaNode)

View File

@ -17,7 +17,7 @@
#include "modelRoot.h"
#include "sceneGraphReducer.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
/**
* A convenience function; converts the indicated scene graph to an egg file

View File

@ -119,6 +119,7 @@ protected:
double _wake_time;
int _sort;
int _priority;
unsigned int _implicit_sort;
State _state;
Thread *_servicing_thread;

View File

@ -51,7 +51,8 @@ AsyncTaskChain(AsyncTaskManager *manager, const string &name) :
_needs_cleanup(false),
_current_frame(0),
_time_in_frame(0.0),
_block_till_next_frame(false)
_block_till_next_frame(false),
_next_implicit_sort(0)
{
}
@ -418,6 +419,9 @@ do_add(AsyncTask *task) {
task->_start_time = now;
task->_start_frame = _manager->_clock->get_frame_count();
// Remember the order in which tasks were added to the chain.
task->_implicit_sort = _next_implicit_sort++;
_manager->add_task_by_name(task);
if (task->has_delay()) {

View File

@ -146,7 +146,12 @@ protected:
if (a->get_priority() != b->get_priority()) {
return a->get_priority() < b->get_priority();
}
return a->get_start_time() > b->get_start_time();
if (a->get_start_time() != b->get_start_time()) {
return a->get_start_time() > b->get_start_time();
}
// Failing any other ordering criteria, we sort the tasks based on the
// order in which they were added to the task chain.
return a->_implicit_sort > b->_implicit_sort;
}
};
@ -186,6 +191,8 @@ protected:
double _time_in_frame;
bool _block_till_next_frame;
unsigned int _next_implicit_sort;
static PStatCollector _task_pcollector;
static PStatCollector _wait_pcollector;

View File

@ -94,6 +94,9 @@ PythonTask::
PyErr_Restore(_exception, _exc_value, _exc_traceback);
PyErr_Print();
PyErr_Restore(nullptr, nullptr, nullptr);
_exception = nullptr;
_exc_value = nullptr;
_exc_traceback = nullptr;
}
#endif

View File

@ -14,7 +14,7 @@
* get_supports_cg_profile)
*/
#include "config_util.h"
#include "config_putil.h"
#include "displayRegion.h"
#include "renderBuffer.h"
#include "geom.h"
@ -12647,7 +12647,7 @@ upload_texture_image(CLP(TextureContext) *gtc, bool needs_reload,
int depth = tex->get_expected_mipmap_z_size(mipmap_bias);
// Determine the number of images to upload.
int num_levels = 1;
int num_levels = mipmap_bias + 1;
if (uses_mipmaps) {
num_levels = tex->get_expected_num_mipmap_levels();
}

View File

@ -13,7 +13,7 @@
#include "animateVerticesRequest.h"
#include "bufferContext.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_gobj.h"
#include "geom.h"
#include "geomCacheEntry.h"

View File

@ -19,7 +19,7 @@
#include "shader.h"
#include "preparedGraphicsObjects.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
#include "bamCache.h"
#include "string_utils.h"

View File

@ -16,7 +16,7 @@
#include "pandabase.h"
#include "texture.h"
#include "config_gobj.h"
#include "config_util.h"
#include "config_putil.h"
#include "texturePool.h"
#include "textureContext.h"
#include "bamCache.h"

View File

@ -15,7 +15,7 @@
#include "texturePool.h"
#include "config_gobj.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "string_utils.h"
#include "virtualFileSystem.h"

View File

@ -31,7 +31,7 @@
#include "throw_event.h"
#include "pnmImage.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
#include "pset.h"
#include "pmutex.h"

View File

@ -14,7 +14,7 @@
#include "movieTypeRegistry.h"
#include "string_utils.h"
#include "config_movies.h"
#include "config_util.h"
#include "config_putil.h"
#include "load_dso.h"
MovieTypeRegistry *MovieTypeRegistry::_global_ptr = NULL;

View File

@ -36,7 +36,7 @@
#include "throw_event.h"
#include "pnmImage.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
#include "pset.h"
#include "pmutex.h"

View File

@ -16,7 +16,7 @@
#include "bam.h"
#include "bamCacheRecord.h"
#include "config_util.h"
#include "config_putil.h"
#include "bamReader.h"
#include "bamWriter.h"
#include "filename.h"

View File

@ -19,7 +19,7 @@
#include "modelLoadRequest.h"
#include "modelSaveRequest.h"
#include "config_express.h"
#include "config_util.h"
#include "config_putil.h"
#include "virtualFileSystem.h"
#include "filename.h"
#include "load_dso.h"

View File

@ -12,7 +12,7 @@
*/
#include "shaderPool.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "virtualFileSystem.h"
#include "loader.h"

View File

@ -14,7 +14,7 @@
#include "physxEnums.h"
#include "string_utils.h"
#include "config_util.h"
#include "config_putil.h"
ostream &
operator << (ostream &out, PhysxEnums::PhysxUpAxis axis) {

View File

@ -16,7 +16,7 @@
#ifdef HAVE_FREETYPE
#include "config_pnmtext.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "virtualFileSystem.h"
#include "nurbsCurveEvaluator.h"

View File

@ -6,12 +6,12 @@
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file config_pstats.cxx
* @file config_pstatclient.cxx
* @author drose
* @date 2000-07-09
*/
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "dconfig.h"
@ -19,10 +19,10 @@
#error Buildsystem error: BUILDING_PANDA_PSTATCLIENT not defined
#endif
ConfigureDef(config_pstats);
ConfigureDef(config_pstatclient);
NotifyCategoryDef(pstats, "");
ConfigureFn(config_pstats) {
ConfigureFn(config_pstatclient) {
init_libpstatclient();
}

View File

@ -0,0 +1,50 @@
/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file config_pstatclient.h
* @author drose
* @date 2000-07-09
*/
#ifndef CONFIG_PSTATS_H
#define CONFIG_PSTATS_H
#include "pandabase.h"
#include "notifyCategoryProxy.h"
#include "dconfig.h"
#include "configVariableString.h"
#include "configVariableInt.h"
#include "configVariableDouble.h"
#include "configVariableBool.h"
// Configure variables for pstats package.
ConfigureDecl(config_pstatclient, EXPCL_PANDA_PSTATCLIENT, EXPTP_PANDA_PSTATCLIENT);
NotifyCategoryDecl(pstats, EXPCL_PANDA_PSTATCLIENT, EXPTP_PANDA_PSTATCLIENT);
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableString pstats_name;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_max_rate;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_threaded_write;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableInt pstats_max_queue_size;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_tcp_ratio;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableString pstats_host;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableInt pstats_port;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_target_frame_rate;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_gpu_timing;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_scroll_mode;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_history;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_average_time;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_mem_other;
extern EXPCL_PANDA_PSTATCLIENT void init_libpstatclient();
#endif

View File

@ -1,50 +1,2 @@
/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file config_pstats.h
* @author drose
* @date 2000-07-09
*/
#ifndef CONFIG_PSTATS_H
#define CONFIG_PSTATS_H
#include "pandabase.h"
#include "notifyCategoryProxy.h"
#include "dconfig.h"
#include "configVariableString.h"
#include "configVariableInt.h"
#include "configVariableDouble.h"
#include "configVariableBool.h"
// Configure variables for pstats package.
ConfigureDecl(config_pstats, EXPCL_PANDA_PSTATCLIENT, EXPTP_PANDA_PSTATCLIENT);
NotifyCategoryDecl(pstats, EXPCL_PANDA_PSTATCLIENT, EXPTP_PANDA_PSTATCLIENT);
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableString pstats_name;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_max_rate;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_threaded_write;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableInt pstats_max_queue_size;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_tcp_ratio;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableString pstats_host;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableInt pstats_port;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_target_frame_rate;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_gpu_timing;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_scroll_mode;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_history;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_average_time;
extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_mem_other;
extern EXPCL_PANDA_PSTATCLIENT void init_libpstatclient();
#endif
// This file to remain during the whole 1.10.x cycle; remove after that.
#error config_pstats.h has been renamed to config_pstatclient.h - please update your project.

View File

@ -1,5 +1,5 @@
#include "config_pstats.cxx"
#include "config_pstatclient.cxx"
#include "pStatClient.cxx"
#include "pStatClientImpl.cxx"
#include "pStatClientVersion.cxx"

View File

@ -21,7 +21,7 @@
#include "pStatServerControlMessage.h"
#include "pStatCollector.h"
#include "pStatThread.h"
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "pStatProperties.h"
#include "thread.h"
#include "clockObject.h"

View File

@ -11,7 +11,7 @@
* @date 2000-07-09
*/
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "pStatClientControlMessage.h"
#include "pStatClientVersion.h"

View File

@ -21,7 +21,7 @@
#include "pStatServerControlMessage.h"
#include "pStatCollector.h"
#include "pStatThread.h"
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "pStatProperties.h"
#include "cmath.h"

View File

@ -13,7 +13,7 @@
#include "pStatFrameData.h"
#include "pStatClientVersion.h"
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "datagram.h"
#include "datagramIterator.h"

View File

@ -14,7 +14,7 @@
#include "pStatProperties.h"
#include "pStatCollectorDef.h"
#include "pStatClient.h"
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "configVariableBool.h"
#include "configVariableColor.h"
#include "configVariableDouble.h"

View File

@ -11,7 +11,7 @@
* @date 2000-07-09
*/
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "pStatServerControlMessage.h"
#include "datagram.h"

View File

@ -11,7 +11,7 @@
* @date 2000-07-09
*/
#include "config_pstats.h"
#include "config_pstatclient.h"
#include "pStatClient.h"
#include "pStatCollector.h"
#include "thread.h"

View File

@ -13,7 +13,7 @@
#include "autoTextureScale.h"
#include "string_utils.h"
#include "config_util.h"
#include "config_putil.h"
ostream &
operator << (ostream &out, AutoTextureScale ats) {

View File

@ -18,7 +18,7 @@
#include "hashVal.h"
#include "datagramInputFile.h"
#include "datagramOutputFile.h"
#include "config_util.h"
#include "config_putil.h"
#include "bam.h"
#include "typeRegistry.h"
#include "string_utils.h"

View File

@ -14,7 +14,7 @@
#include "bamCacheIndex.h"
#include "bamReader.h"
#include "bamWriter.h"
#include "config_util.h" // util_cat
#include "config_putil.h" // util_cat
#include "indent.h"
#include <algorithm>

View File

@ -17,7 +17,7 @@
#include "virtualFileSystem.h"
#include "virtualFile.h"
#include "indent.h"
#include "config_util.h" // util_cat
#include "config_putil.h" // util_cat
TypeHandle BamCacheRecord::_type_handle;

View File

@ -13,7 +13,7 @@
#include "bamEnums.h"
#include "string_utils.h"
#include "config_util.h"
#include "config_putil.h"
ostream &
operator << (ostream &out, BamEnums::BamEndian be) {

View File

@ -17,7 +17,7 @@
#include "bam.h"
#include "bamReader.h"
#include "datagramIterator.h"
#include "config_util.h"
#include "config_putil.h"
#include "pipelineCyclerBase.h"
TypeHandle BamReaderAuxData::_type_handle;

View File

@ -12,7 +12,7 @@
*/
#include "bamReader_ext.h"
#include "config_util.h"
#include "config_putil.h"
#include "pythonThread.h"
#ifdef HAVE_PYTHON

View File

@ -15,7 +15,7 @@
#include "pnotify.h"
#include "typedWritable.h"
#include "config_util.h"
#include "config_putil.h"
#include "bam.h"
#include "bamWriter.h"
#include "bamReader.h"
@ -94,6 +94,10 @@ BamWriter::
for (si = _state_map.begin(); si != _state_map.end(); ++si) {
TypedWritable *object = (TypedWritable *)(*si).first;
object->remove_bam_writer(this);
if ((*si).second._refcount != nullptr) {
unref_delete((*si).second._refcount);
}
}
}
@ -529,6 +533,9 @@ object_destructs(TypedWritable *object) {
// we're in trouble when we do write it out.
nassertv(!(*si).second._written_seq.is_initial());
// This cannot be called if we are still holding a reference to it.
nassertv((*si).second._refcount == nullptr);
int object_id = (*si).second._object_id;
_freed_object_ids.push_back(object_id);
@ -606,8 +613,10 @@ enqueue_object(const TypedWritable *object) {
// No, it hasn't, so assign it the next number in sequence arbitrarily.
object_id = _next_object_id;
bool inserted =
_state_map.insert(StateMap::value_type(object, StoreState(_next_object_id))).second;
StateMap::iterator si;
bool inserted;
tie(si, inserted) =
_state_map.insert(StateMap::value_type(object, StoreState(_next_object_id)));
nassertr(inserted, false);
// Store ourselves on the TypedWritable so that we get notified when it
@ -615,6 +624,14 @@ enqueue_object(const TypedWritable *object) {
(const_cast<TypedWritable*>(object))->add_bam_writer(this);
_next_object_id++;
// Increase the reference count if this inherits from ReferenceCount,
// until we get a chance to write this object for the first time.
const ReferenceCount *rc = ((TypedWritable *)object)->as_reference_count();
if (rc != nullptr) {
rc->ref();
(*si).second._refcount = rc;
}
} else {
// Yes, it has; get the object ID.
object_id = (*si).second._object_id;
@ -703,6 +720,15 @@ flush_queue() {
(*si).second._written_seq = _writing_seq;
(*si).second._modified = object->get_bam_modified();
// Now release any reference we hold to it, so that it may destruct.
const ReferenceCount *rc = (*si).second._refcount;
if (rc != nullptr) {
// We need to assign this pointer to null before deleting the object,
// since that may end up calling object_destructs.
(*si).second._refcount = nullptr;
unref_delete(rc);
}
} else {
// On subsequent times when we write a particular object, we write
// simply TypeHandle::none(), followed by the object ID. The occurrence

View File

@ -140,8 +140,9 @@ private:
int _object_id;
UpdateSeq _written_seq;
UpdateSeq _modified;
const ReferenceCount *_refcount;
StoreState(int object_id) : _object_id(object_id) {}
StoreState(int object_id) : _object_id(object_id), _refcount(nullptr) {}
};
typedef phash_map<const TypedWritable *, StoreState, pointer_hash> StateMap;
StateMap _state_map;

View File

@ -12,7 +12,7 @@
*/
#include "buttonRegistry.h"
#include "config_util.h"
#include "config_putil.h"
#include <stdio.h>

View File

@ -12,7 +12,7 @@
*/
#include "clockObject.h"
#include "config_util.h"
#include "config_putil.h"
#include "configVariableEnum.h"
#include "string_utils.h"
#include "thread.h"

View File

@ -12,7 +12,7 @@
*/
#include "colorSpace.h"
#include "config_util.h"
#include "config_putil.h"
#include "configVariableEnum.h"
#include "string_utils.h"

View File

@ -6,12 +6,12 @@
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file config_util.cxx
* @file config_putil.cxx
* @author cary
* @date 2000-01-04
*/
#include "config_util.h"
#include "config_putil.h"
#include "animInterface.h"
#include "bamCacheIndex.h"
#include "bamCacheRecord.h"
@ -51,7 +51,7 @@
#error Buildsystem error: BUILDING_PANDA_PUTIL not defined
#endif
ConfigureDef(config_util);
ConfigureDef(config_putil);
NotifyCategoryDef(util, "");
NotifyCategoryDef(bam, util_cat);
@ -88,7 +88,7 @@ ConfigVariableEnum<BamEnums::BamTextureMode> bam_texture_mode
PRC_DESC("Set this to specify how textures should be written into Bam files."
"See the panda source or documentation for available options."));
ConfigureFn(config_util) {
ConfigureFn(config_putil) {
init_libputil();
}

View File

@ -0,0 +1,55 @@
/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file config_putil.h
* @author cary
* @date 2000-01-04
*/
#ifndef __CONFIG_UTIL_H__
#define __CONFIG_UTIL_H__
#include "pandabase.h"
#include "notifyCategoryProxy.h"
#include "configVariableSearchPath.h"
#include "configVariableEnum.h"
#include "configVariableDouble.h"
#include "bamEnums.h"
#include "dconfig.h"
class DSearchPath;
ConfigureDecl(config_putil, EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL);
NotifyCategoryDecl(util, EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL);
NotifyCategoryDecl(bam, EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL);
// Actually, we can't determine this config variable the normal way, because
// we must be able to access it at static init time. Instead of declaring it
// a global constant, we'll make it a member of MemoryUsage. extern
// EXPCL_PANDA_PUTIL const bool track_memory_usage;
extern EXPCL_PANDA_PUTIL ConfigVariableInt bam_version;
extern EXPCL_PANDA_PUTIL ConfigVariableEnum<BamEnums::BamEndian> bam_endian;
extern EXPCL_PANDA_PUTIL ConfigVariableBool bam_stdfloat_double;
extern EXPCL_PANDA_PUTIL ConfigVariableEnum<BamEnums::BamTextureMode> bam_texture_mode;
BEGIN_PUBLISH
EXPCL_PANDA_PUTIL ConfigVariableSearchPath &get_model_path();
EXPCL_PANDA_PUTIL ConfigVariableSearchPath &get_plugin_path();
END_PUBLISH
extern ConfigVariableDouble sleep_precision;
extern EXPCL_PANDA_PUTIL ConfigVariableBool preload_textures;
extern EXPCL_PANDA_PUTIL ConfigVariableBool preload_simple_textures;
extern EXPCL_PANDA_PUTIL ConfigVariableBool compressed_textures;
extern EXPCL_PANDA_PUTIL ConfigVariableBool cache_check_timestamps;
extern EXPCL_PANDA_PUTIL void init_libputil();
#endif /* __CONFIG_UTIL_H__ */

View File

@ -1,55 +1,2 @@
/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file config_util.h
* @author cary
* @date 2000-01-04
*/
#ifndef __CONFIG_UTIL_H__
#define __CONFIG_UTIL_H__
#include "pandabase.h"
#include "notifyCategoryProxy.h"
#include "configVariableSearchPath.h"
#include "configVariableEnum.h"
#include "configVariableDouble.h"
#include "bamEnums.h"
#include "dconfig.h"
class DSearchPath;
ConfigureDecl(config_util, EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL);
NotifyCategoryDecl(util, EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL);
NotifyCategoryDecl(bam, EXPCL_PANDA_PUTIL, EXPTP_PANDA_PUTIL);
// Actually, we can't determine this config variable the normal way, because
// we must be able to access it at static init time. Instead of declaring it
// a global constant, we'll make it a member of MemoryUsage. extern
// EXPCL_PANDA_PUTIL const bool track_memory_usage;
extern EXPCL_PANDA_PUTIL ConfigVariableInt bam_version;
extern EXPCL_PANDA_PUTIL ConfigVariableEnum<BamEnums::BamEndian> bam_endian;
extern EXPCL_PANDA_PUTIL ConfigVariableBool bam_stdfloat_double;
extern EXPCL_PANDA_PUTIL ConfigVariableEnum<BamEnums::BamTextureMode> bam_texture_mode;
BEGIN_PUBLISH
EXPCL_PANDA_PUTIL ConfigVariableSearchPath &get_model_path();
EXPCL_PANDA_PUTIL ConfigVariableSearchPath &get_plugin_path();
END_PUBLISH
extern ConfigVariableDouble sleep_precision;
extern EXPCL_PANDA_PUTIL ConfigVariableBool preload_textures;
extern EXPCL_PANDA_PUTIL ConfigVariableBool preload_simple_textures;
extern EXPCL_PANDA_PUTIL ConfigVariableBool compressed_textures;
extern EXPCL_PANDA_PUTIL ConfigVariableBool cache_check_timestamps;
extern EXPCL_PANDA_PUTIL void init_libputil();
#endif /* __CONFIG_UTIL_H__ */
// This file to remain during the whole 1.10.x cycle; remove after that.
#error config_util.h has been renamed to config_putil.h - please update your project.

View File

@ -12,7 +12,7 @@
*/
#include "copyOnWritePointer.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_pipeline.h"
#ifdef COW_THREADED

View File

@ -16,7 +16,7 @@
#include "numeric_types.h"
#include "datagramIterator.h"
#include "profileTimer.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "virtualFileSystem.h"
#include "streamReader.h"

View File

@ -21,7 +21,7 @@
#include "fileReference.h"
#include "virtualFile.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
/**
* This class can be used to write a binary file that consists of an arbitrary

View File

@ -13,7 +13,7 @@
#include "factoryBase.h"
#include "indent.h"
#include "config_util.h"
#include "config_putil.h"
/**
*

View File

@ -12,7 +12,7 @@
*/
#include "globalPointerRegistry.h"
#include "config_util.h"
#include "config_putil.h"
// In general, we use the util_cat->info() syntax in this file (instead of
// util_cat.info()), because much of this work is done at static init time,

View File

@ -84,7 +84,7 @@ DEFINE_KEYBD_BUTTON_HANDLE(rmeta)
/**
* This is intended to be called only once, by the static initialization
* performed in config_util.cxx.
* performed in config_putil.cxx.
*/
void KeyboardButton::
init_keyboard_buttons() {

View File

@ -16,7 +16,7 @@
#include "configVariableManager.h"
#include "virtualFileSystem.h"
#include "config_express.h"
#include "config_util.h"
#include "config_putil.h"
#include "hashVal.h"
/**

View File

@ -12,7 +12,7 @@
*/
#include "loaderOptions.h"
#include "config_util.h"
#include "config_putil.h"
#include "indent.h"
/**
@ -25,7 +25,7 @@ LoaderOptions(int flags) :
_texture_num_views(0),
_auto_texture_scale(ATS_unspecified)
{
// Shadowing the variables in config_util for static init ordering issues.
// Shadowing the variables in config_putil for static init ordering issues.
static ConfigVariableBool *preload_textures;
static ConfigVariableBool *preload_simple_textures;
static ConfigVariableBool *compressed_textures;

View File

@ -129,7 +129,7 @@ is_mouse_button(ButtonHandle button) {
/**
* This is intended to be called only once, by the static initialization
* performed in config_util.cxx.
* performed in config_putil.cxx.
*/
void MouseButton::
init_mouse_buttons() {

View File

@ -17,7 +17,7 @@
#include "callbackObject.cxx"
#include "clockObject.cxx"
#include "colorSpace.cxx"
#include "config_util.cxx"
#include "config_putil.cxx"
#include "configurable.cxx"
#include "copyOnWriteObject.cxx"
#include "copyOnWritePointer.cxx"

View File

@ -18,7 +18,7 @@
#include "py_panda.h"
#include "pythonThread.h"
#include "callbackData.h"
#include "config_util.h"
#include "config_putil.h"
TypeHandle PythonCallbackObject::_type_handle;

View File

@ -16,7 +16,7 @@
#include "pandabase.h"
#include "pvector.h"
#include "config_util.h"
#include "config_putil.h"
/**
* Entry in the SimpleHashMap.

View File

@ -12,7 +12,7 @@
*/
#include "filename.h"
#include "config_util.h"
#include "config_putil.h"
#include "dSearchPath.h"

View File

@ -16,7 +16,7 @@
#include "pandabase.h"
#include "pvector.h"
#include "config_util.h"
#include "config_putil.h"
#include "weakPointerTo.h"
/**

View File

@ -15,7 +15,7 @@
#include "speedTreeNode.h"
#include "stBasicTerrain.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
#include "cullTraverser.h"
#include "cullableObject.h"
#include "cullHandler.h"

View File

@ -28,7 +28,7 @@
#endif
#include "config_text.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "virtualFileSystem.h"
#include "geomVertexData.h"

View File

@ -14,7 +14,7 @@
#include "fontPool.h"
#include "staticTextFont.h"
#include "dynamicTextFont.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_express.h"
#include "virtualFileSystem.h"
#include "nodePath.h"

View File

@ -26,7 +26,7 @@
#include "throw_event.h"
#include "pnmImage.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
#include <ApplicationServices/ApplicationServices.h>

View File

@ -19,7 +19,7 @@
#include "keyboardButton.h"
#include "mouseButton.h"
#include "clockObject.h"
#include "config_util.h"
#include "config_putil.h"
#include "throw_event.h"
#include "nativeWindowHandle.h"

View File

@ -13,7 +13,7 @@
#include "eggToBam.h"
#include "config_util.h"
#include "config_putil.h"
#include "bamFile.h"
#include "load_egg_file.h"
#include "config_egg2pg.h"

View File

@ -13,7 +13,7 @@
#include "ptsToBam.h"
#include "config_util.h"
#include "config_putil.h"
#include "geomPoints.h"
#include "bamFile.h"
#include "pandaNode.h"

View File

@ -17,7 +17,7 @@
#include "pandatoolbase.h"
#include "filename.h"
#include "config_util.h" // for get_model_path()
#include "config_putil.h" // for get_model_path()
#include "animationConvert.h"
#include "pathReplace.h"
#include "pointerTo.h"

View File

@ -20,7 +20,7 @@
#include "dconfig.h"
#include "configVariableFilename.h"
#include "virtualFileSystem.h"
#include "config_util.h"
#include "config_putil.h"
NotifyCategoryDeclNoExport(txafile);
NotifyCategoryDef(txafile, "");

View File

@ -14,7 +14,7 @@
#include "eggReader.h"
#include "pnmImage.h"
#include "config_util.h"
#include "config_putil.h"
#include "eggTextureCollection.h"
#include "eggGroup.h"
#include "eggGroupNode.h"

View File

@ -14,7 +14,7 @@
#include "somethingToEgg.h"
#include "somethingToEggConverter.h"
#include "config_util.h"
#include "config_putil.h"
/**
* The first parameter to the constructor should be the one-word name of the

View File

@ -16,7 +16,7 @@
#include "fltRecordWriter.h"
#include "fltHeader.h"
#include "pathReplace.h"
#include "config_util.h"
#include "config_putil.h"
TypeHandle FltTexture::_type_handle;

View File

@ -14,7 +14,7 @@
#include "pandatoolbase.h"
#include "gtkStats.h"
#include "gtkStatsServer.h"
#include "config_pstats.h"
#include "config_pstatclient.h"
GtkWidget *main_window;
static GtkStatsServer *server = NULL;

View File

@ -25,7 +25,7 @@
*/
#include "maxEgg.h"
#include "config_util.h"
#include "config_putil.h"
/**
*

View File

@ -19,7 +19,7 @@
#include "mayaToEggConverter.h"
#include "eggData.h"
#include "load_egg_file.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_chan.h"
#include "config_gobj.h"
#include "textNode.h"

View File

@ -12,7 +12,7 @@
*/
#include "pathReplace.h"
#include "config_util.h"
#include "config_putil.h"
#include "config_pandatoolbase.h"
#include "indent.h"
#include "virtualFileSystem.h"

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