* Forgot include files for irrklang in last commit
This commit is contained in:
parent
87b5a5f765
commit
1fede6d76c
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
@ -21,22 +21,25 @@ namespace irrklang
|
||||
ESOD_DIRECT_SOUND_8,
|
||||
|
||||
//! DirectSound sound output driver, windows only.
|
||||
/* This uses DirectSound 3 or above, if available. If DX8 sound effects
|
||||
/** This uses DirectSound 3 or above, if available. If DX8 sound effects
|
||||
are needed, use ESOD_DIRECT_SOUND_8 instead. The
|
||||
ESOD_DIRECT_SOUND driver may be available on more and older windows
|
||||
versions than ESOD_DIRECT_SOUND_8.*/
|
||||
ESOD_DIRECT_SOUND,
|
||||
|
||||
//! WinMM sound output driver, windows only.
|
||||
/** Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver. */
|
||||
ESOD_WIN_MM,
|
||||
|
||||
//! ALSA sound output driver, linux only.
|
||||
/* When using ESOD_ALSA in createIrrKlangDevice(), it is possible to set the third parameter,
|
||||
/** When using ESOD_ALSA in createIrrKlangDevice(), it is possible to set the third parameter,
|
||||
'deviceID' to the name of specific ALSA pcm device, to the irrKlang force to use this one.
|
||||
Set it to 'default', or 'plug:hw' or whatever you need it to be.*/
|
||||
Set it to 'default', or 'plug:hw' or whatever you need it to be.
|
||||
Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver. */
|
||||
ESOD_ALSA,
|
||||
|
||||
//! Core Audio sound output driver, mac os only.
|
||||
/** Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver. */
|
||||
ESOD_CORE_AUDIO,
|
||||
|
||||
//! Null driver, creating no sound output
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -29,8 +29,11 @@ namespace irrklang
|
||||
buffer, use startRecordingCustomHandledAudio().
|
||||
\param sampleRate: Sample rate of the recorded audio.
|
||||
\param sampleFormat: Sample format of the recorded audio.
|
||||
\param channelCount: Amount of audio channels.
|
||||
\return Returns true if successfully started recording and false if not.*/
|
||||
virtual bool startRecordingBufferedAudio(ik_s32 sampleRate=22000, ESampleFormat sampleFormat=ESF_S16) = 0;
|
||||
virtual bool startRecordingBufferedAudio(ik_s32 sampleRate=22000,
|
||||
ESampleFormat sampleFormat=ESF_S16,
|
||||
ik_s32 channelCount=1) = 0;
|
||||
|
||||
//! Starts recording audio.
|
||||
/** Clears all possibly previously recorded buffered audio data and starts to record
|
||||
@ -42,9 +45,12 @@ namespace irrklang
|
||||
captured audio data chunk.
|
||||
\param sampleRate: Sample rate of the recorded audio.
|
||||
\param sampleFormat: Sample format of the recorded audio.
|
||||
\param channelCount: Amount of audio channels.
|
||||
\return Returns true if successfully started recording and false if not. */
|
||||
virtual bool startRecordingCustomHandledAudio(ICapturedAudioDataReceiver* receiver,
|
||||
ik_s32 sampleRate=22000, ESampleFormat sampleFormat=ESF_S16) = 0;
|
||||
ik_s32 sampleRate=22000,
|
||||
ESampleFormat sampleFormat=ESF_S16,
|
||||
ik_s32 channelCount=1) = 0;
|
||||
|
||||
//! Stops recording audio.
|
||||
virtual void stopRecordingAudio() = 0;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
@ -14,27 +14,29 @@ namespace irrklang
|
||||
It also is able to store a debug string for every instance of an object.
|
||||
Most objects of irrKlang are derived from IRefCounted, and so they are reference counted.
|
||||
|
||||
When you create an object in irrKlang, calling a method
|
||||
which starts with 'create', an object is created, and you get a pointer
|
||||
to the new object. If you no longer need the object, you have
|
||||
When you receive an object in irrKlang (for example an ISound using play2D() or
|
||||
play3D()), and you no longer need the object, you have
|
||||
to call drop(). This will destroy the object, if grab() was not called
|
||||
in another part of you program, because this part still needs the object.
|
||||
Note, that you only need to call drop() to the object, if you created it,
|
||||
and the method had a 'create' in it.
|
||||
Note, that you only don't need to call drop() for all objects you receive, it
|
||||
will be explicitely noted in the documentation.
|
||||
|
||||
A simple example:
|
||||
|
||||
If you want to create a texture, you may want to call an imaginable method
|
||||
IDriver::createTexture. You call
|
||||
ITexture* texture = driver->createTexture(128, 128);
|
||||
If you no longer need the texture, call texture->drop().
|
||||
If you want to play a sound, you may want to call the method
|
||||
ISoundEngine::play2D. You call
|
||||
ISound* mysound = engine->play2D("foobar.mp3", false, false true);
|
||||
If you no longer need the sound interface, call mysound->drop(). The
|
||||
sound may still play on after this because the engine still has a reference
|
||||
to that sound, but you can be sure that it's memory will be released as soon
|
||||
the sound is no longer used.
|
||||
|
||||
If you want to load a texture, you may want to call imaginable method
|
||||
IDriver::loadTexture. You do this like
|
||||
ITexture* texture = driver->loadTexture("example.jpg");
|
||||
You will not have to drop the pointer to the loaded texture, because
|
||||
the name of the method does not start with 'create'. The texture
|
||||
is stored somewhere by the driver.
|
||||
If you want to add a sound source, you may want to call a method
|
||||
ISoundEngine::addSoundSourceFromFile. You do this like
|
||||
ISoundSource* mysource = engine->addSoundSourceFromFile("example.jpg");
|
||||
You will not have to drop the pointer to the source, because
|
||||
sound sources are managed by the engine (it will live as long as the sound engine) and
|
||||
the documentation says so.
|
||||
*/
|
||||
class IRefCounted
|
||||
{
|
||||
@ -59,54 +61,40 @@ namespace irrklang
|
||||
//! with its methods grab() and drop(). Most objects of irrklang
|
||||
//! are derived from IRefCounted, and so they are reference counted.
|
||||
//!
|
||||
//! When you create an object in irrKlang, calling a method
|
||||
//! which starts with 'create', an object is created, and you get a pointer
|
||||
//! to the new object. If you no longer need the object, you have
|
||||
//! When you receive an object in irrKlang (for example an ISound using play2D() or
|
||||
//! play3D()), and you no longer need the object, you have
|
||||
//! to call drop(). This will destroy the object, if grab() was not called
|
||||
//! in another part of you program, because this part still needs the object.
|
||||
//! Note, that you only need to call drop() to the object, if you created it,
|
||||
//! and the method had a 'create' in it.
|
||||
//! Note, that you only don't need to call drop() for all objects you receive, it
|
||||
//! will be explicitely noted in the documentation.
|
||||
//!
|
||||
//! A simple example:
|
||||
//!
|
||||
//! If you want to create a texture, you may want to call an imaginable method
|
||||
//! IDriver::createTexture. You call
|
||||
//! ITexture* texture = driver->createTexture(128, 128);
|
||||
//! If you no longer need the texture, call texture->drop().
|
||||
//! If you want to load a texture, you may want to call imaginable method
|
||||
//! IDriver::loadTexture. You do this like
|
||||
//! ITexture* texture = driver->loadTexture("example.jpg");
|
||||
//! You will not have to drop the pointer to the loaded texture, because
|
||||
//! the name of the method does not start with 'create'. The texture
|
||||
//! is stored somewhere by the driver.
|
||||
//! If you want to play a sound, you may want to call the method
|
||||
//! ISoundEngine::play2D. You call
|
||||
//! ISound* mysound = engine->play2D("foobar.mp3", false, false true);
|
||||
//! If you no longer need the sound interface, call mysound->drop(). The
|
||||
//! sound may still play on after this because the engine still has a reference
|
||||
//! to that sound, but you can be sure that it's memory will be released as soon
|
||||
//! the sound is no longer used.
|
||||
void grab() { ++ReferenceCounter; }
|
||||
|
||||
//! Drops the object. Decrements the reference counter by one.
|
||||
//! Returns true, if the object was deleted.
|
||||
//! The IRefCounted class provides a basic reference counting mechanism
|
||||
//! with its methods grab() and drop(). Most objects of irrKlang
|
||||
//! Engine are derived from IRefCounted, and so they are reference counted.
|
||||
//!
|
||||
//! When you create an object in irrKlang, calling a method
|
||||
//! which starts with 'create', an object is created, and you get a pointer
|
||||
//! to the new object. If you no longer need the object, you have
|
||||
//! When you receive an object in irrKlang (for example an ISound using play2D() or
|
||||
//! play3D()), and you no longer need the object, you have
|
||||
//! to call drop(). This will destroy the object, if grab() was not called
|
||||
//! in another part of you program, because this part still needs the object.
|
||||
//! Note, that you only need to call drop() to the object, if you created it,
|
||||
//! and the method had a 'create' in it.
|
||||
//! Note, that you only don't need to call drop() for all objects you receive, it
|
||||
//! will be explicitely noted in the documentation.
|
||||
//!
|
||||
//! A simple example:
|
||||
//!
|
||||
//! If you want to create a texture, you may want to call an imaginable method
|
||||
//! IDriver::createTexture. You call
|
||||
//! ITexture* texture = driver->createTexture(128, 128);
|
||||
//! If you no longer need the texture, call texture->drop().
|
||||
//! If you want to load a texture, you may want to call imaginable method
|
||||
//! IDriver::loadTexture. You do this like
|
||||
//! ITexture* texture = driver->loadTexture("example.jpg");
|
||||
//! You will not have to drop the pointer to the loaded texture, because
|
||||
//! the name of the method does not start with 'create'. The texture
|
||||
//! is stored somewhere by the driver.
|
||||
//! If you want to play a sound, you may want to call the method
|
||||
//! ISoundEngine::play2D. You call
|
||||
//! ISound* mysound = engine->play2D("foobar.mp3", false, false true);
|
||||
//! If you no longer need the sound interface, call mysound->drop(). The
|
||||
//! sound may still play on after this because the engine still has a reference
|
||||
//! to that sound, but you can be sure that it's memory will be released as soon
|
||||
//! the sound is no longer used.
|
||||
bool drop()
|
||||
{
|
||||
--ReferenceCounter;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
@ -11,11 +11,13 @@
|
||||
#include "ik_ISound.h"
|
||||
#include "ik_EStreamModes.h"
|
||||
#include "ik_IFileFactory.h"
|
||||
#include "ik_ISoundMixedOutputReceiver.h"
|
||||
|
||||
|
||||
namespace irrklang
|
||||
{
|
||||
class IAudioStreamLoader;
|
||||
struct SInternalAudioInterface;
|
||||
|
||||
//! Interface to the sound engine, for playing 3d and 2d sound and music.
|
||||
/** This is the main interface of irrKlang. You usually would create this using
|
||||
@ -199,7 +201,7 @@ namespace irrklang
|
||||
file format it is and might be able to start playback faster.
|
||||
\param copyMemory If set to true which is default, the memory block is copied
|
||||
and stored in the engine, after calling addSoundSourceFromMemory() the memory pointer can be deleted
|
||||
savely. If set to true, the memory is not copied and the user takes the responsibility that
|
||||
savely. If set to false, the memory is not copied and the user takes the responsibility that
|
||||
the memory block pointed to remains there as long as the sound engine or at least this sound
|
||||
source exists.
|
||||
\return Returns the pointer to the added sound source or 0 if not sucessful because for
|
||||
@ -386,9 +388,43 @@ namespace irrklang
|
||||
\return returns true if sucessful or fals if not, for example because the path could
|
||||
not be found. */
|
||||
virtual bool loadPlugins(const ik_c8* path) = 0;
|
||||
|
||||
//! Returns a pointer to internal sound engine pointers, like the DirectSound interface.
|
||||
/** Use this with caution. This is only exposed to make it possible for other libraries
|
||||
such as Video playback packages to extend or use the sound driver irrklang uses. */
|
||||
virtual const SInternalAudioInterface& getInternalAudioInterface() = 0;
|
||||
|
||||
//! Sets the OutputMixedDataReceiver, so you can receive the pure mixed output audio data while it is being played.
|
||||
/** This can be used to store the sound output as .wav file or for creating a Oscillograph or similar.
|
||||
This works only with software based audio drivers, that is ESOD_WIN_MM, ESOD_ALSA, and ESOD_CORE_AUDIO.
|
||||
Returns true if sucessful and fals if the current audio driver doesn't support this feature. Set this to null
|
||||
again once you don't need it anymore. */
|
||||
virtual bool setMixedDataOutputReceiver(ISoundMixedOutputReceiver* receiver) = 0;
|
||||
};
|
||||
|
||||
|
||||
//! structure for returning pointers to the internal audio interface.
|
||||
/** Use ISoundEngine::getInternalAudioInterface() to get this. */
|
||||
struct SInternalAudioInterface
|
||||
{
|
||||
//! IDirectSound interface, this is not null when using the ESOD_DIRECT_SOUND audio driver
|
||||
void* pIDirectSound;
|
||||
|
||||
//! IDirectSound8 interface, this is not null when using the ESOD_DIRECT_SOUND8 audio driver
|
||||
void* pIDirectSound8;
|
||||
|
||||
//! HWaveout interface, this is not null when using the ESOD_WIN_MM audio driver
|
||||
void* pWinMM_HWaveOut;
|
||||
|
||||
//! ALSA PCM Handle interface, this is not null when using the ESOD_ALSA audio driver
|
||||
void* pALSA_SND_PCM;
|
||||
|
||||
//! AudioDeviceID handle, this is not null when using the ESOD_CORE_AUDIO audio driver
|
||||
ik_u32 pCoreAudioDeciceID;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // end namespace irrklang
|
||||
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
@ -146,7 +146,7 @@ namespace irrklang
|
||||
//! Returns the threshold size where irrKlang decides to force streaming a file independent of the user specified setting.
|
||||
/** The value is specified in uncompressed bytes and its default value is
|
||||
about one Megabyte. See setForcedStreamingThreshold() for details. */
|
||||
virtual ik_s32 getForcedStreamingForceThreshold() = 0;
|
||||
virtual ik_s32 getForcedStreamingThreshold() = 0;
|
||||
|
||||
//! Returns a pointer to the loaded and decoded sample data.
|
||||
/** \return Returns a pointer to the sample data. The data is provided in decoded PCM data. The
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2002-2008 Nikolaus Gebhardt
|
||||
// Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
// This file is part of the "irrKlang" library.
|
||||
// For conditions of distribution and use, see copyright notice in irrKlang.h
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/* irrKlang.h -- interface of the 'irrKlang' library
|
||||
|
||||
Copyright (C) 2002-2007 Nikolaus Gebhardt
|
||||
Copyright (C) 2002-2009 Nikolaus Gebhardt
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
@ -31,11 +31,12 @@
|
||||
#include "ik_IFileReader.h"
|
||||
#include "ik_ISoundDeviceList.h"
|
||||
#include "ik_IAudioRecorder.h"
|
||||
#include "ik_ISoundMixedOutputReceiver.h"
|
||||
|
||||
//! irrKlang Version
|
||||
#define IRR_KLANG_VERSION "1.1.0"
|
||||
#define IRR_KLANG_VERSION "1.3.0"
|
||||
|
||||
/*! \mainpage irrKlang 1.1.0 API documentation
|
||||
/*! \mainpage irrKlang 1.3.0 API documentation
|
||||
*
|
||||
* <div align="center"><img src="logobig.png" ></div>
|
||||
|
||||
@ -44,6 +45,7 @@
|
||||
* @ref intro <br/>
|
||||
* @ref features <br/>
|
||||
* @ref links <br/>
|
||||
* @ref tipsandtricks <br/>
|
||||
* <br/>
|
||||
* Programming irrKlang:<br/>
|
||||
* @ref concept <br/>
|
||||
@ -97,6 +99,7 @@
|
||||
* <li>RIFF WAVE (*.wav)</li>
|
||||
* <li>Ogg Vorbis (*.ogg)</li>
|
||||
* <li>MPEG-1 Audio Layer 3 (*.mp3)</li>
|
||||
* <li>Free Lossless Audio Codec (*.flac)</li>
|
||||
* <li>Amiga Modules (*.mod)</li>
|
||||
* <li>Impulse Tracker (*.it)</li>
|
||||
* <li>Scream Tracker 3 (*.s3d)</li>
|
||||
@ -104,7 +107,7 @@
|
||||
* </ul>
|
||||
* It is also able to run on different operating systems and use several output drivers:
|
||||
*<ul>
|
||||
* <li>Windows 98, ME, NT 4, 2000, XP, Vista</li>
|
||||
* <li>Windows 98, ME, NT 4, 2000, XP, Vista, Windows 7</li>
|
||||
* <ul>
|
||||
* <li>DirectSound</li>
|
||||
* <li>DirectSound8</li>
|
||||
@ -135,6 +138,32 @@
|
||||
* <br/>
|
||||
*
|
||||
*
|
||||
*
|
||||
* \section tipsandtricks Tips and Tricks
|
||||
*
|
||||
* This section lists a few tips you might consider when implementing the sound part of your application
|
||||
* using irrKlang:
|
||||
*
|
||||
* <ul>
|
||||
* <li>If you can choose which audio file format is the primary one for your application,
|
||||
* use .OGG files, instead of for example .MP3 files. irrKlang uses a lot less memory
|
||||
* and CPU power when playing .OGGs.</li>
|
||||
* <li>To keep your application simple, each time you play a sound, you can use for example
|
||||
* play2D("filename.mp3") and let irrKlang handle the rest. There is no need to implement
|
||||
* a preloading/caching/file management system for the audio playback. irrKlang will handle
|
||||
* all this by itself and will never load a file twice. </li>
|
||||
* <li>irrKlang is crashing in your application? This should not happen, irrKlang is pretty stable,
|
||||
* and in most cases, this is a problem in your code: In a lot of cases the reason is simply
|
||||
* a wrong call to irrklang::IRefCounted::drop(). Be sure you are doing it correctly. (If you are unsure,
|
||||
* tempoarily remove all calls to irrklang::IRefCounted::drop() and see if this helps.)</li>
|
||||
* </ul>
|
||||
*
|
||||
* <br/>
|
||||
* <br/>
|
||||
* <br/>
|
||||
* <br/>
|
||||
*
|
||||
*
|
||||
*
|
||||
* \section concept Starting up the Engine
|
||||
*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user