texture_rgba_renderer 0.0.4 copy "texture_rgba_renderer: ^0.0.4" to clipboard
texture_rgba_renderer: ^0.0.4 copied to clipboard

A texture helper which brings a high level api to handle RGBA data.

Texture Rgba Renderer #

A texture helper which brings a high level api to handle RGBA data. No frame copy required, and with full hardware acceleration.

Pub Version FOSSA Status

Platform Support #

The plugin aims to provide opengl impl for the texture, which bring a better performance instead of FFI + CustomPainter.

  • ✅ Linux
  • ✅ Windows (No gpu acceleration yet due to the limitation of Flutter.)
// The available texture variants.
// Only PixelBufferTexture is currently implemented.
// Other variants are expected to be added in the future.
typedef std::variant<PixelBufferTexture, GpuSurfaceTexture> TextureVariant;
  • ❌ MacOS (not implemented yet.)

Getting Started #

Create a texture by calling createTexture. #

_textureRgbaRendererPlugin.createTexture(key).then((textureId) {
      if (textureId != -1) {
        debugPrint("Texture register success, textureId=$textureId");
        setState(() {
          this.textureId = textureId;
        });
      } else {
        return;
      }
    });

Transfer rgba data by calling onRgba. #

data = mockPicture(width, height);
final res = await _textureRgbaRendererPlugin.onRgba(key, data!, height, width);
if (!res) {
    debugPrint("WARN: render failed");
}

Close a texture by calling closeTexture. #

if (key != -1) {
    _textureRgbaRendererPlugin.closeTexture(key);
}

Check the example for details.

API #

class TextureRgbaRenderer {

  /// Create a texture with unique identifier [key].
  /// 
  /// @return a texture id which can be used with
  /// ```dart
  /// Texture(textureId: textureId)
  /// ```
  Future<int> createTexture(int key) {
    return TextureRgbaRendererPlatform.instance.createTexture(key); 
  }

  /// Close a texture with unique identifier [key].
  /// 
  /// @return a boolean to indicate whether the operation is sucessfully executed.
  Future<bool> closeTexture(int key) {
    return TextureRgbaRendererPlatform.instance.closeTexture(key); 
  }

  /// Provide the rgba data to the texture.
  Future<bool> onRgba(int key, Uint8List data, int height, int width) {
     return TextureRgbaRendererPlatform.instance.onRgba(key, data, height, width); 
  }
}

Thanks #

License #

FOSSA Status

9
likes
0
points
178k
downloads

Publisher

verified publisherkingtous.cn

Weekly Downloads

A texture helper which brings a high level api to handle RGBA data.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on texture_rgba_renderer