using namespace Windows::Graphics::Display;
using namespace DirectX;
using namespace D2D1;
+using namespace concurrency;
using namespace BasicSprites;
GameMain::GameMain() : backBufferViewPort_(0.0f,0.0f,BACKBUFFER_WIDTH,BACKBUFFER_HEIGHT) , isDestroy_(false)
{
- // \83T\83E\83\93\83h\8dÄ\90¶\83X\83\8c\83b\83h\82Ì\8aJ\8en
- soundThread_ = std::thread(
- [this]() -> void
- {
- ExecuteSoundThread();
- }
- );
+ soundDriver_.reset(new sf::SoundDriver());
+ soundManager_.reset(new sf::SoundManager(*soundDriver_.get()));
+ // \83T\83E\83\93\83h\8dÄ\90¶\83X\83\8c\83b\83h\82Ì\8aJ\8en
+ soundTask_ = task<void>(create_async([this]()
+ {
+ ExecuteSoundThread();
+ })
+ );
+ //soundThread_ = std::thread(
+ // [this]() -> void
+ // {
+ // ExecuteSoundThread();
+ // }
+ //);
}
GameMain::~GameMain()
{
// \83T\83E\83\93\83h\8dÄ\90¶\83X\83\8c\83b\83h\82Ì\92â\8e~
isDestroy_ = true;
- if(soundThread_.joinable())
- {
- soundThread_.join();
- }
+ soundTask_.wait();
+
+ //if(soundThread_.joinable())
+ //{
+ // soundThread_.join();
+ //}
};
void GameMain::CreateDeviceIndependentResources()
// \83T\83E\83\93\83h\8dÄ\90¶\83X\83\8c\83b\83h
void GameMain::ExecuteSoundThread()
{
- sf::com_init comInit;
- soundDriver_.reset(new sf::SoundDriver());
- soundManager_.reset(new sf::SoundManager(*soundDriver_.get()));
+ //sf::com_init comInit;
InitSound();
soundManager_->Sequencer().Play();
while(!isDestroy_)
timber.filter.lfo.gain = 1.0f;
timber.filter.lfo.waveForm = &(soundManager_->Synthesizer().WaveTables()[3]);
timber.filter.lfo.startNoteOn = true;
- timber.filter.cutoff = 50.0f;
- timber.filter.resonance = 0.7f;
+ timber.filter.cutoff = 10000.0f;
+ timber.filter.resonance = 0.0f;
timber.filter.envelope.attackTime = 0.01f;
timber.filter.envelope.decayTime = 0.03f;
timber.filter.envelope.sustainLevel = 0.05f;