fix FFIMaterial so it correctly translates between StencilFace (Dart) and TStencilFace (Dart FFI) enums
This commit is contained in:
@@ -113,32 +113,33 @@ class FFIMaterialInstance extends MaterialInstance {
|
|||||||
@override
|
@override
|
||||||
Future setStencilCompareFunction(SamplerCompareFunction func,
|
Future setStencilCompareFunction(SamplerCompareFunction func,
|
||||||
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
||||||
MaterialInstance_setStencilCompareFunction(pointer, func.index, face.index);
|
MaterialInstance_setStencilCompareFunction(
|
||||||
|
pointer, func.index, face.toFFI());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future setStencilOpDepthFail(StencilOperation op,
|
Future setStencilOpDepthFail(StencilOperation op,
|
||||||
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
||||||
MaterialInstance_setStencilOpDepthFail(pointer, op.index, face.index);
|
MaterialInstance_setStencilOpDepthFail(pointer, op.index, face.toFFI());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future setStencilOpDepthStencilPass(StencilOperation op,
|
Future setStencilOpDepthStencilPass(StencilOperation op,
|
||||||
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
||||||
MaterialInstance_setStencilOpDepthStencilPass(
|
MaterialInstance_setStencilOpDepthStencilPass(
|
||||||
pointer, op.index, face.index);
|
pointer, op.index, face.toFFI());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future setStencilOpStencilFail(StencilOperation op,
|
Future setStencilOpStencilFail(StencilOperation op,
|
||||||
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
||||||
MaterialInstance_setStencilOpStencilFail(pointer, op.index, face.index);
|
MaterialInstance_setStencilOpStencilFail(pointer, op.index, face.toFFI());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future setStencilReferenceValue(int value,
|
Future setStencilReferenceValue(int value,
|
||||||
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
[StencilFace face = StencilFace.FRONT_AND_BACK]) async {
|
||||||
MaterialInstance_setStencilReferenceValue(pointer, value, face.index);
|
MaterialInstance_setStencilReferenceValue(pointer, value, face.toFFI());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -169,7 +170,8 @@ class FFIMaterialInstance extends MaterialInstance {
|
|||||||
|
|
||||||
Future destroy() async {
|
Future destroy() async {
|
||||||
await withVoidCallback((requestId, cb) {
|
await withVoidCallback((requestId, cb) {
|
||||||
Engine_destroyMaterialInstanceRenderThread(app.engine, this.pointer, requestId, cb);
|
Engine_destroyMaterialInstanceRenderThread(
|
||||||
|
app.engine, this.pointer, requestId, cb);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,3 +199,13 @@ class FFIMaterialInstance extends MaterialInstance {
|
|||||||
pointer, name.toNativeUtf8().cast<Char>(), matrix.storage.address);
|
pointer, name.toNativeUtf8().cast<Char>(), matrix.storage.address);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension TStencilFaceExt on StencilFace {
|
||||||
|
int toFFI() {
|
||||||
|
return switch (this) {
|
||||||
|
StencilFace.FRONT => TStencilFace.STENCIL_FACE_FRONT,
|
||||||
|
StencilFace.BACK => TStencilFace.STENCIL_FACE_BACK,
|
||||||
|
StencilFace.FRONT_AND_BACK => TStencilFace.STENCIL_FACE_FRONT_AND_BACK
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user