@pbroom/color-kit/interopWriters

toOklabArray4

Write a color as OKLab [L, a, b].

functionimport { toOklabArray4 } from '@pbroom/color-kit/interop';writers.ts:522
function toOklabArray4(
  color: Color,
  out?: undefined,
  offset?: number,
  options?: ArrayWriteOptions,
): ColorTuple4;

function toOklabArray4<T extends WritableArrayLike>(
  color: Color,
  out: T,
  offset?: number,
  options?: ArrayWriteOptions,
): T;

function toOklabArray4<T extends WritableArrayLike>(
  color: Color,
  out: T | undefined,
  offset?: number,
  options?: ArrayWriteOptions,
): ColorTuple4 | T;

Alpha is written as the fourth component: [c0, c1, c2, alpha].

clamp is a no-op for this space.

Overload 1 of 3

Parameters

colorColor
Color to convert.
out?undefined
Destination (number[], Float32Array, ...). When omitted a new ColorTuple4 is returned.
offset?number
Index in out of the first component to write.
options?ArrayWriteOptions
Out-of-gamut handling (clamp).

Returns

ColorTuple4out, or a new tuple when out is omitted.

Overload 2 of 3

Parameters

colorColor
Color to convert.
outT
Destination (number[], Float32Array, ...). When omitted a new ColorTuple4 is returned.
offset?number
Index in out of the first component to write.
options?ArrayWriteOptions
Out-of-gamut handling (clamp).

Returns

Tout, or a new tuple when out is omitted.

Overload 3 of 3

Parameters

colorColor
Color to convert.
outT | undefined
Destination (number[], Float32Array, ...). When omitted a new ColorTuple4 is returned.
offset?number
Index in out of the first component to write.
options?ArrayWriteOptions
Out-of-gamut handling (clamp).

Returns

ColorTuple4 | Tout, or a new tuple when out is omitted.

Example

TypeScript
// vec4 uniform: [c0, c1, c2, alpha]
const scratch = new Float32Array(4);
gl.uniform4fv(loc, toOklabArray4(color, scratch));

Also exported from