mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-17 12:12:10 -04:00
Merge branch 'master' into cmake
This commit is contained in:
commit
6efb07de93
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;};
|
||||
|
@ -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}
|
||||
|
@ -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)
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include "config_display.h"
|
||||
#include "typeRegistry.h"
|
||||
#include "pset.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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"
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -119,6 +119,7 @@ protected:
|
||||
double _wake_time;
|
||||
int _sort;
|
||||
int _priority;
|
||||
unsigned int _implicit_sort;
|
||||
|
||||
State _state;
|
||||
Thread *_servicing_thread;
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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) {
|
||||
|
@ -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"
|
||||
|
@ -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();
|
||||
}
|
||||
|
50
panda/src/pstatclient/config_pstatclient.h
Normal file
50
panda/src/pstatclient/config_pstatclient.h
Normal 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
|
@ -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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
#include "config_pstats.cxx"
|
||||
#include "config_pstatclient.cxx"
|
||||
#include "pStatClient.cxx"
|
||||
#include "pStatClientImpl.cxx"
|
||||
#include "pStatClientVersion.cxx"
|
||||
|
@ -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"
|
||||
|
@ -11,7 +11,7 @@
|
||||
* @date 2000-07-09
|
||||
*/
|
||||
|
||||
#include "config_pstats.h"
|
||||
#include "config_pstatclient.h"
|
||||
#include "pStatClientControlMessage.h"
|
||||
#include "pStatClientVersion.h"
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include "pStatFrameData.h"
|
||||
#include "pStatClientVersion.h"
|
||||
#include "config_pstats.h"
|
||||
#include "config_pstatclient.h"
|
||||
|
||||
#include "datagram.h"
|
||||
#include "datagramIterator.h"
|
||||
|
@ -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"
|
||||
|
@ -11,7 +11,7 @@
|
||||
* @date 2000-07-09
|
||||
*/
|
||||
|
||||
#include "config_pstats.h"
|
||||
#include "config_pstatclient.h"
|
||||
#include "pStatServerControlMessage.h"
|
||||
|
||||
#include "datagram.h"
|
||||
|
@ -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"
|
||||
|
@ -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) {
|
||||
|
@ -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"
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
#include "bamReader_ext.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
#include "pythonThread.h"
|
||||
|
||||
#ifdef HAVE_PYTHON
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
#include "buttonRegistry.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
@ -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"
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
#include "colorSpace.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
#include "configVariableEnum.h"
|
||||
#include "string_utils.h"
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
55
panda/src/putil/config_putil.h
Normal file
55
panda/src/putil/config_putil.h
Normal 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__ */
|
@ -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.
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
#include "copyOnWritePointer.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
#include "config_pipeline.h"
|
||||
|
||||
#ifdef COW_THREADED
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include "factoryBase.h"
|
||||
#include "indent.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -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,
|
||||
|
@ -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() {
|
||||
|
@ -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"
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
|
@ -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() {
|
||||
|
@ -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"
|
||||
|
@ -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;
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
#include "pandabase.h"
|
||||
#include "pvector.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
|
||||
/**
|
||||
* Entry in the SimpleHashMap.
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
#include "filename.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
|
||||
#include "dSearchPath.h"
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
#include "pandabase.h"
|
||||
#include "pvector.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
#include "weakPointerTo.h"
|
||||
|
||||
/**
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include "ptsToBam.h"
|
||||
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
#include "geomPoints.h"
|
||||
#include "bamFile.h"
|
||||
#include "pandaNode.h"
|
||||
|
@ -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"
|
||||
|
@ -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, "");
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "maxEgg.h"
|
||||
#include "config_util.h"
|
||||
#include "config_putil.h"
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -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"
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user