expose setParameterBool/hasParameter on material + instance
This commit is contained in:
@@ -22,6 +22,12 @@ class FFIMaterial extends Material {
|
|||||||
Engine_destroyMaterialRenderThread(engine, pointer, cb);
|
Engine_destroyMaterialRenderThread(engine, pointer, cb);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<bool> hasParameter(String propertyName) async {
|
||||||
|
return Material_hasParameter(
|
||||||
|
pointer, propertyName.toNativeUtf8().cast<Char>());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FFIMaterialInstance extends MaterialInstance {
|
class FFIMaterialInstance extends MaterialInstance {
|
||||||
@@ -154,7 +160,13 @@ class FFIMaterialInstance extends MaterialInstance {
|
|||||||
@override
|
@override
|
||||||
Future setParameterTexture(String name, covariant FFITexture texture,
|
Future setParameterTexture(String name, covariant FFITexture texture,
|
||||||
covariant FFITextureSampler sampler) async {
|
covariant FFITextureSampler sampler) async {
|
||||||
MaterialInstance_setParameterTexture(
|
MaterialInstance_setParameterTexture(pointer,
|
||||||
pointer, name.toNativeUtf8().cast<Char>(), texture.pointer, sampler.pointer);
|
name.toNativeUtf8().cast<Char>(), texture.pointer, sampler.pointer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future setParameterBool(String name, bool value) async {
|
||||||
|
MaterialInstance_setParameterBool(
|
||||||
|
pointer, name.toNativeUtf8().cast<Char>(), value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,13 @@ external ffi.Pointer<TMaterialInstance> Material_createInstance(
|
|||||||
ffi.Pointer<TMaterial> tMaterial,
|
ffi.Pointer<TMaterial> tMaterial,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ffi.Native<ffi.Bool Function(ffi.Pointer<TMaterial>, ffi.Pointer<ffi.Char>)>(
|
||||||
|
isLeaf: true)
|
||||||
|
external bool Material_hasParameter(
|
||||||
|
ffi.Pointer<TMaterial> tMaterial,
|
||||||
|
ffi.Pointer<ffi.Char> propertyName,
|
||||||
|
);
|
||||||
|
|
||||||
@ffi.Native<ffi.Bool Function(ffi.Pointer<TMaterialInstance>)>(isLeaf: true)
|
@ffi.Native<ffi.Bool Function(ffi.Pointer<TMaterialInstance>)>(isLeaf: true)
|
||||||
external bool MaterialInstance_isStencilWriteEnabled(
|
external bool MaterialInstance_isStencilWriteEnabled(
|
||||||
ffi.Pointer<TMaterialInstance> materialInstance,
|
ffi.Pointer<TMaterialInstance> materialInstance,
|
||||||
@@ -60,7 +67,7 @@ external void MaterialInstance_setDepthCulling(
|
|||||||
ffi.Double, ffi.Double, ffi.Double, ffi.Double)>(isLeaf: true)
|
ffi.Double, ffi.Double, ffi.Double, ffi.Double)>(isLeaf: true)
|
||||||
external void MaterialInstance_setParameterFloat4(
|
external void MaterialInstance_setParameterFloat4(
|
||||||
ffi.Pointer<TMaterialInstance> materialInstance,
|
ffi.Pointer<TMaterialInstance> materialInstance,
|
||||||
ffi.Pointer<ffi.Char> name,
|
ffi.Pointer<ffi.Char> propertyName,
|
||||||
double x,
|
double x,
|
||||||
double y,
|
double y,
|
||||||
double w,
|
double w,
|
||||||
@@ -72,7 +79,7 @@ external void MaterialInstance_setParameterFloat4(
|
|||||||
ffi.Double, ffi.Double)>(isLeaf: true)
|
ffi.Double, ffi.Double)>(isLeaf: true)
|
||||||
external void MaterialInstance_setParameterFloat2(
|
external void MaterialInstance_setParameterFloat2(
|
||||||
ffi.Pointer<TMaterialInstance> materialInstance,
|
ffi.Pointer<TMaterialInstance> materialInstance,
|
||||||
ffi.Pointer<ffi.Char> name,
|
ffi.Pointer<ffi.Char> propertyName,
|
||||||
double x,
|
double x,
|
||||||
double y,
|
double y,
|
||||||
);
|
);
|
||||||
@@ -82,7 +89,7 @@ external void MaterialInstance_setParameterFloat2(
|
|||||||
ffi.Double)>(isLeaf: true)
|
ffi.Double)>(isLeaf: true)
|
||||||
external void MaterialInstance_setParameterFloat(
|
external void MaterialInstance_setParameterFloat(
|
||||||
ffi.Pointer<TMaterialInstance> materialInstance,
|
ffi.Pointer<TMaterialInstance> materialInstance,
|
||||||
ffi.Pointer<ffi.Char> name,
|
ffi.Pointer<ffi.Char> propertyName,
|
||||||
double value,
|
double value,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -91,10 +98,19 @@ external void MaterialInstance_setParameterFloat(
|
|||||||
ffi.Int)>(isLeaf: true)
|
ffi.Int)>(isLeaf: true)
|
||||||
external void MaterialInstance_setParameterInt(
|
external void MaterialInstance_setParameterInt(
|
||||||
ffi.Pointer<TMaterialInstance> materialInstance,
|
ffi.Pointer<TMaterialInstance> materialInstance,
|
||||||
ffi.Pointer<ffi.Char> name,
|
ffi.Pointer<ffi.Char> propertyName,
|
||||||
int value,
|
int value,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ffi.Native<
|
||||||
|
ffi.Void Function(ffi.Pointer<TMaterialInstance>, ffi.Pointer<ffi.Char>,
|
||||||
|
ffi.Bool)>(isLeaf: true)
|
||||||
|
external void MaterialInstance_setParameterBool(
|
||||||
|
ffi.Pointer<TMaterialInstance> materialInstance,
|
||||||
|
ffi.Pointer<ffi.Char> propertyName,
|
||||||
|
bool value,
|
||||||
|
);
|
||||||
|
|
||||||
@ffi.Native<
|
@ffi.Native<
|
||||||
ffi.Void Function(ffi.Pointer<TMaterialInstance>, ffi.Pointer<ffi.Char>,
|
ffi.Void Function(ffi.Pointer<TMaterialInstance>, ffi.Pointer<ffi.Char>,
|
||||||
ffi.Pointer<TTexture>, ffi.Pointer<TTextureSampler>)>(isLeaf: true)
|
ffi.Pointer<TTexture>, ffi.Pointer<TTextureSampler>)>(isLeaf: true)
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ enum TransparencyMode {
|
|||||||
|
|
||||||
abstract class Material {
|
abstract class Material {
|
||||||
Future<MaterialInstance> createInstance();
|
Future<MaterialInstance> createInstance();
|
||||||
|
Future<bool> hasParameter(String propertyName);
|
||||||
Future dispose();
|
Future dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,6 +107,7 @@ abstract class MaterialInstance {
|
|||||||
Future setParameterFloat2(String name, double x, double y);
|
Future setParameterFloat2(String name, double x, double y);
|
||||||
Future setParameterFloat(String name, double x);
|
Future setParameterFloat(String name, double x);
|
||||||
Future setParameterInt(String name, int value);
|
Future setParameterInt(String name, int value);
|
||||||
|
Future setParameterBool(String name, bool value);
|
||||||
Future setParameterTexture(
|
Future setParameterTexture(
|
||||||
String name, covariant Texture texture, covariant TextureSampler sampler);
|
String name, covariant Texture texture, covariant TextureSampler sampler);
|
||||||
|
|
||||||
|
|||||||
@@ -68,16 +68,18 @@ extern "C"
|
|||||||
};
|
};
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE TMaterialInstance *Material_createInstance(TMaterial *tMaterial);
|
EMSCRIPTEN_KEEPALIVE TMaterialInstance *Material_createInstance(TMaterial *tMaterial);
|
||||||
|
EMSCRIPTEN_KEEPALIVE bool Material_hasParameter(TMaterial *tMaterial, const char *propertyName);
|
||||||
EMSCRIPTEN_KEEPALIVE bool MaterialInstance_isStencilWriteEnabled(TMaterialInstance *materialInstance);
|
EMSCRIPTEN_KEEPALIVE bool MaterialInstance_isStencilWriteEnabled(TMaterialInstance *materialInstance);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setStencilWrite(TMaterialInstance *materialInstance, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setStencilWrite(TMaterialInstance *materialInstance, bool enabled);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setCullingMode(TMaterialInstance *materialInstance, TCullingMode culling);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setCullingMode(TMaterialInstance *materialInstance, TCullingMode culling);
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthWrite(TMaterialInstance *materialInstance, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthWrite(TMaterialInstance *materialInstance, bool enabled);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthCulling(TMaterialInstance *materialInstance, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthCulling(TMaterialInstance *materialInstance, bool enabled);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat4(TMaterialInstance *materialInstance, const char *name, double x, double y, double w, double z);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat4(TMaterialInstance *materialInstance, const char *propertyName, double x, double y, double w, double z);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat2(TMaterialInstance *materialInstance, const char *name, double x, double y);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat2(TMaterialInstance *materialInstance, const char *propertyName, double x, double y);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat(TMaterialInstance *materialInstance, const char *name, double value);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat(TMaterialInstance *materialInstance, const char *propertyName, double value);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterInt(TMaterialInstance *materialInstance, const char *name, int value);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterInt(TMaterialInstance *materialInstance, const char *propertyName, int value);
|
||||||
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterBool(TMaterialInstance *materialInstance, const char *propertyName, bool value);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterTexture(TMaterialInstance *materialInstance, const char *propertyName, TTexture *texture, TTextureSampler *sampler);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterTexture(TMaterialInstance *materialInstance, const char *propertyName, TTexture *texture, TTextureSampler *sampler);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthFunc(TMaterialInstance *materialInstance, TSamplerCompareFunc depthFunc);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthFunc(TMaterialInstance *materialInstance, TSamplerCompareFunc depthFunc);
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ namespace thermion
|
|||||||
return reinterpret_cast<TMaterialInstance *>(instance);
|
return reinterpret_cast<TMaterialInstance *>(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE bool Material_hasParameter(TMaterial *tMaterial, const char *propertyName) {
|
||||||
|
auto *material = reinterpret_cast<filament::Material *>(tMaterial);
|
||||||
|
return material->hasParameter(propertyName);
|
||||||
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE bool MaterialInstance_isStencilWriteEnabled(TMaterialInstance *tMaterialInstance)
|
EMSCRIPTEN_KEEPALIVE bool MaterialInstance_isStencilWriteEnabled(TMaterialInstance *tMaterialInstance)
|
||||||
{
|
{
|
||||||
return reinterpret_cast<::filament::MaterialInstance *>(tMaterialInstance)->isStencilWriteEnabled();
|
return reinterpret_cast<::filament::MaterialInstance *>(tMaterialInstance)->isStencilWriteEnabled();
|
||||||
@@ -61,6 +66,11 @@ namespace thermion
|
|||||||
reinterpret_cast<::filament::MaterialInstance *>(materialInstance)->setParameter(propertyName, value);
|
reinterpret_cast<::filament::MaterialInstance *>(materialInstance)->setParameter(propertyName, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterBool(TMaterialInstance *materialInstance, const char *propertyName, bool value)
|
||||||
|
{
|
||||||
|
reinterpret_cast<::filament::MaterialInstance *>(materialInstance)->setParameter(propertyName, value);
|
||||||
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterTexture(TMaterialInstance *tMaterialInstance, const char *propertyName, TTexture* tTexture, TTextureSampler* tSampler) {
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterTexture(TMaterialInstance *tMaterialInstance, const char *propertyName, TTexture* tTexture, TTextureSampler* tSampler) {
|
||||||
auto *materialInstance = reinterpret_cast<::filament::MaterialInstance *>(tMaterialInstance);
|
auto *materialInstance = reinterpret_cast<::filament::MaterialInstance *>(tMaterialInstance);
|
||||||
auto texture = reinterpret_cast<::filament::Texture*>(tTexture);
|
auto texture = reinterpret_cast<::filament::Texture*>(tTexture);
|
||||||
|
|||||||
Reference in New Issue
Block a user