refactor: continual refactor to support multiple render targets

This commit is contained in:
Nick Fisher
2024-09-28 18:28:05 +08:00
parent 65e60da288
commit 921a994eb6
51 changed files with 1714 additions and 877 deletions

View File

@@ -0,0 +1,33 @@
import 'dart:async';
import 'dart:ffi';
import 'package:test/test.dart';
import 'helpers.dart';
void main() async {
final testHelper = TestHelper("render_thread");
group("render thread/capture", () {
test("request frame on render thread", () async {
var viewer = await testHelper.createViewer();
await viewer.setBackgroundColor(1.0, 0.0, 0.0, 1.0);
var texture = await testHelper.createTexture(500, 500);
var renderTarget = await viewer.createRenderTarget(
500, 500, texture.metalTextureAddress);
final view = await viewer.getViewAt(0);
await view.setRenderTarget(renderTarget);
await viewer.render();
await Future.delayed(Duration(milliseconds: 1));
var data = texture.getTextureBytes()!;
var pixels = data.bytes.cast<Uint8>().asTypedList(data.length);
savePixelBufferToBmp(
pixels, 500, 500, "${testHelper.testDir}/request_frame.bmp");
await viewer.dispose();
});
});
}