Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@monogrid/gainmap-js

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@monogrid/gainmap-js - npm Package Compare versions

Comparing version 2.0.7 to 3.0.0

dist/_commonjsHelpers-7LfDr0XA.js

17

CHANGELOG.md

@@ -0,1 +1,18 @@

# [3.0.0](https://github.com/MONOGRID/gainmap-js/compare/v2.0.7...v3.0.0) (2023-11-29)
### Bug Fixes
* **loaders:** properly catches render errors and calls onError callback ([b9bcdd1](https://github.com/MONOGRID/gainmap-js/commit/b9bcdd127576fa61c6ee92c876f4845cd80b4d34)), closes [#16](https://github.com/MONOGRID/gainmap-js/issues/16)
### Features
* **core:** disables default mipmap generation, enables user to specify renderTarget (and toDataTexture) options ([147d278](https://github.com/MONOGRID/gainmap-js/commit/147d2783224cb0a2039d762abf4e4b972b0e86da)), closes [#14](https://github.com/MONOGRID/gainmap-js/issues/14) [#15](https://github.com/MONOGRID/gainmap-js/issues/15)
### BREAKING CHANGES
* **core:** `generateMipmaps` is no longer `true` by default, both `minFilter` is no longer `LinearMipMapLinearFilter` by default but `LinearFilter`, `wrapS` and `warpT` are no longer `RepeatWrapping` by default but `ClampToEdgeWrapping`
## [2.0.7](https://github.com/MONOGRID/gainmap-js/compare/v2.0.6...v2.0.7) (2023-11-23)

@@ -2,0 +19,0 @@

36

dist/core/QuadRenderer.d.ts
import { ByteType, ColorSpace, DataTexture, FloatType, HalfFloatType, IntType, Material, ShortType, TextureDataType, UnsignedByteType, UnsignedIntType, WebGLRenderer, WebGLRenderTarget } from 'three';
import { QuadRendererTextureOptions } from './types';
/**

@@ -9,2 +10,32 @@ * Utility Type that translates `three` texture types to their TypedArray counterparts.

export type TextureDataTypeToBufferType<TType extends TextureDataType> = TType extends typeof UnsignedByteType ? Uint8ClampedArray : TType extends typeof HalfFloatType ? Uint16Array : TType extends typeof UnsignedIntType ? Uint32Array : TType extends typeof ByteType ? Int8Array : TType extends typeof ShortType ? Int16Array : TType extends typeof IntType ? Int32Array : TType extends typeof FloatType ? Float32Array : never;
export type QuadRendererOptions<TType extends TextureDataType, TMaterial extends Material> = {
/**
* Width of the render target
*/
width: number;
/**
* height of the renderTarget
*/
height: number;
/**
* TextureDataType of the renderTarget
*/
type: TType;
/**
* ColorSpace of the renderTarget
*/
colorSpace: ColorSpace;
/**
* material to use for rendering
*/
material: TMaterial;
/**
* Renderer instance to use
*/
renderer?: WebGLRenderer;
/**
* Additional renderTarget options
*/
renderTargetOptions?: QuadRendererTextureOptions;
};
/**

@@ -34,3 +65,3 @@ * Utility class used for rendering a texture with a material

*/
constructor(width: number, height: number, type: TType, colorSpace: ColorSpace, material: TMaterial, renderer?: WebGLRenderer);
constructor(options: QuadRendererOptions<TType, TMaterial>);
/**

@@ -57,5 +88,6 @@ * Instantiates a temporary renderer

*
* @params options
* @returns
*/
toDataTexture(): DataTexture;
toDataTexture(options?: QuadRendererTextureOptions): DataTexture;
/**

@@ -62,0 +94,0 @@ * If using a disposable renderer, it will dispose it.

@@ -0,1 +1,2 @@

import { Mapping, RenderTargetOptions } from 'three';
/**

@@ -65,1 +66,14 @@ * This is the Metadata stored in an encoded Gainmap which is used

};
/**
*
*/
export type QuadRendererTextureOptions = Omit<RenderTargetOptions, 'type' | 'format' | 'colorSpace' | 'encoding' | 'depthTexture' | 'stencilBuffer' | 'depthBuffer' | 'internalFormat'> & {
/**
* @defaultValue {@link UVMapping}
*/
mapping?: Mapping;
/**
* @defaultValue 1
*/
anisotropy?: number;
};
/**
* @monogrid/gainmap-js v2.0.6
* @monogrid/gainmap-js v2.0.7
* With ❤️, by MONOGRID <hello@mono-grid.com>
*/
import { Q as QuadRenderer } from './QuadRenderer-QXcVmgNm.js';
import { Q as QuadRenderer } from './QuadRenderer-LVKXL-q4.js';
import { ShaderMaterial, Vector3, NoBlending, SRGBColorSpace, LinearSRGBColorSpace, HalfFloatType, Loader, LoadingManager, Texture, UVMapping, ClampToEdgeWrapping, LinearFilter, LinearMipMapLinearFilter, RGBAFormat, UnsignedByteType, FileLoader } from 'three';

@@ -224,5 +224,15 @@

});
// TODO: three types are generic, eslint complains here, see how we can solve
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
const quadRenderer = new QuadRenderer(sdr.image.width, sdr.image.height, HalfFloatType, LinearSRGBColorSpace, material, renderer);
const quadRenderer = new QuadRenderer({
// TODO: three types are generic, eslint complains here, see how we can solve
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
width: sdr.image.width,
// TODO: three types are generic, eslint complains here, see how we can solve
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
height: sdr.image.height,
type: HalfFloatType,
colorSpace: LinearSRGBColorSpace,
material,
renderer,
renderTargetOptions: params.renderTargetOptions
});
try {

@@ -545,2 +555,12 @@ quadRenderer.render();

/**
* Specify the renderTarget options to use when rendering the gain map
*
* @param options
* @returns
*/
setRenderTargetOptions(options) {
this._renderTargetOptions = options;
return this;
}
/**
* @private

@@ -563,3 +583,11 @@ * @returns

});
return new QuadRenderer(16, 16, HalfFloatType, LinearSRGBColorSpace, material, this._renderer);
return new QuadRenderer({
width: 16,
height: 16,
type: HalfFloatType,
colorSpace: LinearSRGBColorSpace,
material,
renderer: this._renderer,
renderTargetOptions: this._renderTargetOptions
});
}

@@ -690,3 +718,15 @@ /**

if (sdr && gainMap && metadata) {
await this.render(quadRenderer, metadata, sdr, gainMap);
// solves #16
try {
await this.render(quadRenderer, metadata, sdr, gainMap);
}
catch (error) {
this.manager.itemError(sdrUrl);
this.manager.itemError(gainMapUrl);
this.manager.itemError(metadataUrl);
if (typeof onError === 'function')
onError(error);
quadRenderer.disposeOnDemandRenderer();
return;
}
if (typeof onLoad === 'function')

@@ -886,3 +926,13 @@ onLoad(quadRenderer);

}
await this.render(quadRenderer, metadata, sdrJPEG, gainMapJPEG);
// solves #16
try {
await this.render(quadRenderer, metadata, sdrJPEG, gainMapJPEG);
}
catch (error) {
this.manager.itemError(url);
if (typeof onError === 'function')
onError(error);
quadRenderer.disposeOnDemandRenderer();
return;
}
if (typeof onLoad === 'function')

@@ -889,0 +939,0 @@ onLoad(quadRenderer);

143

dist/decode.umd.js
/**
* @monogrid/gainmap-js v2.0.6
* @monogrid/gainmap-js v2.0.7
* With ❤️, by MONOGRID <hello@mono-grid.com>

@@ -51,19 +51,9 @@ */

* @param camera
* @param renderTargetOptions
* @returns
*/
const canReadPixels = (type, renderer, camera) => {
const canReadPixels = (type, renderer, camera, renderTargetOptions) => {
if (_canReadPixelsResult !== undefined)
return _canReadPixelsResult;
const testRT = new three.WebGLRenderTarget(1, 1, {
type,
colorSpace: three.LinearSRGBColorSpace,
format: three.RGBAFormat,
magFilter: three.LinearFilter,
minFilter: three.LinearFilter,
wrapS: three.RepeatWrapping,
wrapT: three.RepeatWrapping,
depthBuffer: false,
stencilBuffer: false,
generateMipmaps: true
});
const testRT = new three.WebGLRenderTarget(1, 1, renderTargetOptions);
renderer.setRenderTarget(testRT);

@@ -93,3 +83,4 @@ const mesh = new three.Mesh(new three.PlaneGeometry(), new three.MeshBasicMaterial({ color: 0xffffff }));

*/
constructor(width, height, type, colorSpace, material, renderer) {
constructor(options) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
this._rendererIsDisposable = false;

@@ -111,9 +102,25 @@ this._supportsReadPixels = true;

};
this._width = width;
this._height = height;
this._type = type;
this._colorSpace = colorSpace;
this._material = material;
if (renderer) {
this._renderer = renderer;
this._width = options.width;
this._height = options.height;
this._type = options.type;
this._colorSpace = options.colorSpace;
const rtOptions = {
// fixed options
format: three.RGBAFormat,
depthBuffer: false,
stencilBuffer: false,
// user options
type: this._type,
colorSpace: this._colorSpace,
anisotropy: ((_a = options.renderTargetOptions) === null || _a === void 0 ? void 0 : _a.anisotropy) !== undefined ? (_b = options.renderTargetOptions) === null || _b === void 0 ? void 0 : _b.anisotropy : 1,
generateMipmaps: ((_c = options.renderTargetOptions) === null || _c === void 0 ? void 0 : _c.generateMipmaps) !== undefined ? (_d = options.renderTargetOptions) === null || _d === void 0 ? void 0 : _d.generateMipmaps : false,
magFilter: ((_e = options.renderTargetOptions) === null || _e === void 0 ? void 0 : _e.magFilter) !== undefined ? (_f = options.renderTargetOptions) === null || _f === void 0 ? void 0 : _f.magFilter : three.LinearFilter,
minFilter: ((_g = options.renderTargetOptions) === null || _g === void 0 ? void 0 : _g.minFilter) !== undefined ? (_h = options.renderTargetOptions) === null || _h === void 0 ? void 0 : _h.minFilter : three.LinearFilter,
samples: ((_j = options.renderTargetOptions) === null || _j === void 0 ? void 0 : _j.samples) !== undefined ? (_k = options.renderTargetOptions) === null || _k === void 0 ? void 0 : _k.samples : undefined,
wrapS: ((_l = options.renderTargetOptions) === null || _l === void 0 ? void 0 : _l.wrapS) !== undefined ? (_m = options.renderTargetOptions) === null || _m === void 0 ? void 0 : _m.wrapS : three.ClampToEdgeWrapping,
wrapT: ((_o = options.renderTargetOptions) === null || _o === void 0 ? void 0 : _o.wrapT) !== undefined ? (_p = options.renderTargetOptions) === null || _p === void 0 ? void 0 : _p.wrapT : three.ClampToEdgeWrapping
};
this._material = options.material;
if (options.renderer) {
this._renderer = options.renderer;
}

@@ -132,3 +139,3 @@ else {

this._camera.updateProjectionMatrix();
if (!canReadPixels(this._type, this._renderer, this._camera)) {
if (!canReadPixels(this._type, this._renderer, this._camera, rtOptions)) {
let alternativeType;

@@ -152,14 +159,4 @@ switch (this._type) {

this._scene.add(this._quad);
this._renderTarget = new three.WebGLRenderTarget(width, height, {
type: this._type,
colorSpace,
format: three.RGBAFormat,
magFilter: three.LinearFilter,
minFilter: three.LinearMipMapLinearFilter,
wrapS: three.RepeatWrapping,
wrapT: three.RepeatWrapping,
depthBuffer: false,
stencilBuffer: false,
generateMipmaps: true
});
this._renderTarget = new three.WebGLRenderTarget(this.width, this.height, rtOptions);
this._renderTarget.texture.mapping = ((_q = options.renderTargetOptions) === null || _q === void 0 ? void 0 : _q.mapping) !== undefined ? (_r = options.renderTargetOptions) === null || _r === void 0 ? void 0 : _r.mapping : three.UVMapping;
}

@@ -197,6 +194,16 @@ /**

*
* @params options
* @returns
*/
toDataTexture() {
return new three.DataTexture(this.toArray(), this.width, this.height, three.RGBAFormat, this._type, three.UVMapping, three.RepeatWrapping, three.RepeatWrapping, three.LinearFilter, three.LinearMipMapLinearFilter, 1, three.LinearSRGBColorSpace);
toDataTexture(options) {
const returnValue = new three.DataTexture(
// fixed values
this.toArray(), this.width, this.height, three.RGBAFormat, this._type,
// user values
(options === null || options === void 0 ? void 0 : options.mapping) || three.UVMapping, (options === null || options === void 0 ? void 0 : options.wrapS) || three.ClampToEdgeWrapping, (options === null || options === void 0 ? void 0 : options.wrapT) || three.ClampToEdgeWrapping, (options === null || options === void 0 ? void 0 : options.magFilter) || three.LinearFilter, (options === null || options === void 0 ? void 0 : options.minFilter) || three.LinearFilter, (options === null || options === void 0 ? void 0 : options.anisotropy) || 1,
// fixed value
three.LinearSRGBColorSpace);
// set this afterwards, we can't set it in constructor
returnValue.generateMipmaps = (options === null || options === void 0 ? void 0 : options.generateMipmaps) !== undefined ? options === null || options === void 0 ? void 0 : options.generateMipmaps : false;
return returnValue;
}

@@ -519,5 +526,15 @@ /**

});
// TODO: three types are generic, eslint complains here, see how we can solve
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
const quadRenderer = new QuadRenderer(sdr.image.width, sdr.image.height, three.HalfFloatType, three.LinearSRGBColorSpace, material, renderer);
const quadRenderer = new QuadRenderer({
// TODO: three types are generic, eslint complains here, see how we can solve
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
width: sdr.image.width,
// TODO: three types are generic, eslint complains here, see how we can solve
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
height: sdr.image.height,
type: three.HalfFloatType,
colorSpace: three.LinearSRGBColorSpace,
material,
renderer,
renderTargetOptions: params.renderTargetOptions
});
try {

@@ -840,2 +857,12 @@ quadRenderer.render();

/**
* Specify the renderTarget options to use when rendering the gain map
*
* @param options
* @returns
*/
setRenderTargetOptions(options) {
this._renderTargetOptions = options;
return this;
}
/**
* @private

@@ -858,3 +885,11 @@ * @returns

});
return new QuadRenderer(16, 16, three.HalfFloatType, three.LinearSRGBColorSpace, material, this._renderer);
return new QuadRenderer({
width: 16,
height: 16,
type: three.HalfFloatType,
colorSpace: three.LinearSRGBColorSpace,
material,
renderer: this._renderer,
renderTargetOptions: this._renderTargetOptions
});
}

@@ -985,3 +1020,15 @@ /**

if (sdr && gainMap && metadata) {
await this.render(quadRenderer, metadata, sdr, gainMap);
// solves #16
try {
await this.render(quadRenderer, metadata, sdr, gainMap);
}
catch (error) {
this.manager.itemError(sdrUrl);
this.manager.itemError(gainMapUrl);
this.manager.itemError(metadataUrl);
if (typeof onError === 'function')
onError(error);
quadRenderer.disposeOnDemandRenderer();
return;
}
if (typeof onLoad === 'function')

@@ -1181,3 +1228,13 @@ onLoad(quadRenderer);

}
await this.render(quadRenderer, metadata, sdrJPEG, gainMapJPEG);
// solves #16
try {
await this.render(quadRenderer, metadata, sdrJPEG, gainMapJPEG);
}
catch (error) {
this.manager.itemError(url);
if (typeof onError === 'function')
onError(error);
quadRenderer.disposeOnDemandRenderer();
return;
}
if (typeof onLoad === 'function')

@@ -1184,0 +1241,0 @@ onLoad(quadRenderer);

import { HalfFloatType, Loader, LoadingManager, WebGLRenderer } from 'three';
import { QuadRenderer } from '../../core/QuadRenderer';
import { type GainMapMetadata } from '../../core/types';
import { type GainMapMetadata, QuadRendererTextureOptions } from '../../core/types';
import { GainMapDecoderMaterial } from '../materials/GainMapDecoderMaterial';
export declare class LoaderBase<TUrl = string> extends Loader<QuadRenderer<typeof HalfFloatType, GainMapDecoderMaterial>, TUrl> {
private _renderer;
private _renderTargetOptions?;
/**

@@ -18,2 +19,9 @@ * @private

/**
* Specify the renderTarget options to use when rendering the gain map
*
* @param options
* @returns
*/
setRenderTargetOptions(options: QuadRendererTextureOptions): this;
/**
* @private

@@ -20,0 +28,0 @@ * @returns

import { type Texture, type WebGLRenderer } from 'three';
import { type GainMapMetadata } from '../core/types';
import { type GainMapMetadata, type QuadRendererTextureOptions } from '../core/types';
/**

@@ -38,2 +38,6 @@ * Necessary parameters for decoding a Gainmap

renderer?: WebGLRenderer;
/**
* Options to use when creating the output renderTarget
*/
renderTargetOptions?: QuadRendererTextureOptions;
} & GainmapDecodingParameters & GainMapMetadata;
/**
* @monogrid/gainmap-js v2.0.6
* @monogrid/gainmap-js v2.0.7
* With ❤️, by MONOGRID <hello@mono-grid.com>
*/
import { c as compress } from './compress-MvOX-rlz.js';
import { c as compress } from './compress-AzvRyeg9.js';
import { DataTexture, RGBAFormat, UVMapping, RepeatWrapping, LinearFilter, LinearSRGBColorSpace, ShaderMaterial, Vector3, NoBlending, UnsignedByteType, ACESFilmicToneMapping, LinearToneMapping, CineonToneMapping, ReinhardToneMapping, SRGBColorSpace, Vector2, WebGLRenderTarget, NearestFilter, ClampToEdgeWrapping, FloatType, DataUtils } from 'three';
import { Q as QuadRenderer } from './QuadRenderer-QXcVmgNm.js';
import { Q as QuadRenderer } from './QuadRenderer-LVKXL-q4.js';

@@ -198,3 +198,11 @@ /**

});
const quadRenderer = new QuadRenderer(dataTexture.image.width, dataTexture.image.height, UnsignedByteType, LinearSRGBColorSpace, material, renderer);
const quadRenderer = new QuadRenderer({
width: dataTexture.image.width,
height: dataTexture.image.height,
type: UnsignedByteType,
colorSpace: LinearSRGBColorSpace,
material,
renderer,
renderTargetOptions: params.renderTargetOptions
});
try {

@@ -422,7 +430,16 @@ quadRenderer.render();

* @param toneMapping (optional) Tone mapping to be applied to the SDR Rendition
* @param renderTargetOptions (optional) Options to use when creating the output renderTarget
* @throws {Error} if the WebGLRenderer fails to render the SDR image
*/
const getSDRRendition = (hdrTexture, renderer, toneMapping) => {
const getSDRRendition = (hdrTexture, renderer, toneMapping, renderTargetOptions) => {
hdrTexture.needsUpdate = true;
const quadRenderer = new QuadRenderer(hdrTexture.image.width, hdrTexture.image.height, UnsignedByteType, SRGBColorSpace, new SDRMaterial({ map: hdrTexture, toneMapping }), renderer);
const quadRenderer = new QuadRenderer({
width: hdrTexture.image.width,
height: hdrTexture.image.height,
type: UnsignedByteType,
colorSpace: SRGBColorSpace,
material: new SDRMaterial({ map: hdrTexture, toneMapping }),
renderer,
renderTargetOptions
});
try {

@@ -494,3 +511,3 @@ quadRenderer.render();

const dataTexture = getDataTexture(image);
const sdr = getSDRRendition(dataTexture, renderer, params.toneMapping);
const sdr = getSDRRendition(dataTexture, renderer, params.toneMapping, params.renderTargetOptions);
const gainMapRenderer = getGainMap({

@@ -695,3 +712,10 @@ ...params,

let h = srcTex.image.height;
const quadRenderer = new QuadRenderer(w, h, srcTex.type, srcTex.colorSpace, mat, renderer);
const quadRenderer = new QuadRenderer({
width: w,
height: h,
type: srcTex.type,
colorSpace: srcTex.colorSpace,
material: mat,
renderer
});
const frameBuffers = [];

@@ -698,0 +722,0 @@ while (w > 1 || h > 1) {

/**
* @monogrid/gainmap-js v2.0.6
* @monogrid/gainmap-js v2.0.7
* With ❤️, by MONOGRID <hello@mono-grid.com>

@@ -156,19 +156,9 @@ */

* @param camera
* @param renderTargetOptions
* @returns
*/
const canReadPixels = (type, renderer, camera) => {
const canReadPixels = (type, renderer, camera, renderTargetOptions) => {
if (_canReadPixelsResult !== undefined)
return _canReadPixelsResult;
const testRT = new three.WebGLRenderTarget(1, 1, {
type,
colorSpace: three.LinearSRGBColorSpace,
format: three.RGBAFormat,
magFilter: three.LinearFilter,
minFilter: three.LinearFilter,
wrapS: three.RepeatWrapping,
wrapT: three.RepeatWrapping,
depthBuffer: false,
stencilBuffer: false,
generateMipmaps: true
});
const testRT = new three.WebGLRenderTarget(1, 1, renderTargetOptions);
renderer.setRenderTarget(testRT);

@@ -198,3 +188,4 @@ const mesh = new three.Mesh(new three.PlaneGeometry(), new three.MeshBasicMaterial({ color: 0xffffff }));

*/
constructor(width, height, type, colorSpace, material, renderer) {
constructor(options) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
this._rendererIsDisposable = false;

@@ -216,9 +207,25 @@ this._supportsReadPixels = true;

};
this._width = width;
this._height = height;
this._type = type;
this._colorSpace = colorSpace;
this._material = material;
if (renderer) {
this._renderer = renderer;
this._width = options.width;
this._height = options.height;
this._type = options.type;
this._colorSpace = options.colorSpace;
const rtOptions = {
// fixed options
format: three.RGBAFormat,
depthBuffer: false,
stencilBuffer: false,
// user options
type: this._type,
colorSpace: this._colorSpace,
anisotropy: ((_a = options.renderTargetOptions) === null || _a === void 0 ? void 0 : _a.anisotropy) !== undefined ? (_b = options.renderTargetOptions) === null || _b === void 0 ? void 0 : _b.anisotropy : 1,
generateMipmaps: ((_c = options.renderTargetOptions) === null || _c === void 0 ? void 0 : _c.generateMipmaps) !== undefined ? (_d = options.renderTargetOptions) === null || _d === void 0 ? void 0 : _d.generateMipmaps : false,
magFilter: ((_e = options.renderTargetOptions) === null || _e === void 0 ? void 0 : _e.magFilter) !== undefined ? (_f = options.renderTargetOptions) === null || _f === void 0 ? void 0 : _f.magFilter : three.LinearFilter,
minFilter: ((_g = options.renderTargetOptions) === null || _g === void 0 ? void 0 : _g.minFilter) !== undefined ? (_h = options.renderTargetOptions) === null || _h === void 0 ? void 0 : _h.minFilter : three.LinearFilter,
samples: ((_j = options.renderTargetOptions) === null || _j === void 0 ? void 0 : _j.samples) !== undefined ? (_k = options.renderTargetOptions) === null || _k === void 0 ? void 0 : _k.samples : undefined,
wrapS: ((_l = options.renderTargetOptions) === null || _l === void 0 ? void 0 : _l.wrapS) !== undefined ? (_m = options.renderTargetOptions) === null || _m === void 0 ? void 0 : _m.wrapS : three.ClampToEdgeWrapping,
wrapT: ((_o = options.renderTargetOptions) === null || _o === void 0 ? void 0 : _o.wrapT) !== undefined ? (_p = options.renderTargetOptions) === null || _p === void 0 ? void 0 : _p.wrapT : three.ClampToEdgeWrapping
};
this._material = options.material;
if (options.renderer) {
this._renderer = options.renderer;
}

@@ -237,3 +244,3 @@ else {

this._camera.updateProjectionMatrix();
if (!canReadPixels(this._type, this._renderer, this._camera)) {
if (!canReadPixels(this._type, this._renderer, this._camera, rtOptions)) {
let alternativeType;

@@ -257,14 +264,4 @@ switch (this._type) {

this._scene.add(this._quad);
this._renderTarget = new three.WebGLRenderTarget(width, height, {
type: this._type,
colorSpace,
format: three.RGBAFormat,
magFilter: three.LinearFilter,
minFilter: three.LinearMipMapLinearFilter,
wrapS: three.RepeatWrapping,
wrapT: three.RepeatWrapping,
depthBuffer: false,
stencilBuffer: false,
generateMipmaps: true
});
this._renderTarget = new three.WebGLRenderTarget(this.width, this.height, rtOptions);
this._renderTarget.texture.mapping = ((_q = options.renderTargetOptions) === null || _q === void 0 ? void 0 : _q.mapping) !== undefined ? (_r = options.renderTargetOptions) === null || _r === void 0 ? void 0 : _r.mapping : three.UVMapping;
}

@@ -302,6 +299,16 @@ /**

*
* @params options
* @returns
*/
toDataTexture() {
return new three.DataTexture(this.toArray(), this.width, this.height, three.RGBAFormat, this._type, three.UVMapping, three.RepeatWrapping, three.RepeatWrapping, three.LinearFilter, three.LinearMipMapLinearFilter, 1, three.LinearSRGBColorSpace);
toDataTexture(options) {
const returnValue = new three.DataTexture(
// fixed values
this.toArray(), this.width, this.height, three.RGBAFormat, this._type,
// user values
(options === null || options === void 0 ? void 0 : options.mapping) || three.UVMapping, (options === null || options === void 0 ? void 0 : options.wrapS) || three.ClampToEdgeWrapping, (options === null || options === void 0 ? void 0 : options.wrapT) || three.ClampToEdgeWrapping, (options === null || options === void 0 ? void 0 : options.magFilter) || three.LinearFilter, (options === null || options === void 0 ? void 0 : options.minFilter) || three.LinearFilter, (options === null || options === void 0 ? void 0 : options.anisotropy) || 1,
// fixed value
three.LinearSRGBColorSpace);
// set this afterwards, we can't set it in constructor
returnValue.generateMipmaps = (options === null || options === void 0 ? void 0 : options.generateMipmaps) !== undefined ? options === null || options === void 0 ? void 0 : options.generateMipmaps : false;
return returnValue;
}

@@ -568,3 +575,11 @@ /**

});
const quadRenderer = new QuadRenderer(dataTexture.image.width, dataTexture.image.height, three.UnsignedByteType, three.LinearSRGBColorSpace, material, renderer);
const quadRenderer = new QuadRenderer({
width: dataTexture.image.width,
height: dataTexture.image.height,
type: three.UnsignedByteType,
colorSpace: three.LinearSRGBColorSpace,
material,
renderer,
renderTargetOptions: params.renderTargetOptions
});
try {

@@ -792,7 +807,16 @@ quadRenderer.render();

* @param toneMapping (optional) Tone mapping to be applied to the SDR Rendition
* @param renderTargetOptions (optional) Options to use when creating the output renderTarget
* @throws {Error} if the WebGLRenderer fails to render the SDR image
*/
const getSDRRendition = (hdrTexture, renderer, toneMapping) => {
const getSDRRendition = (hdrTexture, renderer, toneMapping, renderTargetOptions) => {
hdrTexture.needsUpdate = true;
const quadRenderer = new QuadRenderer(hdrTexture.image.width, hdrTexture.image.height, three.UnsignedByteType, three.SRGBColorSpace, new SDRMaterial({ map: hdrTexture, toneMapping }), renderer);
const quadRenderer = new QuadRenderer({
width: hdrTexture.image.width,
height: hdrTexture.image.height,
type: three.UnsignedByteType,
colorSpace: three.SRGBColorSpace,
material: new SDRMaterial({ map: hdrTexture, toneMapping }),
renderer,
renderTargetOptions
});
try {

@@ -864,3 +888,3 @@ quadRenderer.render();

const dataTexture = getDataTexture(image);
const sdr = getSDRRendition(dataTexture, renderer, params.toneMapping);
const sdr = getSDRRendition(dataTexture, renderer, params.toneMapping, params.renderTargetOptions);
const gainMapRenderer = getGainMap({

@@ -1065,3 +1089,10 @@ ...params,

let h = srcTex.image.height;
const quadRenderer = new QuadRenderer(w, h, srcTex.type, srcTex.colorSpace, mat, renderer);
const quadRenderer = new QuadRenderer({
width: w,
height: h,
type: srcTex.type,
colorSpace: srcTex.colorSpace,
material: mat,
renderer
});
const frameBuffers = [];

@@ -1068,0 +1099,0 @@ while (w > 1 || h > 1) {

import { DataTexture, ToneMapping, WebGLRenderer } from 'three';
import { QuadRenderer } from '../core/QuadRenderer';
import { QuadRendererTextureOptions } from '../decode';
import { SDRMaterial } from './materials/SDRMaterial';

@@ -13,4 +14,5 @@ /**

* @param toneMapping (optional) Tone mapping to be applied to the SDR Rendition
* @param renderTargetOptions (optional) Options to use when creating the output renderTarget
* @throws {Error} if the WebGLRenderer fails to render the SDR image
*/
export declare const getSDRRendition: (hdrTexture: DataTexture, renderer?: WebGLRenderer, toneMapping?: ToneMapping) => QuadRenderer<1009, SDRMaterial>;
export declare const getSDRRendition: (hdrTexture: DataTexture, renderer?: WebGLRenderer, toneMapping?: ToneMapping, renderTargetOptions?: QuadRendererTextureOptions) => QuadRenderer<1009, SDRMaterial>;

@@ -5,2 +5,3 @@ import { type DataTexture, ToneMapping, WebGLRenderer } from 'three';

import { type RGBE } from 'three/examples/jsm/loaders/RGBELoader';
import { QuadRendererTextureOptions } from '../decode';
import { WorkerInterfaceImplementation } from '../worker-types';

@@ -86,2 +87,6 @@ /**

toneMapping?: ToneMapping;
/**
* Options to use when creating the output renderTarget
*/
renderTargetOptions?: QuadRendererTextureOptions;
};

@@ -88,0 +93,0 @@ /**

/**
* @monogrid/gainmap-js v2.0.6
* @monogrid/gainmap-js v2.0.7
* With ❤️, by MONOGRID <hello@mono-grid.com>
*/
import { c as commonjsGlobal, g as getDefaultExportFromCjs } from './_commonjsHelpers-ftl_lJMx.js';
import { c as commonjsGlobal, g as getDefaultExportFromCjs } from './_commonjsHelpers-7LfDr0XA.js';

@@ -8,0 +8,0 @@ var lib$1;

/**
* @monogrid/gainmap-js v2.0.6
* @monogrid/gainmap-js v2.0.7
* With ❤️, by MONOGRID <hello@mono-grid.com>

@@ -4,0 +4,0 @@ */

/**
* @monogrid/gainmap-js v2.0.6
* @monogrid/gainmap-js v2.0.7
* With ❤️, by MONOGRID <hello@mono-grid.com>
*/
import { g as getDefaultExportFromCjs } from './_commonjsHelpers-ftl_lJMx.js';
import { c as compress } from './compress-MvOX-rlz.js';
import { g as getDefaultExportFromCjs } from './_commonjsHelpers-7LfDr0XA.js';
import { c as compress } from './compress-AzvRyeg9.js';

@@ -9,0 +9,0 @@ var isPromise$2 = {exports: {}};

/**
* @monogrid/gainmap-js v2.0.6
* @monogrid/gainmap-js v2.0.7
* With ❤️, by MONOGRID <hello@mono-grid.com>

@@ -4,0 +4,0 @@ */

{
"name": "@monogrid/gainmap-js",
"version": "2.0.7",
"version": "3.0.0",
"description": "A Javascript (TypeScript) Port of Adobe Gainmap Technology for storing HDR Images using an SDR Image + a gain map",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/MONOGRID/gainmap-js#readme",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc