fix incorrect indexing for material instances when creating an instance
This commit is contained in:
@@ -758,14 +758,14 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
|
|||||||
|
|
||||||
final pixelBuffers = <(View, Uint8List)>[];
|
final pixelBuffers = <(View, Uint8List)>[];
|
||||||
|
|
||||||
if (beginFrame) {
|
final views = <FFIView>[];
|
||||||
final views = <FFIView>[];
|
if (view != null) {
|
||||||
if (view != null) {
|
views.add(view);
|
||||||
views.add(view);
|
} else {
|
||||||
} else {
|
views.addAll(_swapChains[swapChain]!.where((v) => v.renderable));
|
||||||
views.addAll(_swapChains[swapChain]!.where((v) => v.renderable));
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
if (beginFrame) {
|
||||||
_logger.info("Capturing ${views.length} views");
|
_logger.info("Capturing ${views.length} views");
|
||||||
|
|
||||||
for (final view in views) {
|
for (final view in views) {
|
||||||
@@ -784,7 +784,8 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
|
|||||||
PixelDataType.UBYTE || PixelDataType.BYTE => 1,
|
PixelDataType.UBYTE || PixelDataType.BYTE => 1,
|
||||||
_ => throw UnsupportedError(pixelDataFormat.toString())
|
_ => throw UnsupportedError(pixelDataFormat.toString())
|
||||||
};
|
};
|
||||||
final pixelBuffer = Uint8List(viewport.width *
|
|
||||||
|
final pixelBuffer = makeUint8List(viewport.width *
|
||||||
viewport.height *
|
viewport.height *
|
||||||
numChannels *
|
numChannels *
|
||||||
channelSizeInBytes);
|
channelSizeInBytes);
|
||||||
@@ -807,10 +808,6 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
|
|||||||
view.renderTarget == null
|
view.renderTarget == null
|
||||||
? nullptr
|
? nullptr
|
||||||
: view.renderTarget!.renderTarget,
|
: view.renderTarget!.renderTarget,
|
||||||
// TPixelDataFormat.PIXELDATAFORMAT_RGBA,
|
|
||||||
// TPixelDataType.PIXELDATATYPE_UBYTE,
|
|
||||||
// TPixelDataFormat.fromValue(pixelDataFormat.value),
|
|
||||||
// TPixelDataType.fromValue(pixelDataType.value),
|
|
||||||
pixelDataFormat.value,
|
pixelDataFormat.value,
|
||||||
pixelDataType.value,
|
pixelDataType.value,
|
||||||
pixelBuffer.address,
|
pixelBuffer.address,
|
||||||
@@ -829,6 +826,7 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await flush();
|
await flush();
|
||||||
|
|
||||||
return pixelBuffers;
|
return pixelBuffers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,8 +90,8 @@ namespace thermion
|
|||||||
TRACE("Instance child entity %d not renderable", i);
|
TRACE("Instance child entity %d not renderable", i);
|
||||||
} else {
|
} else {
|
||||||
TRACE("Instance child entity %d renderable", i);
|
TRACE("Instance child entity %d renderable", i);
|
||||||
for(int i = 0; i < materialInstanceCount; i++) {
|
for(int j = 0; j < materialInstanceCount; j++) {
|
||||||
rm.setMaterialInstanceAt(renderableInstance, i, materialInstances[i]);
|
rm.setMaterialInstanceAt(renderableInstance, i, materialInstances[j]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user