mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
Partially apply typo fix patch I found somewhere on the web, by someone named Christoph Korn
This commit is contained in:
parent
d7624e62c6
commit
804a72b716
@ -562,7 +562,7 @@ class Actor(DirectObject, NodePath):
|
|||||||
return bundles
|
return bundles
|
||||||
|
|
||||||
def __updateSortedLODNames(self):
|
def __updateSortedLODNames(self):
|
||||||
# Cache the sorted LOD names so we dont have to grab them
|
# Cache the sorted LOD names so we don't have to grab them
|
||||||
# and sort them every time somebody asks for the list
|
# and sort them every time somebody asks for the list
|
||||||
self.__sortedLODNames = self.__partBundleDict.keys()
|
self.__sortedLODNames = self.__partBundleDict.keys()
|
||||||
# Reverse sort the doing a string->int
|
# Reverse sort the doing a string->int
|
||||||
|
@ -3239,7 +3239,7 @@ does not include blank lines, comments, or continuation lines."
|
|||||||
t)))
|
t)))
|
||||||
|
|
||||||
(defun py-go-up-tree-to-keyword (key)
|
(defun py-go-up-tree-to-keyword (key)
|
||||||
"Go to begining of statement starting with KEY, at or preceding point.
|
"Go to beginning of statement starting with KEY, at or preceding point.
|
||||||
|
|
||||||
KEY is a regular expression describing a Python keyword. Skip blank
|
KEY is a regular expression describing a Python keyword. Skip blank
|
||||||
lines and non-indenting comments. If the statement found starts with
|
lines and non-indenting comments. If the statement found starts with
|
||||||
|
@ -198,7 +198,7 @@ def subclass(type1, type2):
|
|||||||
elif inheritsFrom(type2, type1):
|
elif inheritsFrom(type2, type1):
|
||||||
return 1
|
return 1
|
||||||
else:
|
else:
|
||||||
# This is the dont care case. We must specify a sorting
|
# This is the don't care case. We must specify a sorting
|
||||||
# rule just so it is not arbitrary
|
# rule just so it is not arbitrary
|
||||||
if (type1.foreignTypeName > type2.foreignTypeName):
|
if (type1.foreignTypeName > type2.foreignTypeName):
|
||||||
return -1
|
return -1
|
||||||
|
@ -173,7 +173,7 @@ class State(DirectObject):
|
|||||||
if fsm.getCurrentState():
|
if fsm.getCurrentState():
|
||||||
# made this 'conditional_request()' instead of 'request()' to avoid warning when
|
# made this 'conditional_request()' instead of 'request()' to avoid warning when
|
||||||
# loading minigames where rules->frameworkInit transition doesnt exist and you
|
# loading minigames where rules->frameworkInit transition doesnt exist and you
|
||||||
# dont want to add it since it results in hanging the game
|
# don't want to add it since it results in hanging the game
|
||||||
fsm.conditional_request((fsm.getInitialState()).getName())
|
fsm.conditional_request((fsm.getInitialState()).getName())
|
||||||
|
|
||||||
# If it has no current state, I assume this means it
|
# If it has no current state, I assume this means it
|
||||||
|
@ -132,7 +132,7 @@ class OnscreenGeom(DirectObject, NodePath):
|
|||||||
|
|
||||||
def cget(self, option):
|
def cget(self, option):
|
||||||
# Get current configuration setting.
|
# Get current configuration setting.
|
||||||
# This is for compatability with DirectGui functions
|
# This is for compatibility with DirectGui functions
|
||||||
getter = eval('self.get' + string.upper(option[0]) + option[1:])
|
getter = eval('self.get' + string.upper(option[0]) + option[1:])
|
||||||
return getter()
|
return getter()
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ class OnscreenImage(DirectObject, NodePath):
|
|||||||
|
|
||||||
def cget(self, option):
|
def cget(self, option):
|
||||||
# Get current configuration setting.
|
# Get current configuration setting.
|
||||||
# This is for compatability with DirectGui functions
|
# This is for compatibility with DirectGui functions
|
||||||
getter = eval('self.get' + string.upper(option[0]) + option[1:])
|
getter = eval('self.get' + string.upper(option[0]) + option[1:])
|
||||||
return getter()
|
return getter()
|
||||||
|
|
||||||
|
@ -374,7 +374,7 @@ class OnscreenText(DirectObject, NodePath):
|
|||||||
self.textNode.clearFrame()
|
self.textNode.clearFrame()
|
||||||
|
|
||||||
def configure(self, option=None, **kw):
|
def configure(self, option=None, **kw):
|
||||||
# These is for compatability with DirectGui functions
|
# These is for compatibility with DirectGui functions
|
||||||
if not self.mayChange:
|
if not self.mayChange:
|
||||||
print 'OnscreenText.configure: mayChange == 0'
|
print 'OnscreenText.configure: mayChange == 0'
|
||||||
return
|
return
|
||||||
@ -396,7 +396,7 @@ class OnscreenText(DirectObject, NodePath):
|
|||||||
|
|
||||||
def cget(self, option):
|
def cget(self, option):
|
||||||
# Get current configuration setting.
|
# Get current configuration setting.
|
||||||
# This is for compatability with DirectGui functions
|
# This is for compatibility with DirectGui functions
|
||||||
getter = eval('self.get' + string.upper(option[0]) + option[1:])
|
getter = eval('self.get' + string.upper(option[0]) + option[1:])
|
||||||
return getter()
|
return getter()
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ class SoundInterval(Interval.Interval):
|
|||||||
# the sound is caused by the delay between the end of the sound
|
# the sound is caused by the delay between the end of the sound
|
||||||
# and the next taskMgr cycle). There still seems to be a skip
|
# and the next taskMgr cycle). There still seems to be a skip
|
||||||
# in Miles when looping MP3s. =(
|
# in Miles when looping MP3s. =(
|
||||||
# RAU 03/01/07 add listenerNode in case we dont want to
|
# RAU 03/01/07 add listenerNode in case we don't want to
|
||||||
# use base.camera as the listener, node must not be None
|
# use base.camera as the listener, node must not be None
|
||||||
def __init__(self, sound, loop = 0, duration = 0.0, name = None,
|
def __init__(self, sound, loop = 0, duration = 0.0, name = None,
|
||||||
volume = 1.0, startTime = 0.0, node=None,
|
volume = 1.0, startTime = 0.0, node=None,
|
||||||
|
@ -2441,7 +2441,7 @@ handle_notify_request(const string &message) {
|
|||||||
_main_object->set_string_property("status", "starting");
|
_main_object->set_string_property("status", "starting");
|
||||||
|
|
||||||
} else if (message == "onwindowopen") {
|
} else if (message == "onwindowopen") {
|
||||||
// The process told us that it just succesfully opened its
|
// The process told us that it just successfully opened its
|
||||||
// window, for the first time. Hide the splash window.
|
// window, for the first time. Hide the splash window.
|
||||||
_instance_window_opened = true;
|
_instance_window_opened = true;
|
||||||
if (_splash_window != NULL) {
|
if (_splash_window != NULL) {
|
||||||
|
@ -75,7 +75,7 @@ class SfxPlayer:
|
|||||||
|
|
||||||
self.setFinalVolume(sfx, node, volume, listenerNode, cutoff)
|
self.setFinalVolume(sfx, node, volume, listenerNode, cutoff)
|
||||||
|
|
||||||
# dont start over if it's already playing, unless
|
# don't start over if it's already playing, unless
|
||||||
# "interrupt" was specified
|
# "interrupt" was specified
|
||||||
if interrupt or (sfx.status() != AudioSound.PLAYING):
|
if interrupt or (sfx.status() != AudioSound.PLAYING):
|
||||||
sfx.setTime(time)
|
sfx.setTime(time)
|
||||||
|
@ -1564,7 +1564,7 @@ class ShowBase(DirectObject.DirectObject):
|
|||||||
# to a user request so sfxActive/musicActive represent how things
|
# to a user request so sfxActive/musicActive represent how things
|
||||||
# *should* be, regardless of App/OS/HW state
|
# *should* be, regardless of App/OS/HW state
|
||||||
def enableMusic(self, bEnableMusic):
|
def enableMusic(self, bEnableMusic):
|
||||||
# dont setActive(1) if no audiofocus
|
# don't setActive(1) if no audiofocus
|
||||||
if self.AppHasAudioFocus and self.musicManagerIsValid:
|
if self.AppHasAudioFocus and self.musicManagerIsValid:
|
||||||
self.musicManager.setActive(bEnableMusic)
|
self.musicManager.setActive(bEnableMusic)
|
||||||
self.musicActive = bEnableMusic
|
self.musicActive = bEnableMusic
|
||||||
@ -1582,7 +1582,7 @@ class ShowBase(DirectObject.DirectObject):
|
|||||||
self.sfxManagerList[i].setActive(bEnabled)
|
self.sfxManagerList[i].setActive(bEnabled)
|
||||||
|
|
||||||
def enableSoundEffects(self, bEnableSoundEffects):
|
def enableSoundEffects(self, bEnableSoundEffects):
|
||||||
# dont setActive(1) if no audiofocus
|
# don't setActive(1) if no audiofocus
|
||||||
if self.AppHasAudioFocus or (bEnableSoundEffects==0):
|
if self.AppHasAudioFocus or (bEnableSoundEffects==0):
|
||||||
self.SetAllSfxEnables(bEnableSoundEffects)
|
self.SetAllSfxEnables(bEnableSoundEffects)
|
||||||
self.sfxActive=bEnableSoundEffects
|
self.sfxActive=bEnableSoundEffects
|
||||||
|
@ -563,7 +563,7 @@ class ActorControl(Pmw.MegaWidget):
|
|||||||
|
|
||||||
def setPlayRate(self, rate):
|
def setPlayRate(self, rate):
|
||||||
# set play rate on the actor, although for the AnimPanel
|
# set play rate on the actor, although for the AnimPanel
|
||||||
# purpose we dont use the actor's play rate, but rather
|
# purpose we don't use the actor's play rate, but rather
|
||||||
# the self.playRate value since we drive the animation
|
# the self.playRate value since we drive the animation
|
||||||
# playback ourselves
|
# playback ourselves
|
||||||
self['actor'].setPlayRate(eval(rate), self['active'])
|
self['actor'].setPlayRate(eval(rate), self['active'])
|
||||||
|
@ -586,7 +586,7 @@ $[ODIR]/$[IDL_BASENAME].h : $[idl_to_gen]
|
|||||||
#define idl $[idl_to_gen]
|
#define idl $[idl_to_gen]
|
||||||
$[TAB] $[MIDL_COMMAND]
|
$[TAB] $[MIDL_COMMAND]
|
||||||
|
|
||||||
// this is a complete hack. I dont know how add a generated .h to the dependency list of $[IDL_BASENAME].cpp.
|
// this is a complete hack. I don't know how add a generated .h to the dependency list of $[IDL_BASENAME].cpp.
|
||||||
// it is already there, but in the wrong directory. should really add this to official dependency list
|
// it is already there, but in the wrong directory. should really add this to official dependency list
|
||||||
#foreach file $[GENERATED_IDL_H_DEPENDENTS]
|
#foreach file $[GENERATED_IDL_H_DEPENDENTS]
|
||||||
$[file] : $[ODIR]/$[IDL_BASENAME].h
|
$[file] : $[ODIR]/$[IDL_BASENAME].h
|
||||||
|
@ -615,7 +615,7 @@ $[osfilename $[ODIR]/$[IDL_BASENAME].h] : $[osfilename $[idl_to_gen]]
|
|||||||
#define idl $[idl_to_gen]
|
#define idl $[idl_to_gen]
|
||||||
$[TAB] $[MIDL_COMMAND]
|
$[TAB] $[MIDL_COMMAND]
|
||||||
|
|
||||||
// this is a complete hack. I dont know how add a generated .h to the dependency list of $[IDL_BASENAME].cpp.
|
// this is a complete hack. I don't know how add a generated .h to the dependency list of $[IDL_BASENAME].cpp.
|
||||||
// it is already there, but in the wrong directory. should really add this to official dependency list
|
// it is already there, but in the wrong directory. should really add this to official dependency list
|
||||||
#foreach file $[GENERATED_IDL_H_DEPENDENTS]
|
#foreach file $[GENERATED_IDL_H_DEPENDENTS]
|
||||||
$[osfilename $[file]] : $[osfilename $[ODIR]/$[IDL_BASENAME].h]
|
$[osfilename $[file]] : $[osfilename $[ODIR]/$[IDL_BASENAME].h]
|
||||||
|
@ -70,7 +70,7 @@ round_up_to_page_size(size_t size) const {
|
|||||||
// Function: MemoryHook::inflate_size
|
// Function: MemoryHook::inflate_size
|
||||||
// Access: Private, Static
|
// Access: Private, Static
|
||||||
// Description: Increments the amount of requested size as necessary
|
// Description: Increments the amount of requested size as necessary
|
||||||
// to accomodate the extra data we might piggyback on
|
// to accommodate the extra data we might piggyback on
|
||||||
// each allocated block.
|
// each allocated block.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE size_t MemoryHook::
|
INLINE size_t MemoryHook::
|
||||||
|
@ -120,7 +120,7 @@ PUBLISHED:
|
|||||||
// stop.
|
// stop.
|
||||||
// If you activate the manager while looping sounds are playing
|
// If you activate the manager while looping sounds are playing
|
||||||
// (those that have a loop_count of zero),
|
// (those that have a loop_count of zero),
|
||||||
// they will start playing from the begining of their loop.
|
// they will start playing from the beginning of their loop.
|
||||||
// inits to true.
|
// inits to true.
|
||||||
virtual void set_active(bool flag) = 0;
|
virtual void set_active(bool flag) = 0;
|
||||||
virtual bool get_active() const = 0;
|
virtual bool get_active() const = 0;
|
||||||
|
@ -27,7 +27,7 @@ class EXPCL_PANDA_AUDIO AudioSound : public TypedReferenceCount {
|
|||||||
PUBLISHED:
|
PUBLISHED:
|
||||||
virtual ~AudioSound();
|
virtual ~AudioSound();
|
||||||
|
|
||||||
// For best compatability, set the loop_count,
|
// For best compatibility, set the loop_count,
|
||||||
// volume, and balance, prior to calling play(). You may
|
// volume, and balance, prior to calling play(). You may
|
||||||
// set them while they're playing, but it's implementation
|
// set them while they're playing, but it's implementation
|
||||||
// specific whether you get the results.
|
// specific whether you get the results.
|
||||||
|
@ -19,50 +19,50 @@
|
|||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
//[FIRST READ FmodAudioManager for an Introduction if you haven't
|
// [FIRST READ FmodAudioManager for an Introduction if you haven't
|
||||||
//already].
|
// already].
|
||||||
//
|
//
|
||||||
//Hello, all future Panda audio code people! This is my errata
|
// Hello, all future Panda audio code people! This is my errata
|
||||||
//documentation to Help any future programmer maintain FMOD and PANDA.
|
// documentation to Help any future programmer maintain FMOD and PANDA.
|
||||||
//
|
//
|
||||||
//Well, if you reading this you probably want to know how PANDA deals
|
// Well, if you reading this you probably want to know how PANDA deals
|
||||||
//with sounds directly using FMOD-EX. Well I am going to tell you.
|
// with sounds directly using FMOD-EX. Well I am going to tell you.
|
||||||
//
|
//
|
||||||
//The first thing, you as the programmer have to understand,
|
// The first thing, you as the programmer have to understand,
|
||||||
//especially if you never have done sound programming before, is how
|
// especially if you never have done sound programming before, is how
|
||||||
//the FMOD-EX API works.
|
// the FMOD-EX API works.
|
||||||
//
|
//
|
||||||
//With FMOD-EX the guys at Firelight, adopted a model of managing
|
// With FMOD-EX the guys at Firelight, adopted a model of managing
|
||||||
//sounds with FMOD similar to how a Sound Designer creates sound in a
|
// sounds with FMOD similar to how a Sound Designer creates sound in a
|
||||||
//sound studio using SOUNDS and CHANNELS. Although this may seem
|
// sound studio using SOUNDS and CHANNELS. Although this may seem
|
||||||
//strange at first, if you are not familiar with sound programming,
|
// strange at first, if you are not familiar with sound programming,
|
||||||
//there is a very good metaphor you are probably already familiar with
|
// there is a very good metaphor you are probably already familiar with
|
||||||
//to explain how FMOD-EX works.
|
// to explain how FMOD-EX works.
|
||||||
//
|
//
|
||||||
//Think of you standard GUI API. Usually a GUI API is made up of two
|
// Think of you standard GUI API. Usually a GUI API is made up of two
|
||||||
//things: Windows and Widgets. These correspond to CHANNELS and
|
// things: Windows and Widgets. These correspond to CHANNELS and
|
||||||
//SOUNDS, where a Channel is a Window and a Sound is Widget. Sounds
|
// SOUNDS, where a Channel is a Window and a Sound is Widget. Sounds
|
||||||
//are played within channels, and channels don't exist unless they
|
// are played within channels, and channels don't exist unless they
|
||||||
//have something to display.
|
// have something to display.
|
||||||
//
|
//
|
||||||
//Now why am I explaining all of this? When PANDA was created they set
|
// Now why am I explaining all of this? When PANDA was created they set
|
||||||
//up the basic audio classes to handle only the idea of a SOUND. The
|
// up the basic audio classes to handle only the idea of a SOUND. The
|
||||||
//idea of a Channel really wasn't prevalent as in more modern Audio
|
// idea of a Channel really wasn't prevalent as in more modern Audio
|
||||||
//APIs. With this rewrite of PANDA to use the FMOD-EX API, the PANDA
|
// APIs. With this rewrite of PANDA to use the FMOD-EX API, the PANDA
|
||||||
//FmodAudioSound Class, now has to handle two different parts of the
|
// FmodAudioSound Class, now has to handle two different parts of the
|
||||||
//FMOD-EX API in order to play a sound.
|
// FMOD-EX API in order to play a sound.
|
||||||
//
|
//
|
||||||
//SOUND: The object the handles the audio data in form of WAV, AIF,
|
// SOUND: The object the handles the audio data in form of WAV, AIF,
|
||||||
//OGG, MID, IT, MP3, etc... And CHANNEL: The object that actually
|
// OGG, MID, IT, MP3, etc... And CHANNEL: The object that actually
|
||||||
//plays the sound and manipulates it in real time.
|
// plays the sound and manipulates it in real time.
|
||||||
//
|
//
|
||||||
//Ultimately this isn't a problem expect for a couple situations when
|
// Ultimately this isn't a problem expect for a couple situations when
|
||||||
//you go to play a sound, which I will explain in more detail in that
|
// you go to play a sound, which I will explain in more detail in that
|
||||||
//part of the code. All that you have to know right now is that
|
// part of the code. All that you have to know right now is that
|
||||||
//Channels in FMOD do not exist unless they are playing a sound. And
|
// Channels in FMOD do not exist unless they are playing a sound. And
|
||||||
//in the PANDA FmodAudioSound API class there is only ONE dedicated
|
// in the PANDA FmodAudioSound API class there is only ONE dedicated
|
||||||
//channel per sound. Otherwise there is really nothing to worry
|
// channel per sound. Otherwise there is really nothing to worry
|
||||||
//about.
|
// about.
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ -85,34 +85,34 @@ class EXPCL_FMOD_AUDIO FmodAudioSound : public AudioSound {
|
|||||||
|
|
||||||
FmodAudioSound(AudioManager *manager, Filename fn, bool positional );
|
FmodAudioSound(AudioManager *manager, Filename fn, bool positional );
|
||||||
~FmodAudioSound();
|
~FmodAudioSound();
|
||||||
|
|
||||||
// For best compatability, set the loop_count, start_time,
|
// For best compatibility, set the loop_count, start_time,
|
||||||
// volume, and balance, prior to calling play(). You may
|
// volume, and balance, prior to calling play(). You may
|
||||||
// set them while they're playing, but it's implementation
|
// set them while they're playing, but it's implementation
|
||||||
// specific whether you get the results.
|
// specific whether you get the results.
|
||||||
void play();
|
void play();
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
// loop: false = play once; true = play forever.
|
// loop: false = play once; true = play forever.
|
||||||
// inits to false.
|
// inits to false.
|
||||||
void set_loop(bool loop=true);
|
void set_loop(bool loop=true);
|
||||||
bool get_loop() const;
|
bool get_loop() const;
|
||||||
|
|
||||||
// loop_count: 0 = forever; 1 = play once; n = play n times.
|
// loop_count: 0 = forever; 1 = play once; n = play n times.
|
||||||
// inits to 1.
|
// inits to 1.
|
||||||
void set_loop_count(unsigned long loop_count=1);
|
void set_loop_count(unsigned long loop_count=1);
|
||||||
unsigned long get_loop_count() const;
|
unsigned long get_loop_count() const;
|
||||||
|
|
||||||
// 0 = begining; length() = end.
|
// 0 = beginning; length() = end.
|
||||||
// inits to 0.0.
|
// inits to 0.0.
|
||||||
void set_time(float start_time=0.0);
|
void set_time(float start_time=0.0);
|
||||||
float get_time() const;
|
float get_time() const;
|
||||||
|
|
||||||
// 0 = minimum; 1.0 = maximum.
|
// 0 = minimum; 1.0 = maximum.
|
||||||
// inits to 1.0.
|
// inits to 1.0.
|
||||||
void set_volume(float volume=1.0);
|
void set_volume(float volume=1.0);
|
||||||
float get_volume() const;
|
float get_volume() const;
|
||||||
|
|
||||||
// -1.0 is hard left
|
// -1.0 is hard left
|
||||||
// 0.0 is centered
|
// 0.0 is centered
|
||||||
// 1.0 is hard right
|
// 1.0 is hard right
|
||||||
@ -126,7 +126,7 @@ class EXPCL_FMOD_AUDIO FmodAudioSound : public AudioSound {
|
|||||||
float get_play_rate() const;
|
float get_play_rate() const;
|
||||||
|
|
||||||
const string &get_name() const;
|
const string &get_name() const;
|
||||||
|
|
||||||
// return: playing time in seconds.
|
// return: playing time in seconds.
|
||||||
float length() const;
|
float length() const;
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ class EXPCL_FMOD_AUDIO FmodAudioSound : public AudioSound {
|
|||||||
|
|
||||||
void set_3d_max_distance(float dist);
|
void set_3d_max_distance(float dist);
|
||||||
float get_3d_max_distance() const;
|
float get_3d_max_distance() const;
|
||||||
|
|
||||||
AudioSound::SoundStatus status() const;
|
AudioSound::SoundStatus status() const;
|
||||||
|
|
||||||
virtual float get_speaker_mix(AudioManager::SpeakerId speaker);
|
virtual float get_speaker_mix(AudioManager::SpeakerId speaker);
|
||||||
@ -189,11 +189,11 @@ class EXPCL_FMOD_AUDIO FmodAudioSound : public AudioSound {
|
|||||||
|
|
||||||
virtual int get_priority();
|
virtual int get_priority();
|
||||||
virtual void set_priority(int priority);
|
virtual void set_priority(int priority);
|
||||||
|
|
||||||
bool _active;
|
bool _active;
|
||||||
bool _paused;
|
bool _paused;
|
||||||
float _start_time;
|
float _start_time;
|
||||||
|
|
||||||
string _finished_event;
|
string _finished_event;
|
||||||
|
|
||||||
// This reference-counting pointer is set to this while the sound is
|
// This reference-counting pointer is set to this while the sound is
|
||||||
@ -225,7 +225,7 @@ class EXPCL_FMOD_AUDIO FmodAudioSound : public AudioSound {
|
|||||||
return get_class_type();
|
return get_class_type();
|
||||||
}
|
}
|
||||||
virtual TypeHandle force_init_type() {
|
virtual TypeHandle force_init_type() {
|
||||||
init_type();
|
init_type();
|
||||||
return get_class_type();
|
return get_class_type();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,34 +41,34 @@ class EXPCL_OPENAL_AUDIO OpenALAudioSound : public AudioSound {
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
~OpenALAudioSound();
|
~OpenALAudioSound();
|
||||||
|
|
||||||
// For best compatability, set the loop_count, start_time,
|
// For best compatibility, set the loop_count, start_time,
|
||||||
// volume, and balance, prior to calling play(). You may
|
// volume, and balance, prior to calling play(). You may
|
||||||
// set them while they're playing, but it's implementation
|
// set them while they're playing, but it's implementation
|
||||||
// specific whether you get the results.
|
// specific whether you get the results.
|
||||||
void play();
|
void play();
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
// loop: false = play once; true = play forever.
|
// loop: false = play once; true = play forever.
|
||||||
// inits to false.
|
// inits to false.
|
||||||
void set_loop(bool loop=true);
|
void set_loop(bool loop=true);
|
||||||
bool get_loop() const;
|
bool get_loop() const;
|
||||||
|
|
||||||
// loop_count: 0 = forever; 1 = play once; n = play n times.
|
// loop_count: 0 = forever; 1 = play once; n = play n times.
|
||||||
// inits to 1.
|
// inits to 1.
|
||||||
void set_loop_count(unsigned long loop_count=1);
|
void set_loop_count(unsigned long loop_count=1);
|
||||||
unsigned long get_loop_count() const;
|
unsigned long get_loop_count() const;
|
||||||
|
|
||||||
// 0 = begining; length() = end.
|
// 0 = beginning; length() = end.
|
||||||
// inits to 0.0.
|
// inits to 0.0.
|
||||||
void set_time(float time=0.0);
|
void set_time(float time=0.0);
|
||||||
float get_time() const;
|
float get_time() const;
|
||||||
|
|
||||||
// 0 = minimum; 1.0 = maximum.
|
// 0 = minimum; 1.0 = maximum.
|
||||||
// inits to 1.0.
|
// inits to 1.0.
|
||||||
void set_volume(float volume=1.0);
|
void set_volume(float volume=1.0);
|
||||||
float get_volume() const;
|
float get_volume() const;
|
||||||
|
|
||||||
// -1.0 is hard left
|
// -1.0 is hard left
|
||||||
// 0.0 is centered
|
// 0.0 is centered
|
||||||
// 1.0 is hard right
|
// 1.0 is hard right
|
||||||
@ -92,7 +92,7 @@ public:
|
|||||||
const string& get_finished_event() const;
|
const string& get_finished_event() const;
|
||||||
|
|
||||||
const string &get_name() const;
|
const string &get_name() const;
|
||||||
|
|
||||||
// return: playing time in seconds.
|
// return: playing time in seconds.
|
||||||
float length() const;
|
float length() const;
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ public:
|
|||||||
|
|
||||||
void set_3d_max_distance(float dist);
|
void set_3d_max_distance(float dist);
|
||||||
float get_3d_max_distance() const;
|
float get_3d_max_distance() const;
|
||||||
|
|
||||||
void set_3d_drop_off_factor(float factor);
|
void set_3d_drop_off_factor(float factor);
|
||||||
float get_3d_drop_off_factor() const;
|
float get_3d_drop_off_factor() const;
|
||||||
|
|
||||||
@ -134,11 +134,11 @@ private:
|
|||||||
void push_fresh_buffers();
|
void push_fresh_buffers();
|
||||||
INLINE void require_sound_data();
|
INLINE void require_sound_data();
|
||||||
INLINE void release_sound_data();
|
INLINE void release_sound_data();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void do_stop();
|
void do_stop();
|
||||||
|
|
||||||
PT(MovieAudio) _movie;
|
PT(MovieAudio) _movie;
|
||||||
OpenALAudioManager::SoundData *_sd;
|
OpenALAudioManager::SoundData *_sd;
|
||||||
|
|
||||||
@ -151,17 +151,17 @@ private:
|
|||||||
|
|
||||||
int _playing_loops;
|
int _playing_loops;
|
||||||
float _playing_rate;
|
float _playing_rate;
|
||||||
|
|
||||||
pdeque<QueuedBuffer> _stream_queued;
|
pdeque<QueuedBuffer> _stream_queued;
|
||||||
int _loops_completed;
|
int _loops_completed;
|
||||||
|
|
||||||
ALuint _source;
|
ALuint _source;
|
||||||
PT(OpenALAudioManager) _manager;
|
PT(OpenALAudioManager) _manager;
|
||||||
|
|
||||||
float _volume; // 0..1.0
|
float _volume; // 0..1.0
|
||||||
float _balance; // -1..1
|
float _balance; // -1..1
|
||||||
float _play_rate; // 0..1.0
|
float _play_rate; // 0..1.0
|
||||||
|
|
||||||
bool _positional;
|
bool _positional;
|
||||||
ALfloat _location[3];
|
ALfloat _location[3];
|
||||||
ALfloat _velocity[3];
|
ALfloat _velocity[3];
|
||||||
@ -169,7 +169,7 @@ private:
|
|||||||
float _min_dist;
|
float _min_dist;
|
||||||
float _max_dist;
|
float _max_dist;
|
||||||
float _drop_off_factor;
|
float _drop_off_factor;
|
||||||
|
|
||||||
double _length;
|
double _length;
|
||||||
int _loop_count;
|
int _loop_count;
|
||||||
|
|
||||||
@ -177,11 +177,11 @@ private:
|
|||||||
|
|
||||||
// The calibrated clock is initialized when the
|
// The calibrated clock is initialized when the
|
||||||
// sound starts playing, and is periodically corrected
|
// sound starts playing, and is periodically corrected
|
||||||
// thereafter.
|
// thereafter.
|
||||||
double _calibrated_clock_base;
|
double _calibrated_clock_base;
|
||||||
double _calibrated_clock_scale;
|
double _calibrated_clock_scale;
|
||||||
double _calibrated_clock_decavg;
|
double _calibrated_clock_decavg;
|
||||||
|
|
||||||
// The start_time field affects the next call to play.
|
// The start_time field affects the next call to play.
|
||||||
double _start_time;
|
double _start_time;
|
||||||
|
|
||||||
@ -190,12 +190,12 @@ private:
|
|||||||
// to be atomic, because get_time can be called
|
// to be atomic, because get_time can be called
|
||||||
// in the cull thread.
|
// in the cull thread.
|
||||||
float _current_time;
|
float _current_time;
|
||||||
|
|
||||||
// This is the string that throw_event() will throw
|
// This is the string that throw_event() will throw
|
||||||
// when the sound finishes playing. It is not triggered
|
// when the sound finishes playing. It is not triggered
|
||||||
// when the sound is stopped with stop().
|
// when the sound is stopped with stop().
|
||||||
string _finished_event;
|
string _finished_event;
|
||||||
|
|
||||||
Filename _basename;
|
Filename _basename;
|
||||||
|
|
||||||
// _active is for things like a 'turn off sound effects' in
|
// _active is for things like a 'turn off sound effects' in
|
||||||
@ -204,7 +204,7 @@ private:
|
|||||||
// Use status() for info on whether the sound is playing.
|
// Use status() for info on whether the sound is playing.
|
||||||
bool _active;
|
bool _active;
|
||||||
bool _paused;
|
bool _paused;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static TypeHandle get_class_type() {
|
static TypeHandle get_class_type() {
|
||||||
return _type_handle;
|
return _type_handle;
|
||||||
@ -217,7 +217,7 @@ private:
|
|||||||
return get_class_type();
|
return get_class_type();
|
||||||
}
|
}
|
||||||
virtual TypeHandle force_init_type() {
|
virtual TypeHandle force_init_type() {
|
||||||
init_type();
|
init_type();
|
||||||
return get_class_type();
|
return get_class_type();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,8 +234,3 @@ private:
|
|||||||
#endif //]
|
#endif //]
|
||||||
|
|
||||||
#endif /* __OPENAL_AUDIO_SOUND_H__ */
|
#endif /* __OPENAL_AUDIO_SOUND_H__ */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ get_proxy_realm() const {
|
|||||||
// series), this will generally contain the new URL the
|
// series), this will generally contain the new URL the
|
||||||
// server wants us to try. In many cases, the client
|
// server wants us to try. In many cases, the client
|
||||||
// will automatically follow redirects; if these are
|
// will automatically follow redirects; if these are
|
||||||
// succesful the client will return a successful code
|
// successful the client will return a successful code
|
||||||
// and get_redirect() will return empty, but get_url()
|
// and get_redirect() will return empty, but get_url()
|
||||||
// will return the new, redirected URL.
|
// will return the new, redirected URL.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -1007,7 +1007,7 @@ get_bytes_requested() const {
|
|||||||
// transmission.
|
// transmission.
|
||||||
//
|
//
|
||||||
// Note that simply testing is_download_complete() does
|
// Note that simply testing is_download_complete() does
|
||||||
// not prove that the requested document was succesfully
|
// not prove that the requested document was successfully
|
||||||
// retrieved--you might have just downloaded the "404
|
// retrieved--you might have just downloaded the "404
|
||||||
// not found" stub (for instance) that a server would
|
// not found" stub (for instance) that a server would
|
||||||
// provide in response to some error condition. You
|
// provide in response to some error condition. You
|
||||||
|
@ -261,7 +261,7 @@ HTTPClient::
|
|||||||
// Description: This may be called once, presumably at the beginning
|
// Description: This may be called once, presumably at the beginning
|
||||||
// of an application, to initialize OpenSSL's random
|
// of an application, to initialize OpenSSL's random
|
||||||
// seed. On Windows, it is particularly important to
|
// seed. On Windows, it is particularly important to
|
||||||
// call this at startup if you are going to be perfoming
|
// call this at startup if you are going to be performing
|
||||||
// any https operations or otherwise use encryption,
|
// any https operations or otherwise use encryption,
|
||||||
// since the Windows algorithm for getting a random seed
|
// since the Windows algorithm for getting a random seed
|
||||||
// takes 2-3 seconds at startup, but can take 30 seconds
|
// takes 2-3 seconds at startup, but can take 30 seconds
|
||||||
|
@ -26,7 +26,7 @@ Colorf_to_D3DCOLOR(const Colorf &cColorf) {
|
|||||||
DWORD d3dcolor, tempcolorval=255;
|
DWORD d3dcolor, tempcolorval=255;
|
||||||
|
|
||||||
// note the default FPU rounding mode will give 255*0.5f=0x80, not 0x7F as VC would force it to by resetting rounding mode
|
// note the default FPU rounding mode will give 255*0.5f=0x80, not 0x7F as VC would force it to by resetting rounding mode
|
||||||
// dont think this makes much difference
|
// don't think this makes much difference
|
||||||
|
|
||||||
__asm {
|
__asm {
|
||||||
push ebx ; want to save this in case this fn is inlined
|
push ebx ; want to save this in case this fn is inlined
|
||||||
|
@ -3276,7 +3276,7 @@ free_nondx_resources() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void DXGraphicsStateGuardian8::
|
void DXGraphicsStateGuardian8::
|
||||||
free_d3d_device() {
|
free_d3d_device() {
|
||||||
// dont want a full reset of gsg, just a state clear
|
// don't want a full reset of gsg, just a state clear
|
||||||
_state_rs = RenderState::make_empty();
|
_state_rs = RenderState::make_empty();
|
||||||
_state_mask.clear();
|
_state_mask.clear();
|
||||||
|
|
||||||
@ -3295,7 +3295,7 @@ free_d3d_device() {
|
|||||||
|
|
||||||
free_nondx_resources();
|
free_nondx_resources();
|
||||||
|
|
||||||
// obviously we dont release ID3D8, just ID3DDevice8
|
// obviously we don't release ID3D8, just ID3DDevice8
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -59,7 +59,7 @@ bool DInput8Info::InitDirectInput() {
|
|||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
// assumes dx8 exists
|
// assumes dx8 exists
|
||||||
// use dynamic load so non-dinput programs dont have to load dinput
|
// use dynamic load so non-dinput programs don't have to load dinput
|
||||||
#define DLLNAME "dinput8.dll"
|
#define DLLNAME "dinput8.dll"
|
||||||
#define DINPUTCREATE "DirectInput8Create"
|
#define DINPUTCREATE "DirectInput8Create"
|
||||||
|
|
||||||
|
@ -478,7 +478,7 @@ create_texture(DXScreenData &scrn) {
|
|||||||
} else {
|
} else {
|
||||||
nassertr((num_color_channels == 3)||(num_color_channels == 4), false);
|
nassertr((num_color_channels == 3)||(num_color_channels == 4), false);
|
||||||
// look for compatible 16bit fmts, if none then give up
|
// look for compatible 16bit fmts, if none then give up
|
||||||
// (dont worry about other bitdepths for 16 bit)
|
// (don't worry about other bitdepths for 16 bit)
|
||||||
switch(num_alpha_bits) {
|
switch(num_alpha_bits) {
|
||||||
case 0:
|
case 0:
|
||||||
if (num_color_channels == 3) {
|
if (num_color_channels == 3) {
|
||||||
@ -511,7 +511,7 @@ create_texture(DXScreenData &scrn) {
|
|||||||
}
|
}
|
||||||
case 8:
|
case 8:
|
||||||
if (needs_luminance) {
|
if (needs_luminance) {
|
||||||
// dont bother handling those other 8bit lum fmts like 4-4,
|
// don't bother handling those other 8bit lum fmts like 4-4,
|
||||||
// since 16 8-8 is usually supported too
|
// since 16 8-8 is usually supported too
|
||||||
nassertr(num_color_channels == 1, false);
|
nassertr(num_color_channels == 1, false);
|
||||||
|
|
||||||
@ -663,7 +663,7 @@ create_texture(DXScreenData &scrn) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Texture::FT_nearest_mipmap_linear:
|
case Texture::FT_nearest_mipmap_linear:
|
||||||
// if we dont have bilinear, do nearest_nearest
|
// if we don't have bilinear, do nearest_nearest
|
||||||
if (!((filter_caps & D3DPTFILTERCAPS_MIPFPOINT) &&
|
if (!((filter_caps & D3DPTFILTERCAPS_MIPFPOINT) &&
|
||||||
(filter_caps & D3DPTFILTERCAPS_MINFLINEAR))) {
|
(filter_caps & D3DPTFILTERCAPS_MINFLINEAR))) {
|
||||||
ft = Texture::FT_nearest_mipmap_nearest;
|
ft = Texture::FT_nearest_mipmap_nearest;
|
||||||
@ -671,7 +671,7 @@ create_texture(DXScreenData &scrn) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Texture::FT_linear_mipmap_nearest:
|
case Texture::FT_linear_mipmap_nearest:
|
||||||
// if we dont have mip linear, do nearest_nearest
|
// if we don't have mip linear, do nearest_nearest
|
||||||
if (!(filter_caps & D3DPTFILTERCAPS_MIPFLINEAR)) {
|
if (!(filter_caps & D3DPTFILTERCAPS_MIPFLINEAR)) {
|
||||||
ft = Texture::FT_nearest_mipmap_nearest;
|
ft = Texture::FT_nearest_mipmap_nearest;
|
||||||
}
|
}
|
||||||
@ -905,7 +905,7 @@ create_simple_texture(DXScreenData &scrn) {
|
|||||||
void DXTextureContext8::
|
void DXTextureContext8::
|
||||||
delete_texture() {
|
delete_texture() {
|
||||||
if (_d3d_texture == NULL) {
|
if (_d3d_texture == NULL) {
|
||||||
// dont bother printing the msg below, since we already released it.
|
// don't bother printing the msg below, since we already released it.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ struct DXScreenData {
|
|||||||
DWORD _max_available_video_memory;
|
DWORD _max_available_video_memory;
|
||||||
ushort _card_id; // adapter ID
|
ushort _card_id; // adapter ID
|
||||||
ushort _depth_buffer_bitdepth; //GetSurfaceDesc is not reliable so must store this explicitly
|
ushort _depth_buffer_bitdepth; //GetSurfaceDesc is not reliable so must store this explicitly
|
||||||
bool _can_direct_disable_color_writes; // if true, dont need blending for this
|
bool _can_direct_disable_color_writes; // if true, don't need blending for this
|
||||||
bool _is_low_memory_card;
|
bool _is_low_memory_card;
|
||||||
bool _is_tnl_device;
|
bool _is_tnl_device;
|
||||||
bool _can_use_hw_vertex_shaders;
|
bool _can_use_hw_vertex_shaders;
|
||||||
|
@ -303,7 +303,7 @@ find_all_card_memavails() {
|
|||||||
|
|
||||||
// Get Current VidMem avail. Note this is only an estimate, when
|
// Get Current VidMem avail. Note this is only an estimate, when
|
||||||
// we switch to fullscreen mode from desktop, more vidmem will be
|
// we switch to fullscreen mode from desktop, more vidmem will be
|
||||||
// available (typically 1.2 meg). I dont want to switch to
|
// available (typically 1.2 meg). I don't want to switch to
|
||||||
// fullscreen more than once due to the annoying monitor flicker,
|
// fullscreen more than once due to the annoying monitor flicker,
|
||||||
// so try to figure out optimal mode using this estimate
|
// so try to figure out optimal mode using this estimate
|
||||||
DDSCAPS2 ddsGAVMCaps;
|
DDSCAPS2 ddsGAVMCaps;
|
||||||
@ -593,7 +593,7 @@ search_for_valid_displaymode(DXScreenData &scrn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ignore memory based checks for min res 640x480. some cards just
|
// ignore memory based checks for min res 640x480. some cards just
|
||||||
// dont give accurate memavails. (should I do the check anyway for
|
// don't give accurate memavails. (should I do the check anyway for
|
||||||
// 640x480 32bpp?)
|
// 640x480 32bpp?)
|
||||||
bool bDoMemBasedChecks =
|
bool bDoMemBasedChecks =
|
||||||
((!((RequestedX_Size == 640)&&(RequestedY_Size == 480))) &&
|
((!((RequestedX_Size == 640)&&(RequestedY_Size == 480))) &&
|
||||||
@ -630,7 +630,7 @@ search_for_valid_displaymode(DXScreenData &scrn,
|
|||||||
// refresh rates less than 60
|
// refresh rates less than 60
|
||||||
if (0) {
|
if (0) {
|
||||||
if ((dispmode.RefreshRate<60) && (dispmode.RefreshRate>1)) {
|
if ((dispmode.RefreshRate<60) && (dispmode.RefreshRate>1)) {
|
||||||
// dont want refresh rates under 60Hz, but 0 or 1 might indicate
|
// don't want refresh rates under 60Hz, but 0 or 1 might indicate
|
||||||
// a default refresh rate, which is usually > = 60
|
// a default refresh rate, which is usually > = 60
|
||||||
if (bVerboseMode) {
|
if (bVerboseMode) {
|
||||||
wdxdisplay8_cat.info()
|
wdxdisplay8_cat.info()
|
||||||
|
@ -44,7 +44,7 @@ wdxGraphicsWindow8(GraphicsEngine *engine, GraphicsPipe *pipe,
|
|||||||
GraphicsOutput *host):
|
GraphicsOutput *host):
|
||||||
WinGraphicsWindow(engine, pipe, name, fb_prop, win_prop, flags, gsg, host)
|
WinGraphicsWindow(engine, pipe, name, fb_prop, win_prop, flags, gsg, host)
|
||||||
{
|
{
|
||||||
// dont actually create the window in the constructor. reason:
|
// don't actually create the window in the constructor. reason:
|
||||||
// multi-threading requires panda C++ window object to exist in
|
// multi-threading requires panda C++ window object to exist in
|
||||||
// separate thread from actual API window
|
// separate thread from actual API window
|
||||||
|
|
||||||
@ -553,7 +553,7 @@ create_screen_buffers_and_device(DXScreenData &display, bool force_16bpp_zbuffer
|
|||||||
nassertr(_d3d8 != NULL, false);
|
nassertr(_d3d8 != NULL, false);
|
||||||
nassertr(pD3DCaps->DevCaps & D3DDEVCAPS_HWRASTERIZATION, false);
|
nassertr(pD3DCaps->DevCaps & D3DDEVCAPS_HWRASTERIZATION, false);
|
||||||
|
|
||||||
presentation_params->BackBufferFormat = display._display_mode.Format; // dont need dest alpha, so just use adapter format
|
presentation_params->BackBufferFormat = display._display_mode.Format; // don't need dest alpha, so just use adapter format
|
||||||
cerr << "attempting " << D3DFormatStr(presentation_params->BackBufferFormat) << "\n";
|
cerr << "attempting " << D3DFormatStr(presentation_params->BackBufferFormat) << "\n";
|
||||||
|
|
||||||
bool do_sync = sync_video;
|
bool do_sync = sync_video;
|
||||||
@ -650,7 +650,7 @@ create_screen_buffers_and_device(DXScreenData &display, bool force_16bpp_zbuffer
|
|||||||
if (is_fullscreen()) {
|
if (is_fullscreen()) {
|
||||||
// CREATE FULLSCREEN BUFFERS
|
// CREATE FULLSCREEN BUFFERS
|
||||||
|
|
||||||
presentation_params->SwapEffect = D3DSWAPEFFECT_DISCARD; // we dont care about preserving contents of old frame
|
presentation_params->SwapEffect = D3DSWAPEFFECT_DISCARD; // we don't care about preserving contents of old frame
|
||||||
presentation_params->FullScreen_PresentationInterval = (do_sync ? D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE);
|
presentation_params->FullScreen_PresentationInterval = (do_sync ? D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE);
|
||||||
presentation_params->FullScreen_RefreshRateInHz = display._display_mode.RefreshRate;
|
presentation_params->FullScreen_RefreshRateInHz = display._display_mode.RefreshRate;
|
||||||
|
|
||||||
@ -1236,7 +1236,7 @@ D3DFMT_to_DepthBits(D3DFORMAT fmt) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
bool wdxGraphicsWindow8::
|
bool wdxGraphicsWindow8::
|
||||||
is_badvidmem_card(D3DADAPTER_IDENTIFIER8 *pDevID) {
|
is_badvidmem_card(D3DADAPTER_IDENTIFIER8 *pDevID) {
|
||||||
// dont trust Intel cards since they often use regular memory as vidmem
|
// don't trust Intel cards since they often use regular memory as vidmem
|
||||||
if (pDevID->VendorId == 0x00008086) {
|
if (pDevID->VendorId == 0x00008086) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ Colorf_to_D3DCOLOR(const Colorf &cColorf) {
|
|||||||
DWORD d3dcolor, tempcolorval=255;
|
DWORD d3dcolor, tempcolorval=255;
|
||||||
|
|
||||||
// note the default FPU rounding mode will give 255*0.5f=0x80, not 0x7F as VC would force it to by resetting rounding mode
|
// note the default FPU rounding mode will give 255*0.5f=0x80, not 0x7F as VC would force it to by resetting rounding mode
|
||||||
// dont think this makes much difference
|
// don't think this makes much difference
|
||||||
|
|
||||||
__asm {
|
__asm {
|
||||||
push ebx ; want to save this in case this fn is inlined
|
push ebx ; want to save this in case this fn is inlined
|
||||||
|
@ -4211,7 +4211,7 @@ free_nondx_resources() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void DXGraphicsStateGuardian9::
|
void DXGraphicsStateGuardian9::
|
||||||
free_d3d_device() {
|
free_d3d_device() {
|
||||||
// dont want a full reset of gsg, just a state clear
|
// don't want a full reset of gsg, just a state clear
|
||||||
_state_rs = RenderState::make_empty();
|
_state_rs = RenderState::make_empty();
|
||||||
_state_mask.clear();
|
_state_mask.clear();
|
||||||
|
|
||||||
@ -4234,7 +4234,7 @@ free_d3d_device() {
|
|||||||
|
|
||||||
free_nondx_resources();
|
free_nondx_resources();
|
||||||
|
|
||||||
// obviously we dont release ID3D9, just ID3DDevice9
|
// obviously we don't release ID3D9, just ID3DDevice9
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -59,7 +59,7 @@ bool DInput9Info::InitDirectInput() {
|
|||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
// assumes dx9 exists
|
// assumes dx9 exists
|
||||||
// use dynamic load so non-dinput programs dont have to load dinput
|
// use dynamic load so non-dinput programs don't have to load dinput
|
||||||
#define DLLNAME "dinput9.dll"
|
#define DLLNAME "dinput9.dll"
|
||||||
#define DINPUTCREATE "DirectInput9Create"
|
#define DINPUTCREATE "DirectInput9Create"
|
||||||
|
|
||||||
|
@ -527,7 +527,7 @@ create_texture(DXScreenData &scrn) {
|
|||||||
} else {
|
} else {
|
||||||
nassertr((num_color_channels == 3)||(num_color_channels == 4), false);
|
nassertr((num_color_channels == 3)||(num_color_channels == 4), false);
|
||||||
// look for compatible 16bit fmts, if none then give up
|
// look for compatible 16bit fmts, if none then give up
|
||||||
// (dont worry about other bitdepths for 16 bit)
|
// (don't worry about other bitdepths for 16 bit)
|
||||||
switch(num_alpha_bits) {
|
switch(num_alpha_bits) {
|
||||||
case 0:
|
case 0:
|
||||||
if (num_color_channels == 3) {
|
if (num_color_channels == 3) {
|
||||||
@ -560,7 +560,7 @@ create_texture(DXScreenData &scrn) {
|
|||||||
}
|
}
|
||||||
case 8:
|
case 8:
|
||||||
if (needs_luminance) {
|
if (needs_luminance) {
|
||||||
// dont bother handling those other 8bit lum fmts like 4-4,
|
// don't bother handling those other 8bit lum fmts like 4-4,
|
||||||
// since 16 8-8 is usually supported too
|
// since 16 8-8 is usually supported too
|
||||||
nassertr(num_color_channels == 1, false);
|
nassertr(num_color_channels == 1, false);
|
||||||
|
|
||||||
@ -715,7 +715,7 @@ create_texture(DXScreenData &scrn) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Texture::FT_nearest_mipmap_linear:
|
case Texture::FT_nearest_mipmap_linear:
|
||||||
// if we dont have bilinear, do nearest_nearest
|
// if we don't have bilinear, do nearest_nearest
|
||||||
if (!((filter_caps & D3DPTFILTERCAPS_MIPFPOINT) &&
|
if (!((filter_caps & D3DPTFILTERCAPS_MIPFPOINT) &&
|
||||||
(filter_caps & D3DPTFILTERCAPS_MINFLINEAR))) {
|
(filter_caps & D3DPTFILTERCAPS_MINFLINEAR))) {
|
||||||
ft = Texture::FT_nearest_mipmap_nearest;
|
ft = Texture::FT_nearest_mipmap_nearest;
|
||||||
@ -723,7 +723,7 @@ create_texture(DXScreenData &scrn) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Texture::FT_linear_mipmap_nearest:
|
case Texture::FT_linear_mipmap_nearest:
|
||||||
// if we dont have mip linear, do nearest_nearest
|
// if we don't have mip linear, do nearest_nearest
|
||||||
if (!(filter_caps & D3DPTFILTERCAPS_MIPFLINEAR)) {
|
if (!(filter_caps & D3DPTFILTERCAPS_MIPFLINEAR)) {
|
||||||
ft = Texture::FT_nearest_mipmap_nearest;
|
ft = Texture::FT_nearest_mipmap_nearest;
|
||||||
}
|
}
|
||||||
@ -1060,7 +1060,7 @@ void DXTextureContext9::
|
|||||||
delete_texture() {
|
delete_texture() {
|
||||||
|
|
||||||
if (_d3d_texture == NULL) {
|
if (_d3d_texture == NULL) {
|
||||||
// dont bother printing the msg below, since we already released it.
|
// don't bother printing the msg below, since we already released it.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ struct DXScreenData {
|
|||||||
DWORD _max_available_video_memory;
|
DWORD _max_available_video_memory;
|
||||||
ushort _card_id; // adapter ID
|
ushort _card_id; // adapter ID
|
||||||
ushort _depth_buffer_bitdepth; //GetSurfaceDesc is not reliable so must store this explicitly
|
ushort _depth_buffer_bitdepth; //GetSurfaceDesc is not reliable so must store this explicitly
|
||||||
bool _can_direct_disable_color_writes; // if true, dont need blending for this
|
bool _can_direct_disable_color_writes; // if true, don't need blending for this
|
||||||
bool _is_low_memory_card;
|
bool _is_low_memory_card;
|
||||||
bool _is_tnl_device;
|
bool _is_tnl_device;
|
||||||
bool _can_use_hw_vertex_shaders;
|
bool _can_use_hw_vertex_shaders;
|
||||||
|
@ -305,7 +305,7 @@ find_all_card_memavails() {
|
|||||||
|
|
||||||
// Get Current VidMem avail. Note this is only an estimate, when
|
// Get Current VidMem avail. Note this is only an estimate, when
|
||||||
// we switch to fullscreen mode from desktop, more vidmem will be
|
// we switch to fullscreen mode from desktop, more vidmem will be
|
||||||
// available (typically 1.2 meg). I dont want to switch to
|
// available (typically 1.2 meg). I don't want to switch to
|
||||||
// fullscreen more than once due to the annoying monitor flicker,
|
// fullscreen more than once due to the annoying monitor flicker,
|
||||||
// so try to figure out optimal mode using this estimate
|
// so try to figure out optimal mode using this estimate
|
||||||
DDSCAPS2 ddsGAVMCaps;
|
DDSCAPS2 ddsGAVMCaps;
|
||||||
@ -618,7 +618,7 @@ search_for_valid_displaymode(DXScreenData &scrn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ignore memory based checks for min res 640x480. some cards just
|
// ignore memory based checks for min res 640x480. some cards just
|
||||||
// dont give accurate memavails. (should I do the check anyway for
|
// don't give accurate memavails. (should I do the check anyway for
|
||||||
// 640x480 32bpp?)
|
// 640x480 32bpp?)
|
||||||
bool bDoMemBasedChecks =
|
bool bDoMemBasedChecks =
|
||||||
((!((RequestedX_Size == 640)&&(RequestedY_Size == 480))) &&
|
((!((RequestedX_Size == 640)&&(RequestedY_Size == 480))) &&
|
||||||
@ -655,7 +655,7 @@ search_for_valid_displaymode(DXScreenData &scrn,
|
|||||||
// refresh rates less than 60
|
// refresh rates less than 60
|
||||||
if (0) {
|
if (0) {
|
||||||
if ((dispmode.RefreshRate<60) && (dispmode.RefreshRate>1)) {
|
if ((dispmode.RefreshRate<60) && (dispmode.RefreshRate>1)) {
|
||||||
// dont want refresh rates under 60Hz, but 0 or 1 might indicate
|
// don't want refresh rates under 60Hz, but 0 or 1 might indicate
|
||||||
// a default refresh rate, which is usually > = 60
|
// a default refresh rate, which is usually > = 60
|
||||||
if (bVerboseMode) {
|
if (bVerboseMode) {
|
||||||
wdxdisplay9_cat.info()
|
wdxdisplay9_cat.info()
|
||||||
|
@ -44,7 +44,7 @@ wdxGraphicsWindow9(GraphicsEngine *engine, GraphicsPipe *pipe,
|
|||||||
GraphicsOutput *host):
|
GraphicsOutput *host):
|
||||||
WinGraphicsWindow(engine, pipe, name, fb_prop, win_prop, flags, gsg, host)
|
WinGraphicsWindow(engine, pipe, name, fb_prop, win_prop, flags, gsg, host)
|
||||||
{
|
{
|
||||||
// dont actually create the window in the constructor. reason:
|
// don't actually create the window in the constructor. reason:
|
||||||
// multi-threading requires panda C++ window object to exist in
|
// multi-threading requires panda C++ window object to exist in
|
||||||
// separate thread from actual API window
|
// separate thread from actual API window
|
||||||
|
|
||||||
@ -709,7 +709,7 @@ create_screen_buffers_and_device(DXScreenData &display, bool force_16bpp_zbuffer
|
|||||||
if (is_fullscreen()) {
|
if (is_fullscreen()) {
|
||||||
// CREATE FULLSCREEN BUFFERS
|
// CREATE FULLSCREEN BUFFERS
|
||||||
|
|
||||||
presentation_params->SwapEffect = D3DSWAPEFFECT_DISCARD; // we dont care about preserving contents of old frame
|
presentation_params->SwapEffect = D3DSWAPEFFECT_DISCARD; // we don't care about preserving contents of old frame
|
||||||
presentation_params->PresentationInterval = (do_sync ? D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE);
|
presentation_params->PresentationInterval = (do_sync ? D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE);
|
||||||
presentation_params->FullScreen_RefreshRateInHz = display._display_mode.RefreshRate;
|
presentation_params->FullScreen_RefreshRateInHz = display._display_mode.RefreshRate;
|
||||||
|
|
||||||
@ -1332,7 +1332,7 @@ D3DFMT_to_DepthBits(D3DFORMAT fmt) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
bool wdxGraphicsWindow9::
|
bool wdxGraphicsWindow9::
|
||||||
is_badvidmem_card(D3DADAPTER_IDENTIFIER9 *pDevID) {
|
is_badvidmem_card(D3DADAPTER_IDENTIFIER9 *pDevID) {
|
||||||
// dont trust Intel cards since they often use regular memory as vidmem
|
// don't trust Intel cards since they often use regular memory as vidmem
|
||||||
if (pDevID->VendorId == 0x00008086) {
|
if (pDevID->VendorId == 0x00008086) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ get_manager() const {
|
|||||||
// added will not affect the task's wake time; it will
|
// added will not affect the task's wake time; it will
|
||||||
// only affect the task if it is re-added to the queue
|
// only affect the task if it is re-added to the queue
|
||||||
// in the future, for instance if the task returns
|
// in the future, for instance if the task returns
|
||||||
// DS_again. Howver, see recalc_wake_time() if you wish
|
// DS_again. However, see recalc_wake_time() if you wish
|
||||||
// to apply the delay effect immediately.
|
// to apply the delay effect immediately.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void AsyncTask::
|
INLINE void AsyncTask::
|
||||||
|
@ -60,7 +60,7 @@ operator = (const DatagramIterator ©) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: DatagramIterator::assign
|
// Function: DatagramIterator::assign
|
||||||
// Access: Public
|
// Access: Public
|
||||||
// Description: direct Assigment to a Datagram
|
// Description: direct Assignment to a Datagram
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void DatagramIterator::assign(Datagram &datagram, size_t offset)
|
INLINE void DatagramIterator::assign(Datagram &datagram, size_t offset)
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ Entry(const Entry ©) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: MemoryUsagePointers::Entry::Copy Assigment Operator
|
// Function: MemoryUsagePointers::Entry::Copy Assignment Operator
|
||||||
// Access: Public
|
// Access: Public
|
||||||
// Description:
|
// Description:
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -137,7 +137,7 @@ void MeshDrawer::end() {
|
|||||||
_vertex->add_data3f(0,0,0);
|
_vertex->add_data3f(0,0,0);
|
||||||
_vertex->add_data3f(0,0,0);
|
_vertex->add_data3f(0,0,0);
|
||||||
}
|
}
|
||||||
// dont clear more then you have too
|
// don't clear more then you have too
|
||||||
_last_clear_index = _clear_index;
|
_last_clear_index = _clear_index;
|
||||||
|
|
||||||
// delete the re writers
|
// delete the re writers
|
||||||
|
@ -88,7 +88,7 @@ void MeshDrawer2D::generator(int budget) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: MeshDrawer2D::begin
|
// Function: MeshDrawer2D::begin
|
||||||
// Access: Published
|
// Access: Published
|
||||||
// Description: Opens up the geom for drawing, dont forget to call
|
// Description: Opens up the geom for drawing, don't forget to call
|
||||||
// MeshDrawer2D::end()
|
// MeshDrawer2D::end()
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void MeshDrawer2D::begin() {
|
void MeshDrawer2D::begin() {
|
||||||
@ -125,7 +125,7 @@ void MeshDrawer2D::end() {
|
|||||||
_vertex->add_data3f(0,0,0);
|
_vertex->add_data3f(0,0,0);
|
||||||
_vertex->add_data3f(0,0,0);
|
_vertex->add_data3f(0,0,0);
|
||||||
}
|
}
|
||||||
// dont clear more then you have too
|
// don't clear more then you have too
|
||||||
_last_clear_index = _clear_index;
|
_last_clear_index = _clear_index;
|
||||||
|
|
||||||
// delete the re writers
|
// delete the re writers
|
||||||
|
@ -41,10 +41,10 @@
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Class : MeshDrawer2D
|
// Class : MeshDrawer2D
|
||||||
// Description : This class allows the drawing of 2d objects -
|
// Description : This class allows the drawing of 2d objects -
|
||||||
// mainly based on quads and rectangles.
|
// mainly based on quads and rectangles.
|
||||||
// Alows clipping and serverl high level UI theme
|
// Allows clipping and serverl high level UI theme
|
||||||
// functions.
|
// functions.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
class EXPCL_PANDA_GRUTIL MeshDrawer2D : public TypedObject {
|
class EXPCL_PANDA_GRUTIL MeshDrawer2D : public TypedObject {
|
||||||
PUBLISHED:
|
PUBLISHED:
|
||||||
@ -54,44 +54,44 @@ PUBLISHED:
|
|||||||
INLINE void set_budget(int budget);
|
INLINE void set_budget(int budget);
|
||||||
INLINE int get_budget();
|
INLINE int get_budget();
|
||||||
INLINE NodePath get_root();
|
INLINE NodePath get_root();
|
||||||
|
|
||||||
INLINE void quad_raw(
|
INLINE void quad_raw(
|
||||||
LVector3f v1, LVector4f c1, LVector2f uv1,
|
LVector3f v1, LVector4f c1, LVector2f uv1,
|
||||||
LVector3f v2, LVector4f c2, LVector2f uv2,
|
LVector3f v2, LVector4f c2, LVector2f uv2,
|
||||||
LVector3f v3, LVector4f c3, LVector2f uv3,
|
LVector3f v3, LVector4f c3, LVector2f uv3,
|
||||||
LVector3f v4, LVector4f c4, LVector2f uv4);
|
LVector3f v4, LVector4f c4, LVector2f uv4);
|
||||||
|
|
||||||
INLINE void rectangle_raw(
|
INLINE void rectangle_raw(
|
||||||
float x, float y, float w, float h,
|
float x, float y, float w, float h,
|
||||||
float u, float v, float us, float vs,
|
float u, float v, float us, float vs,
|
||||||
LVector4f color);
|
LVector4f color);
|
||||||
|
|
||||||
INLINE void set_clip(float x, float y, float w, float h);
|
INLINE void set_clip(float x, float y, float w, float h);
|
||||||
|
|
||||||
INLINE void rectangle(
|
INLINE void rectangle(
|
||||||
float x, float y, float w, float h,
|
float x, float y, float w, float h,
|
||||||
float u, float v, float us, float vs,
|
float u, float v, float us, float vs,
|
||||||
LVector4f color);
|
LVector4f color);
|
||||||
|
|
||||||
void rectangle_border(
|
void rectangle_border(
|
||||||
float x, float y, float w, float h,
|
float x, float y, float w, float h,
|
||||||
float r, float t, float l, float b,
|
float r, float t, float l, float b,
|
||||||
float tr, float tt, float tl, float tb,
|
float tr, float tt, float tl, float tb,
|
||||||
float u, float v, float us, float vs,
|
float u, float v, float us, float vs,
|
||||||
LVector4f color);
|
LVector4f color);
|
||||||
|
|
||||||
void rectangle_border_tiled(
|
void rectangle_border_tiled(
|
||||||
float x, float y, float w, float h,
|
float x, float y, float w, float h,
|
||||||
float r, float t, float l, float b,
|
float r, float t, float l, float b,
|
||||||
float tr, float tt, float tl, float tb,
|
float tr, float tt, float tl, float tb,
|
||||||
float u, float v, float us, float vs,
|
float u, float v, float us, float vs,
|
||||||
LVector4f color);
|
LVector4f color);
|
||||||
|
|
||||||
void rectangle_tiled(
|
void rectangle_tiled(
|
||||||
float x, float y, float w, float h,
|
float x, float y, float w, float h,
|
||||||
float u, float v, float us, float vs,
|
float u, float v, float us, float vs,
|
||||||
LVector4f color);
|
LVector4f color);
|
||||||
|
|
||||||
void begin();
|
void begin();
|
||||||
void end();
|
void end();
|
||||||
|
|
||||||
|
@ -889,7 +889,7 @@ transpose_in_place() {
|
|||||||
|
|
||||||
// Matrix inversion code from Numerical Recipes in C.
|
// Matrix inversion code from Numerical Recipes in C.
|
||||||
|
|
||||||
// dont trust compilers to inline these
|
// don't trust compilers to inline these
|
||||||
#define DET2(E00,E01,E10,E11) ((E00)*(E11) - (E10)*(E01))
|
#define DET2(E00,E01,E10,E11) ((E00)*(E11) - (E10)*(E01))
|
||||||
#define MATRIX3_DETERMINANT(mat) \
|
#define MATRIX3_DETERMINANT(mat) \
|
||||||
( (mat)._00 * DET2((mat)._11,(mat)._12,(mat)._21,(mat)._22) \
|
( (mat)._00 * DET2((mat)._11,(mat)._12,(mat)._21,(mat)._22) \
|
||||||
|
@ -587,7 +587,7 @@ get_standardized_rotation(FLOATTYPE angle_in_degrees) {
|
|||||||
// Access: Published
|
// Access: Published
|
||||||
// Description: Try to un-spin the hpr to a standard form. Like
|
// Description: Try to un-spin the hpr to a standard form. Like
|
||||||
// all standards, someone decides between many
|
// all standards, someone decides between many
|
||||||
// arbitrary posible standards. This function assumes
|
// arbitrary possible standards. This function assumes
|
||||||
// that 0 and 360 are the same, as is 720 and
|
// that 0 and 360 are the same, as is 720 and
|
||||||
// -360. Also 180 and -180 are the same. Another
|
// -360. Also 180 and -180 are the same. Another
|
||||||
// example is -90 and 270.
|
// example is -90 and 270.
|
||||||
@ -828,7 +828,7 @@ fmin(const FLOATNAME(LVecBase3) &other) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: LVecBase3::cross product (with assigment)
|
// Function: LVecBase3::cross product (with assignment)
|
||||||
// Access: Published
|
// Access: Published
|
||||||
// Description:
|
// Description:
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1048,7 +1048,7 @@ os_open_window(WindowProperties &req_properties) {
|
|||||||
|
|
||||||
if (_current_icon != NULL && _pending_icon == NULL) {
|
if (_current_icon != NULL && _pending_icon == NULL) {
|
||||||
// If we already have an icon specified, we'll need to reapply it
|
// If we already have an icon specified, we'll need to reapply it
|
||||||
// when the window is succesfully created.
|
// when the window is successfully created.
|
||||||
_pending_icon = _current_icon;
|
_pending_icon = _current_icon;
|
||||||
_current_icon = NULL;
|
_current_icon = NULL;
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ CycleDataStageWriter(const CycleDataStageWriter<CycleDataType> ©) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: CycleDataStageWriter::Copy Assigment (full)
|
// Function: CycleDataStageWriter::Copy Assignment (full)
|
||||||
// Access: Public
|
// Access: Public
|
||||||
// Description:
|
// Description:
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -229,7 +229,7 @@ CycleDataStageWriter(const CycleDataStageWriter<CycleDataType> ©) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: CycleDataStageWriter::Copy Assigment (trivial)
|
// Function: CycleDataStageWriter::Copy Assignment (trivial)
|
||||||
// Access: Public
|
// Access: Public
|
||||||
// Description:
|
// Description:
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -72,7 +72,7 @@ CycleDataWriter(const CycleDataWriter<CycleDataType> ©) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: CycleDataWriter::Copy Assigment (full)
|
// Function: CycleDataWriter::Copy Assignment (full)
|
||||||
// Access: Public
|
// Access: Public
|
||||||
// Description:
|
// Description:
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -229,7 +229,7 @@ CycleDataWriter(const CycleDataWriter<CycleDataType> ©) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: CycleDataWriter::Copy Assigment (trivial)
|
// Function: CycleDataWriter::Copy Assignment (trivial)
|
||||||
// Access: Public
|
// Access: Public
|
||||||
// Description:
|
// Description:
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
@ -55,7 +55,7 @@ PNMImage(const PNMImage ©) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: PNMImage::Copy Assigment Operator
|
// Function: PNMImage::Copy Assignment Operator
|
||||||
// Access: Published
|
// Access: Published
|
||||||
// Description:
|
// Description:
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -238,7 +238,7 @@ is_valid() const {
|
|||||||
// image. The new number of channels must be an integer
|
// image. The new number of channels must be an integer
|
||||||
// in the range 1 through 4, inclusive. This will
|
// in the range 1 through 4, inclusive. This will
|
||||||
// allocate and/or deallocate memory as necessary to
|
// allocate and/or deallocate memory as necessary to
|
||||||
// accomodate; see set_color_type().
|
// accommodate; see set_color_type().
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE void PNMImage::
|
INLINE void PNMImage::
|
||||||
set_num_channels(int num_channels) {
|
set_num_channels(int num_channels) {
|
||||||
|
@ -301,7 +301,7 @@ read(istream &data, const string &filename, PNMFileType *type,
|
|||||||
// reading the entire image.
|
// reading the entire image.
|
||||||
//
|
//
|
||||||
// The PNMReader is always deleted upon completion,
|
// The PNMReader is always deleted upon completion,
|
||||||
// whether succesful or not.
|
// whether successful or not.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
bool PNMImage::
|
bool PNMImage::
|
||||||
read(PNMReader *reader) {
|
read(PNMReader *reader) {
|
||||||
@ -406,7 +406,7 @@ write(ostream &data, const string &filename, PNMFileType *type) const {
|
|||||||
// writer via the PNMImageHeader::make_writer() methods.
|
// writer via the PNMImageHeader::make_writer() methods.
|
||||||
//
|
//
|
||||||
// The PNMWriter is always deleted upon completion,
|
// The PNMWriter is always deleted upon completion,
|
||||||
// whether succesful or not.
|
// whether successful or not.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
bool PNMImage::
|
bool PNMImage::
|
||||||
write(PNMWriter *writer) const {
|
write(PNMWriter *writer) const {
|
||||||
|
@ -42,9 +42,9 @@ typedef struct {
|
|||||||
float xoffset,yoffset;
|
float xoffset,yoffset;
|
||||||
float ang1,ang1_vel;
|
float ang1,ang1_vel;
|
||||||
float ang2,ang2_vel;
|
float ang2,ang2_vel;
|
||||||
|
|
||||||
float radius;
|
float radius;
|
||||||
|
|
||||||
// for moving
|
// for moving
|
||||||
float xstart,ystart;
|
float xstart,ystart;
|
||||||
float xend,yend;
|
float xend,yend;
|
||||||
@ -84,8 +84,8 @@ move_gridded_stuff(GriddedMotionType gridmotiontype,
|
|||||||
#define DO_FP_MODULUS(VAL,MAXVAL) \
|
#define DO_FP_MODULUS(VAL,MAXVAL) \
|
||||||
{if(VAL > MAXVAL) {int idivresult = (int)(VAL / (float)MAXVAL); VAL=VAL-idivresult*MAXVAL;} else \
|
{if(VAL > MAXVAL) {int idivresult = (int)(VAL / (float)MAXVAL); VAL=VAL-idivresult*MAXVAL;} else \
|
||||||
if(VAL < -MAXVAL) {int idivresult = (int)(VAL / (float)MAXVAL); VAL=VAL+idivresult*MAXVAL;}}
|
if(VAL < -MAXVAL) {int idivresult = (int)(VAL / (float)MAXVAL); VAL=VAL+idivresult*MAXVAL;}}
|
||||||
|
|
||||||
// probably should use panda lerps for this stuff, but I dont understand how
|
// probably should use panda lerps for this stuff, but I don't understand how
|
||||||
|
|
||||||
if(gridmotiontype==Rotation) {
|
if(gridmotiontype==Rotation) {
|
||||||
|
|
||||||
@ -238,21 +238,21 @@ load_gridded_models(WindowFramework *window,
|
|||||||
|
|
||||||
// Compute the integer square root of grid_count, so that we put our
|
// Compute the integer square root of grid_count, so that we put our
|
||||||
// models in a nice square grid.
|
// models in a nice square grid.
|
||||||
|
|
||||||
gridwidth=1;
|
gridwidth=1;
|
||||||
while(gridwidth*gridwidth < grid_count) {
|
while(gridwidth*gridwidth < grid_count) {
|
||||||
gridwidth++;
|
gridwidth++;
|
||||||
}
|
}
|
||||||
|
|
||||||
grid_pos_offset = -gridwidth*GRIDCELLSIZE/2.0;
|
grid_pos_offset = -gridwidth*GRIDCELLSIZE/2.0;
|
||||||
wander_area_pos_offset = -max((float)fabs(grid_pos_offset), MIN_WANDERAREA_DIMENSION/2.0f);
|
wander_area_pos_offset = -max((float)fabs(grid_pos_offset), MIN_WANDERAREA_DIMENSION/2.0f);
|
||||||
|
|
||||||
// Now walk through the list again, copying models into the scene
|
// Now walk through the list again, copying models into the scene
|
||||||
// graph as we go.
|
// graph as we go.
|
||||||
|
|
||||||
float xpos = grid_pos_offset;
|
float xpos = grid_pos_offset;
|
||||||
float ypos = grid_pos_offset;
|
float ypos = grid_pos_offset;
|
||||||
|
|
||||||
srand( (unsigned)time( NULL ) );
|
srand( (unsigned)time( NULL ) );
|
||||||
double now = ClockObject::get_global_clock()->get_frame_time();
|
double now = ClockObject::get_global_clock()->get_frame_time();
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ texture objects.
|
|||||||
features from TinyGL.
|
features from TinyGL.
|
||||||
|
|
||||||
- C sources for GCC on 32/64 bit architectures. It has been tested
|
- C sources for GCC on 32/64 bit architectures. It has been tested
|
||||||
succesfully on x86-Linux and MS Windows.
|
successfully on x86-Linux and MS Windows.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
---------
|
---------
|
||||||
|
@ -820,7 +820,7 @@ bool TinyOsxGraphicsWindow::OSOpenWindow(WindowProperties &req_properties) {
|
|||||||
|
|
||||||
if (_current_icon != NULL && _pending_icon == NULL) {
|
if (_current_icon != NULL && _pending_icon == NULL) {
|
||||||
// If we already have an icon specified, we'll need to reapply it
|
// If we already have an icon specified, we'll need to reapply it
|
||||||
// when the window is succesfully created.
|
// when the window is successfully created.
|
||||||
_pending_icon = _current_icon;
|
_pending_icon = _current_icon;
|
||||||
_current_icon = NULL;
|
_current_icon = NULL;
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ is_valid() const {
|
|||||||
// Function: VrpnClient::is_connected
|
// Function: VrpnClient::is_connected
|
||||||
// Access: Public
|
// Access: Public
|
||||||
// Description: Returns true if the connection is established
|
// Description: Returns true if the connection is established
|
||||||
// succesfully, false otherwise.
|
// successfully, false otherwise.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
INLINE bool VrpnClient::
|
INLINE bool VrpnClient::
|
||||||
is_connected() const {
|
is_connected() const {
|
||||||
|
@ -1759,7 +1759,7 @@ window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
|
|||||||
if (wparam == SC_KEYMENU) {
|
if (wparam == SC_KEYMENU) {
|
||||||
// if Alt is released (alone w/o other keys), defwindproc will
|
// if Alt is released (alone w/o other keys), defwindproc will
|
||||||
// send this command, which will 'activate' the title bar menu
|
// send this command, which will 'activate' the title bar menu
|
||||||
// (we have none) and give focus to it. we dont want this to
|
// (we have none) and give focus to it. we don't want this to
|
||||||
// happen, so kill this msg.
|
// happen, so kill this msg.
|
||||||
|
|
||||||
// Note that the WM_SYSKEYUP message for Alt has already
|
// Note that the WM_SYSKEYUP message for Alt has already
|
||||||
@ -2314,7 +2314,7 @@ hide_or_show_cursor(bool hide_cursor) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// dont pick any video modes < MIN_REFRESH_RATE Hz
|
// don't pick any video modes < MIN_REFRESH_RATE Hz
|
||||||
#define MIN_REFRESH_RATE 60
|
#define MIN_REFRESH_RATE 60
|
||||||
// EnumDisplaySettings may indicate 0 or 1 for refresh rate, which means use driver default rate (assume its >min_refresh_rate)
|
// EnumDisplaySettings may indicate 0 or 1 for refresh rate, which means use driver default rate (assume its >min_refresh_rate)
|
||||||
#define ACCEPTABLE_REFRESH_RATE(RATE) ((RATE >= MIN_REFRESH_RATE) || (RATE==0) || (RATE==1))
|
#define ACCEPTABLE_REFRESH_RATE(RATE) ((RATE >= MIN_REFRESH_RATE) || (RATE==0) || (RATE==1))
|
||||||
|
@ -84,7 +84,7 @@ endif
|
|||||||
|
|
||||||
|
|
||||||
if (! $?TCSH_NO_PANDA_ATTACH ) then
|
if (! $?TCSH_NO_PANDA_ATTACH ) then
|
||||||
# builder scripts dont attach (attach scripts too buggy on cygwin 1.0)
|
# builder scripts don't attach (attach scripts too buggy on cygwin 1.0)
|
||||||
# they set paths manually
|
# they set paths manually
|
||||||
# setenv TOOL /install/tool
|
# setenv TOOL /install/tool
|
||||||
setenv MYTOOL ~/player/dtool
|
setenv MYTOOL ~/player/dtool
|
||||||
|
@ -377,7 +377,7 @@ sub archivetree() {
|
|||||||
&myexecstr("( for /R ".$archdirname."\\".$dir1."\\src\\testbed %i in (*.pdb *.map) do copy %i ".$archdirname."\\".$dir1."\\bin )","nomsg","DO_LOG","NT cmd");
|
&myexecstr("( for /R ".$archdirname."\\".$dir1."\\src\\testbed %i in (*.pdb *.map) do copy %i ".$archdirname."\\".$dir1."\\bin )","nomsg","DO_LOG","NT cmd");
|
||||||
}
|
}
|
||||||
|
|
||||||
# NT cmd 'for' always returns 144 for some reason, impossible to detect error cond, so just dont check retval
|
# NT cmd 'for' always returns 144 for some reason, impossible to detect error cond, so just don't check retval
|
||||||
# delete old objs/pdbs/etc out of archived trees (just blow away the Opt[Win32] dir)
|
# delete old objs/pdbs/etc out of archived trees (just blow away the Opt[Win32] dir)
|
||||||
# &myexecstr("( for /D /R ".$archdirname."\\".$dir1."\\src %i in (Opt*Win32) do rd /s /q %i )","nomsg","DO_LOG","NT cmd");
|
# &myexecstr("( for /D /R ".$archdirname."\\".$dir1."\\src %i in (Opt*Win32) do rd /s /q %i )","nomsg","DO_LOG","NT cmd");
|
||||||
|
|
||||||
@ -517,7 +517,7 @@ sub buildall() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($DONT_ARCHIVE_OLD_BUILDS) {
|
if($DONT_ARCHIVE_OLD_BUILDS) {
|
||||||
&myexecstr("rd /s /q ".$inst_dirs[$treenum],"DO_LOG","NT cmd"); # dont bother checking errors here, probably just some shell has the dir cd'd to
|
&myexecstr("rd /s /q ".$inst_dirs[$treenum],"DO_LOG","NT cmd"); # don't bother checking errors here, probably just some shell has the dir cd'd to
|
||||||
} else {
|
} else {
|
||||||
&archivetree($treenum);
|
&archivetree($treenum);
|
||||||
}
|
}
|
||||||
@ -540,7 +540,7 @@ sub buildall() {
|
|||||||
# hopefully there are no extra dirs underneath
|
# hopefully there are no extra dirs underneath
|
||||||
|
|
||||||
# add wintools to dir copy list
|
# add wintools to dir copy list
|
||||||
# dont want to add wintools to global dirstodo, treat it separately
|
# don't want to add wintools to global dirstodo, treat it separately
|
||||||
unshift(dirstodolist,"wintools");
|
unshift(dirstodolist,"wintools");
|
||||||
|
|
||||||
foreach my $dir1 (@dirstodolist) {
|
foreach my $dir1 (@dirstodolist) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user