Skip to content

Commit 175f125

Browse files
committed
::Graphics FFI
1 parent f507c06 commit 175f125

117 files changed

Lines changed: 1438 additions & 1577 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
File renamed without changes.

3DRadSpace/Engine3DRadSpace/Graphics/BlendOperation.h renamed to 3DRadSpace/Engine3DRadSpace/FFI/Graphics/BlendOperation.h

File renamed without changes.
File renamed without changes.

3DRadSpace/Engine3DRadSpace/Graphics/ColorWriteEnable.h renamed to 3DRadSpace/Engine3DRadSpace/FFI/Graphics/ColorWriteEnable.h

File renamed without changes.

3DRadSpace/Engine3DRadSpace/Graphics/ComparisonFunction.h renamed to 3DRadSpace/Engine3DRadSpace/FFI/Graphics/ComparisonFunction.h

File renamed without changes.

3DRadSpace/Engine3DRadSpace/Graphics/DepthWriteMask.h renamed to 3DRadSpace/Engine3DRadSpace/FFI/Graphics/DepthWriteMask.h

File renamed without changes.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#include "Effect.h"
2+
#include "../../Graphics/Effect.hpp"
3+
4+
using namespace Engine3DRadSpace;
5+
using namespace Engine3DRadSpace::Graphics;
6+
7+
E3DRSP_Effect E3DRSP_Effect_Create(E3DRSP_IGraphicsDevice device, E3DRSP_IShader* shaders, size_t numShaders)
8+
{
9+
return static_cast<E3DRSP_Effect>(
10+
new Effect(
11+
reinterpret_cast<IGraphicsDevice*>(device),
12+
std::span<IShader*>(reinterpret_cast<IShader**>(shaders), numShaders))
13+
);
14+
}
15+
16+
int E3DRSP_Effect_SetAll(E3DRSP_Effect effect)
17+
{
18+
return reinterpret_cast<Effect*>(effect)->SetAll();
19+
}
20+
21+
bool E3DRSP_Effect_Set(E3DRSP_Effect effect, int index)
22+
{
23+
return reinterpret_cast<Effect*>(effect)->Set(index);
24+
}
25+
26+
void E3DRSP_Effect_SetData(E3DRSP_Effect effect, void* data, size_t size, int cbufferID, int shaderID)
27+
{
28+
return reinterpret_cast<Effect*>(effect)->SetData(data, size, cbufferID, shaderID);
29+
}
30+
31+
void E3DRSP_Effect_SetData2(E3DRSP_Effect effect, void* data, size_t size, int cbufferID)
32+
{
33+
reinterpret_cast<Effect*>(effect)->SetData(data, size, cbufferID);
34+
}
35+
36+
void E3DRSP_Effect_SetTexture(E3DRSP_Effect effect, E3DRSP_ITexture2D texture, int idx)
37+
{
38+
reinterpret_cast<Effect*>(effect)->SetTexture(reinterpret_cast<ITexture2D*>(texture), idx);
39+
}
40+
41+
void E3DRSP_Effect_SetTexture2(E3DRSP_Effect effect, E3DRSP_ITexture2D texture, int textureID, int shaderID)
42+
{
43+
reinterpret_cast<Effect*>(effect)->SetTexture(reinterpret_cast<ITexture2D*>(texture), textureID, shaderID);
44+
}
45+
46+
void E3DRSP_Effect_SetSampler(E3DRSP_Effect effect, E3DRSP_ISamplerState sampler, int idx)
47+
{
48+
reinterpret_cast<Effect*>(effect)->SetSampler(reinterpret_cast<ISamplerState*>(sampler), idx);
49+
}
50+
51+
void E3DRSP_Effect_SetSampler2(E3DRSP_Effect effect, E3DRSP_ISamplerState sampler, int samplerID, int shaderID)
52+
{
53+
reinterpret_cast<Effect*>(effect)->SetSampler(reinterpret_cast<ISamplerState*>(sampler), samplerID, shaderID);
54+
}
55+
56+
E3DRSP_IShader* E3DRSP_Effect_GetShader(E3DRSP_Effect effect, size_t idx)
57+
{
58+
auto shader = reinterpret_cast<Effect*>(effect)->operator[](idx);
59+
return reinterpret_cast<E3DRSP_IShader*>(shader);
60+
}
61+
62+
void E3DRSP_Effect_Destroy(E3DRSP_Effect effect)
63+
{
64+
if(effect == nullptr) return;
65+
delete reinterpret_cast<Effect*>(effect);
66+
}
File renamed without changes.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include "EffectManager.h"
2+
#include "../../Graphics/EffectManager.hpp"
3+
4+
using namespace Engine3DRadSpace;
5+
using namespace Engine3DRadSpace::Graphics;
6+
7+
E3DRSP_EffectManager E3DRSP_EffectManager_Create()
8+
{
9+
return new EffectManager();
10+
}
11+
12+
E3DRSP_IShader E3DRSP_EffectManager_AddShader(E3DRSP_EffectManager manager, const char* name, E3DRSP_IShader shader_moveable)
13+
{
14+
return static_cast<EffectManager*>(manager)->Add(
15+
std::string(name),
16+
std::unique_ptr<IShader>(reinterpret_cast<IShader*>(shader_moveable))
17+
);
18+
}
19+
20+
E3DRSP_Effect E3DRSP_EffectManager_AddEffect(E3DRSP_EffectManager manager, const char* name, E3DRSP_Effect effect_moveable)
21+
{
22+
return static_cast<EffectManager*>(manager)->Add(
23+
std::string(name),
24+
std::unique_ptr<Effect>(reinterpret_cast<Effect*>(effect_moveable))
25+
);
26+
}
27+
28+
E3DRSP_Effect GetEffect(E3DRSP_EffectManager manager, const char* name)
29+
{
30+
return static_cast<EffectManager*>(manager)->GetEffect(name);
31+
}
32+
33+
E3DRSP_IShader GetShader(E3DRSP_EffectManager manager, const char* name)
34+
{
35+
return static_cast<EffectManager*>(manager)->GetShader(name);
36+
}
37+
38+
void E3DRSP_EffectManager_Destroy(E3DRSP_EffectManager manager)
39+
{
40+
delete static_cast<EffectManager*>(manager);
41+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#pragma once
2+
#include "../Core/IService.h"
3+
#include "../Core/IGame.h"
4+
#include "Effect.h"
5+
#include "IShader.h"
6+
7+
typedef void* E3DRSP_EffectManager;
8+
9+
#ifdef __cplusplus
10+
extern "C"
11+
{
12+
#endif
13+
E3DRSP_FFI_EXPORT E3DRSP_EffectManager E3DRSP_EffectManager_Create();
14+
E3DRSP_FFI_EXPORT E3DRSP_IShader E3DRSP_EffectManager_AddShader(E3DRSP_EffectManager manager, const char* name, E3DRSP_IShader shader_moveable);
15+
E3DRSP_FFI_EXPORT E3DRSP_Effect E3DRSP_EffectManager_AddEffect(E3DRSP_EffectManager manager, const char* name, E3DRSP_Effect effect_moveable);
16+
E3DRSP_FFI_EXPORT E3DRSP_Effect GetEffect(E3DRSP_EffectManager manager, const char* name);
17+
E3DRSP_FFI_EXPORT E3DRSP_IShader GetShader(E3DRSP_EffectManager manager, const char* name);
18+
19+
E3DRSP_FFI_EXPORT void E3DRSP_EffectManager_Destroy(E3DRSP_EffectManager manager);
20+
#ifdef __cplusplus
21+
}
22+
#endif

0 commit comments

Comments
 (0)