Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new ForC++ tutorial docs #977

Merged
merged 15 commits into from
Dec 20, 2023
17 changes: 2 additions & 15 deletions Examples/DirectX11/DeviceDX11.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,8 @@ void DeviceDX11::SetupEffekseerModules(::Effekseer::ManagerRef efkManager)
{
// Create a graphics device
// 描画デバイスの作成
auto graphicsDevice = ::EffekseerRendererDX11::CreateGraphicsDevice(GetID3D11Device(), GetID3D11DeviceContext());
::Effekseer::Backend::GraphicsDeviceRef graphicsDevice;
graphicsDevice = ::EffekseerRendererDX11::CreateGraphicsDevice(GetID3D11Device(), GetID3D11DeviceContext());

// Create a renderer of effects
// エフェクトのレンダラーの作成
Expand All @@ -204,18 +205,4 @@ void DeviceDX11::SetupEffekseerModules(::Effekseer::ManagerRef efkManager)
efkManager->SetModelLoader(efkRenderer->CreateModelLoader());
efkManager->SetMaterialLoader(efkRenderer->CreateMaterialLoader());
efkManager->SetCurveLoader(Effekseer::MakeRefPtr<Effekseer::CurveLoader>());

// Specify sound modules
// サウンドモジュールの設定
efkSound = ::EffekseerSound::Sound::Create(GetIXAudio2(), 16, 16);

// Specify a metho to play sound from an instance of efkSound
// 音再生用インスタンスから再生機能を指定
efkManager->SetSoundPlayer(efkSound->CreateSoundPlayer());

// Specify a sound data loader
// It can be extended by yourself. It is loaded from a file on now.
// サウンドデータの読込機能を設定する。
// ユーザーが独自で拡張できる。現在はファイルから読み込んでいる。
efkManager->SetSoundLoader(efkSound->CreateSoundLoader());
}
2 changes: 0 additions & 2 deletions Examples/DirectX11/DeviceDX11.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#include "../Utils/Input.h"
#include "../Utils/Window.h"
#include <EffekseerRendererDX11.h>
#include <EffekseerSoundXAudio2.h>
#include <XAudio2.h>
#include <d3d11.h>
#include <wrl/client.h>
Expand Down Expand Up @@ -32,7 +31,6 @@ class DeviceDX11
IXAudio2MasteringVoice* xa2MasterVoice = nullptr;

::EffekseerRendererDX11::RendererRef efkRenderer;
::EffekseerSound::SoundRef efkSound;

public:
DeviceDX11() = default;
Expand Down
24 changes: 19 additions & 5 deletions Examples/DirectX11/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

int main(int argc, char** argv)
{
// Devices for this sample. Use those of your application.
// サンプルソース用のデバイス管理クラス。実際には、導入先のアプリケーションのものを使う。
DeviceDX11 device;
device.Initialize("DirectDX11", Utils::Vec2I{1280, 720});

Expand All @@ -16,16 +18,20 @@ int main(int argc, char** argv)

// Create a manager of effects
// エフェクトのマネージャーの作成
auto efkManager = ::Effekseer::Manager::Create(8000);
::Effekseer::ManagerRef efkManager = ::Effekseer::Manager::Create(8000);

// Setup effekseer modules
// Effekseerのモジュールをセットアップする
device.SetupEffekseerModules(efkManager);
auto efkRenderer = device.GetEffekseerRenderer();
::EffekseerRendererDX11::RendererRef efkRenderer = device.GetEffekseerRenderer();

// Setup the coordinate system. This must be matched with your application.
// 座標系を設定する。アプリケーションと一致させる必要がある。
efkManager->SetCoordinateSystem(Effekseer::CoordinateSystem::RH);

// Specify a position of view
// 視点位置を確定
auto viewerPosition = ::Effekseer::Vector3D(10.0f, 5.0f, 20.0f);
::Effekseer::Vector3D viewerPosition = ::Effekseer::Vector3D(10.0f, 5.0f, 20.0f);

// Specify a projection matrix
// 投影行列を設定
Expand All @@ -39,13 +45,21 @@ int main(int argc, char** argv)

// Load an effect
// エフェクトの読込
auto effect = Effekseer::Effect::Create(efkManager, EFK_EXAMPLE_ASSETS_DIR_U16 "Laser01.efkefc");
Effekseer::EffectRef effect;
effect = Effekseer::Effect::Create(efkManager, EFK_EXAMPLE_ASSETS_DIR_U16 "Laser01.efkefc");

// Elapsed frames
// 経過したフレーム数のカウンタ
int32_t time = 0;

// Handle for the effect instance. Used to control the played effect.
// エフェクトのインスタンスのハンドル。再生したエフェクトの制御に使う。
Effekseer::Handle efkHandle = 0;

while (device.NewFrame())
{
// Stop and play effects every 120 frames(for sample)
// 120フレームごとに、エフェクトを停止、再生する(サンプル用)
if (time % 120 == 0)
{
// Play an effect
Expand Down Expand Up @@ -94,7 +108,7 @@ int main(int argc, char** argv)
// Begin to rendering effects
// エフェクトの描画開始処理を行う。
efkRenderer->BeginRendering();

// Render effects
// エフェクトの描画を行う。
Effekseer::Manager::DrawParameter drawParameter;
Expand Down
5 changes: 3 additions & 2 deletions Examples/DirectX12/DeviceDX12.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,11 +127,12 @@ void DeviceDX12::SetupEffekseerModules(::Effekseer::ManagerRef efkManager)
{
// Create a graphics device
// 描画デバイスの作成
auto graphicsDevice = ::EffekseerRendererDX12::CreateGraphicsDevice(GetID3D12Device(), GetCommandQueue(), 3);
::Effekseer::Backend::GraphicsDeviceRef graphicsDevice;
graphicsDevice = ::EffekseerRendererDX12::CreateGraphicsDevice(GetID3D12Device(), GetCommandQueue(), 3);

// Create a renderer of effects
// エフェクトのレンダラーの作成
auto format = DXGI_FORMAT_R8G8B8A8_UNORM;
DXGI_FORMAT format = DXGI_FORMAT_R8G8B8A8_UNORM;
efkRenderer = ::EffekseerRendererDX12::Create(graphicsDevice, &format, 1, DXGI_FORMAT_UNKNOWN, false, 8000);

// Create a memory pool
Expand Down
2 changes: 0 additions & 2 deletions Examples/DirectX12/DeviceDX12.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#include <DX12/LLGI.CommandListDX12.h>
#include <DX12/LLGI.GraphicsDX12.h>
#include <EffekseerRendererDX12.h>
#include <EffekseerSoundXAudio2.h>
#include <LLGI.Compiler.h>
#include <LLGI.Graphics.h>
#include <LLGI.Platform.h>
Expand Down Expand Up @@ -31,7 +30,6 @@ class DeviceDX12
IXAudio2MasteringVoice* xa2MasterVoice = nullptr;

::EffekseerRenderer::RendererRef efkRenderer;
::EffekseerSound::SoundRef efkSound;
::Effekseer::RefPtr<EffekseerRenderer::SingleFrameMemoryPool> efkMemoryPool;
::Effekseer::RefPtr<EffekseerRenderer::CommandList> efkCommandList;

Expand Down
23 changes: 19 additions & 4 deletions Examples/DirectX12/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

int main(int argc, char** argv)
{
// Devices for this sample. Use those of your application.
// サンプルソース用のデバイス管理クラス。実際には、導入先のアプリケーションのものを使う。
DeviceDX12 device;
device.Initialize("DirectDX12", Utils::Vec2I{1280, 720});

Expand All @@ -16,16 +18,21 @@ int main(int argc, char** argv)

// Create a manager of effects
// エフェクトのマネージャーの作成
auto efkManager = ::Effekseer::Manager::Create(8000);
::Effekseer::ManagerRef efkManager;
efkManager = ::Effekseer::Manager::Create(8000);

// Setup effekseer modules
// Effekseerのモジュールをセットアップする
device.SetupEffekseerModules(efkManager);
auto efkRenderer = device.GetEffekseerRenderer();
::EffekseerRenderer::RendererRef efkRenderer = device.GetEffekseerRenderer();

// Setup the coordinate system. This must be matched with your application.
// 座標系を設定する。アプリケーションと一致させる必要がある。
efkManager->SetCoordinateSystem(Effekseer::CoordinateSystem::RH);

// Specify a position of view
// 視点位置を確定
auto viewerPosition = ::Effekseer::Vector3D(10.0f, 5.0f, 20.0f);
::Effekseer::Vector3D viewerPosition = ::Effekseer::Vector3D(10.0f, 5.0f, 20.0f);

// Specify a projection matrix
// 投影行列を設定
Expand All @@ -39,13 +46,21 @@ int main(int argc, char** argv)

// Load an effect
// エフェクトの読込
auto effect = Effekseer::Effect::Create(efkManager, EFK_EXAMPLE_ASSETS_DIR_U16 "Laser01.efkefc");
Effekseer::EffectRef effect;
effect = Effekseer::Effect::Create(efkManager, EFK_EXAMPLE_ASSETS_DIR_U16 "Laser01.efkefc");

// Elapsed frames
// 経過したフレーム数のカウンタ
int32_t time = 0;

// Handle for the effect instance. Used to control the played effect.
// エフェクトのインスタンスのハンドル。再生したエフェクトの制御に使う。
Effekseer::Handle efkHandle = 0;

while (device.NewFrame())
{
// Stop and play effects every 120 frames(for sample)
// 120フレームごとに、エフェクトを停止、再生する(サンプル用)
if (time % 120 == 0)
{
// Play an effect
Expand Down
Loading
Loading