use getNativeHandle for MaterialInstance
This commit is contained in:
@@ -321,7 +321,7 @@ class FFIAsset extends ThermionAsset {
|
|||||||
///
|
///
|
||||||
///
|
///
|
||||||
@override
|
@override
|
||||||
Future setMaterialInstanceAt(FFIMaterialInstance instance,
|
Future setMaterialInstanceAt(MaterialInstance instance,
|
||||||
{int? entity = null, int primitiveIndex = 0}) async {
|
{int? entity = null, int primitiveIndex = 0}) async {
|
||||||
if (entity != null &&
|
if (entity != null &&
|
||||||
!RenderableManager_isRenderable(app.renderableManager, entity)) {
|
!RenderableManager_isRenderable(app.renderableManager, entity)) {
|
||||||
@@ -350,7 +350,7 @@ class FFIAsset extends ThermionAsset {
|
|||||||
Engine_getRenderableManager(app.engine),
|
Engine_getRenderableManager(app.engine),
|
||||||
entity,
|
entity,
|
||||||
primitiveIndex,
|
primitiveIndex,
|
||||||
instance.pointer)) {
|
instance.getNativeHandle())) {
|
||||||
_logger.warning(
|
_logger.warning(
|
||||||
"Failed to set material instance for entity $entity at primitive index ${primitiveIndex}");
|
"Failed to set material instance for entity $entity at primitive index ${primitiveIndex}");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class FFIMaterial extends Material {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FFIMaterialInstance extends MaterialInstance {
|
class FFIMaterialInstance extends MaterialInstance<Pointer<TMaterialInstance>> {
|
||||||
final Pointer<TMaterialInstance> pointer;
|
final Pointer<TMaterialInstance> pointer;
|
||||||
final FFIFilamentApp app;
|
final FFIFilamentApp app;
|
||||||
|
|
||||||
@@ -198,6 +198,11 @@ class FFIMaterialInstance extends MaterialInstance {
|
|||||||
MaterialInstance_setParameterMat4(
|
MaterialInstance_setParameterMat4(
|
||||||
pointer, name.toNativeUtf8().cast<Char>(), matrix.storage.address);
|
pointer, name.toNativeUtf8().cast<Char>(), matrix.storage.address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
T getNativeHandle<T>() {
|
||||||
|
return pointer as T;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension TStencilFaceExt on StencilFace {
|
extension TStencilFaceExt on StencilFace {
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import 'package:thermion_dart/src/filament/src/interface/native_handle.dart';
|
||||||
import 'package:thermion_dart/thermion_dart.dart';
|
import 'package:thermion_dart/thermion_dart.dart';
|
||||||
import 'package:vector_math/vector_math_64.dart';
|
import 'package:vector_math/vector_math_64.dart';
|
||||||
|
|
||||||
@@ -98,7 +99,7 @@ abstract class Material {
|
|||||||
Future destroy();
|
Future destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class MaterialInstance {
|
abstract class MaterialInstance<T> extends NativeHandle<T> {
|
||||||
Future<bool> isStencilWriteEnabled();
|
Future<bool> isStencilWriteEnabled();
|
||||||
Future setDepthWriteEnabled(bool enabled);
|
Future setDepthWriteEnabled(bool enabled);
|
||||||
Future setDepthFunc(SamplerCompareFunction depthFunc);
|
Future setDepthFunc(SamplerCompareFunction depthFunc);
|
||||||
|
|||||||
Reference in New Issue
Block a user