Skip to content

Commit

Permalink
Add new ForC++ tutorial docs (#977)
Browse files Browse the repository at this point in the history
* Add a guide document about cpp(WIP)

* wip

* wip

* wip

* Jpanese ForCpp guide

* Fix diagram

* Add a section on D3D12 release

* Update D3D11/12 example

* Add diagrams for English

* Remove XAudio from guide

* Fix alert blockquotes in document

* Remove unused file

* Add initial Machine Translation documents

* Fix and improve documents

* Improve asset directory diagram

---------

Co-authored-by: durswd <swda.durl@gmail.com>
  • Loading branch information
mewmew-tea and durswd authored Dec 20, 2023
1 parent c60213c commit 4ec8ee1
Show file tree
Hide file tree
Showing 35 changed files with 2,203 additions and 30 deletions.
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

0 comments on commit 4ec8ee1

Please sign in to comment.