Skip to content

Commit 427b9c9

Browse files
committed
createRenderTarget utility method.
1 parent b0ad370 commit 427b9c9

3 files changed

Lines changed: 34 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
## 0.0.3
2+
3+
- `createRenderTarget` utility method.
4+
15
## 0.0.2
26

37
- Load `ShaderLibrary` utility method.
4-
58
## 0.0.1
69

710
- Initial version.

lib/gpu.dart

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,36 @@
1+
import "dart:typed_data";
2+
13
import "package:flutter_gpu/gpu.dart" as gpu;
4+
import 'package:vector_math/vector_math.dart' as vm;
25

36
gpu.PixelFormat get defaultColorFormat => gpu.gpuContext.defaultColorFormat;
47

8+
/// Loads a shader library from an asset.
59
gpu.ShaderLibrary loadShaderLibrary(String assetName) {
610
return gpu.ShaderLibrary.fromAsset(assetName)!;
711
}
12+
13+
/// Creates a fullscreen 2D Triangle.
14+
gpu.DeviceBuffer createTriangle() {
15+
final vertices = Float32List.fromList([
16+
-0.5, -0.5, // Vertex 1
17+
0.5, -0.5, // Vertex 2
18+
0.0, 0.5, // Vertex 3
19+
]);
20+
21+
final verticesDeviceBuffer =
22+
gpu.gpuContext.createDeviceBufferWithCopy(ByteData.sublistView(vertices));
23+
24+
return verticesDeviceBuffer;
25+
}
26+
27+
/// Creates a GPU Render target with specified dimensions.
28+
gpu.RenderTarget createRenderTarget(int width, int height) {
29+
final texture = gpu.gpuContext
30+
.createTexture(gpu.StorageMode.devicePrivate, width, height);
31+
32+
final renderTarget = gpu.RenderTarget.singleColor(gpu.ColorAttachment(
33+
texture: texture, clearValue: vm.Vector4(0, 0, 1, 1)));
34+
35+
return renderTarget;
36+
}

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ dependencies:
1212
sdk: flutter
1313
flutter_gpu:
1414
sdk: flutter
15+
vector_math: ^2.2.0
1516

1617
dev_dependencies:
1718
flutter_test:

0 commit comments

Comments
 (0)