BrushFamilyExtensions

Added in 1.0.0

public final class BrushFamilyExtensions


Summary

Public methods

static final @NonNull BrushFamily
@Throws(exceptionClasses = [IOException])
decode(
    @NonNull BrushFamily.Companion receiver,
    @NonNull byte[] input,
    @NonNull Version maxVersion,
    OnDecodeTexturePngBytes onDecodeTexture
)

Read a serialized BrushFamily from the given ByteArray and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful.

static final @NonNull BrushFamily
decode(
    @NonNull BrushFamily.Companion receiver,
    @NonNull InputStream input,
    @NonNull Version maxVersion,
    OnDecodeTexturePngBytes onDecodeTexture
)

Read a serialized BrushFamily from the given InputStream and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful.

static final @NonNull byte[]
encode(
    @NonNull BrushFamily receiver,
    TexturePngBytesLookup textureIdToPngBytes
)

Write a gzip-compressed ink.proto.BrushFamily binary proto message representing the BrushFamily to the given ByteArray using the provided texture map represented in corresponding arrays of keys (client texture IDs) and values (PNG bytes).

static final void
encode(
    @NonNull BrushFamily receiver,
    @NonNull OutputStream output,
    TexturePngBytesLookup textureIdToPngBytes
)

Write a gzip-compressed serialized ink.proto.BrushFamily proto message representing the BrushFamily to the given OutputStream.

Public methods

@Throws(exceptionClasses = [IOException])
public static final @NonNull BrushFamily decode(
    @NonNull BrushFamily.Companion receiver,
    @NonNull byte[] input,
    @NonNull Version maxVersion,
    OnDecodeTexturePngBytes onDecodeTexture
)

Read a serialized BrushFamily from the given ByteArray and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful.

Parameters
@NonNull byte[] input

ByteArray providing gzip-compressed ink.proto.BrushFamily binary proto messages, the same as written by encode.

@NonNull Version maxVersion

The maximum Version supported by the deserializer. Proto objects with a min_version of greater than maxVersion will be rejected.

OnDecodeTexturePngBytes onDecodeTexture

A callback to store any decoded texture image, if any were encoded inside the serialized BrushFamily. This is called synchronously as part of this function call, on the same thread, once for each texture image.

Returns
@NonNull BrushFamily

The BrushFamily parsed from the ByteArray.

Throws
IllegalArgumentException

input does not provide a valid ink.proto.BrushFamily proto message, or the corresponding BrushFamily is invalid.

IOException

if gzip-format bytes cannot be read from input.

public static final @NonNull BrushFamily decode(
    @NonNull BrushFamily.Companion receiver,
    @NonNull InputStream input,
    @NonNull Version maxVersion,
    OnDecodeTexturePngBytes onDecodeTexture
)

Read a serialized BrushFamily from the given InputStream and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful. Java callers should use BrushFamilySerialization.decode instead.

Parameters
@NonNull InputStream input

InputStream providing gzip-compressed ink.proto.BrushFamily binary proto messages, the same as written by encode.

@NonNull Version maxVersion

The maximum Version supported by the deserializer. Proto objects with a min_version of greater than maxVersion will be rejected.

OnDecodeTexturePngBytes onDecodeTexture

A callback to store any decoded texture image, if any were encoded inside the serialized BrushFamily. This is called synchronously as part of this function call, on the same thread, once for each texture image.

Returns
@NonNull BrushFamily

The BrushFamily parsed from the InputStream.

Throws
java.io.IOException

if gzip-format bytes cannot be read from input.

IllegalArgumentException

input does not provide a valid ink.proto.BrushFamily proto message, or the corresponding BrushFamily is invalid.

public static final @NonNull byte[] encode(
    @NonNull BrushFamily receiver,
    TexturePngBytesLookup textureIdToPngBytes
)

Write a gzip-compressed ink.proto.BrushFamily binary proto message representing the BrushFamily to the given ByteArray using the provided texture map represented in corresponding arrays of keys (client texture IDs) and values (PNG bytes). If BrushFamily.hasFallbacks is true, then the stored proto message including fallbacks for this BrushFamily will be used instead of recomputing the proto from the BrushFamily object.

Parameters
TexturePngBytesLookup textureIdToPngBytes

A callback to retrieve the PNG bytes of the texture bitmap for a given client texture ID.

public static final void encode(
    @NonNull BrushFamily receiver,
    @NonNull OutputStream output,
    TexturePngBytesLookup textureIdToPngBytes
)

Write a gzip-compressed serialized ink.proto.BrushFamily proto message representing the BrushFamily to the given OutputStream. If BrushFamily.hasFallbacks is true, then the stored proto message including fallbacks for this BrushFamily will be used instead of recomputing the proto from the BrushFamily object.