Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Pessimistress committed Sep 28, 2024
1 parent b8c3770 commit e1726b5
Show file tree
Hide file tree
Showing 11 changed files with 25 additions and 25 deletions.
4 changes: 2 additions & 2 deletions modules/aggregation-layers/src/contour-layer/contour-layer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,8 @@ export default class GridLayer<DataT = any, ExtraPropsT extends {} = {}> extends

override draw(opts) {
// Replaces render time viewport with our own
if (opts.moduleParameters.viewport) {
opts.moduleParameters.viewport = this.state.aggregatorViewport;
if (opts.moduleParameters.project) {
opts.moduleParameters.project.viewport = this.state.aggregatorViewport;
}
super.draw(opts);
}
Expand Down
4 changes: 2 additions & 2 deletions modules/aggregation-layers/src/grid-layer/grid-layer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -489,8 +489,8 @@ export default class GridLayer<DataT = any, ExtraPropsT extends {} = {}> extends

override draw(opts) {
// Replaces render time viewport with our own
if (opts.moduleParameters.viewport) {
opts.moduleParameters.viewport = this.state.aggregatorViewport;
if (opts.moduleParameters.project) {
opts.moduleParameters.project.viewport = this.state.aggregatorViewport;
}
super.draw(opts);
}
Expand Down
4 changes: 2 additions & 2 deletions modules/aggregation-layers/src/hexagon-layer/hexagon-layer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,8 @@ export default class HexagonLayer<

override draw(opts) {
// Replaces render time viewport with our own
if (opts.moduleParameters.viewport) {
opts.moduleParameters.viewport = this.state.aggregatorViewport;
if (opts.moduleParameters.project) {
opts.moduleParameters.project.viewport = this.state.aggregatorViewport;
}
super.draw(opts);
}
Expand Down
5 changes: 3 additions & 2 deletions modules/carto/src/layers/post-process-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,9 @@ export function PostProcessModifier<T extends Constructor<DrawableCompositeLayer
// TODO we could likely render to a smaller buffer for better perf
const {moduleParameters} = opts;
const {viewport} = this.context;
const width = moduleParameters.devicePixelRatio * viewport.width;
const height = moduleParameters.devicePixelRatio * viewport.height;
const {devicePixelRatio} = moduleParameters.project;
const width = devicePixelRatio * viewport.width;
const height = devicePixelRatio * viewport.height;
this.internalState.renderBuffers.forEach((fbo: Framebuffer) => fbo.resize({width, height}));
}

Expand Down
4 changes: 0 additions & 4 deletions modules/core/src/lib/layer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1053,10 +1053,6 @@ export default abstract class Layer<PropsT extends {} = {}> extends Component<
// @ts-ignore (TS2339) internalState is alwasy defined when this method is called
this.props = this.internalState.propsInTransition || currentProps;

// apply gamma to opacity to make it visually "linear"
const opacity = Math.pow(this.props.opacity, 1 / 2.2);
uniforms.opacity = opacity; // TODO remove once layers ported to UBO

try {
// TODO/ib - hack move to luma Model.draw
if (moduleParameters) {
Expand Down
5 changes: 1 addition & 4 deletions modules/core/src/passes/layers-pass.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import type View from '../views/view';
import type Layer from '../lib/layer';
import type {Effect} from '../lib/effect';
import type {ProjectProps} from '../shaderlib/project/viewport-uniforms';
import type {LayerProps} from '../shaderlib/misc/layer-uniforms';
import type {PickingProps} from '@luma.gl/shadertools';

export type Rect = {x: number; y: number; width: number; height: number};
Expand Down Expand Up @@ -360,9 +359,7 @@ export default class LayersPass extends Pass {
const layerProps = layer.internalState?.propsInTransition || layer.props;

const moduleParameters = {
layer: {
opacity: layerProps.opacity
} satisfies LayerProps,
layer: layerProps,
picking: {
isActive: false
} satisfies PickingProps,
Expand Down
12 changes: 10 additions & 2 deletions modules/core/src/shaderlib/misc/layer-uniforms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,30 @@
// Copyright (c) vis.gl contributors

import type {ShaderModule} from '@luma.gl/shadertools';
import type {LayerProps} from '../../types/layer-props';

const uniformBlock = `\
uniform layerUniforms {
uniform float opacity;
} layer;
`;

export type LayerProps = {
export type LayerUniforms = {
opacity?: number;
};

export const layerUniforms = {
name: 'layer',
vs: uniformBlock,
fs: uniformBlock,
getUniforms: (props: Partial<LayerProps>) => {
return {
// apply gamma to opacity to make it visually "linear"
// TODO - v10: use raw opacity?
opacity: Math.pow(props.opacity!, 1 / 2.2)
};
},
uniformTypes: {
opacity: 'f32'
}
} as const satisfies ShaderModule<LayerProps>;
} as const satisfies ShaderModule<LayerProps, LayerUniforms>;
2 changes: 1 addition & 1 deletion modules/extensions/src/brushing/brushing-extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ export default class BrushingExtension extends LayerExtension {

draw(this: Layer<BrushingExtensionProps>, params: any, extension: this) {
const {viewport, mousePosition} = params.context;
const {brushingEnabled, brushingRadius, brushingTarget} = params.moduleParameters;
const {brushingEnabled, brushingRadius, brushingTarget} = this.props;
const brushingProps: BrushingModuleProps = {
viewport,
mousePosition,
Expand Down
5 changes: 2 additions & 3 deletions modules/extensions/src/data-filter/data-filter-extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -266,21 +266,20 @@ export default class DataFilterExtension extends LayerExtension<
const filterModel = this.state.filterModel as Model;
const filterNeedsUpdate = this.state.filterNeedsUpdate as boolean;

const {onFilteredItemsChange} = this.props;

if (!this.state.categoryBitMask) {
extension._updateCategoryBitMask.call(this, params, extension);
}

const {
onFilteredItemsChange,
extensions,
filterEnabled,
filterRange,
filterSoftRange,
filterTransformSize,
filterTransformColor,
filterCategories
} = params.moduleParameters;
} = this.props;
const dataFilterProps: DataFilterModuleProps = {
extensions,
filterEnabled,
Expand Down
3 changes: 1 addition & 2 deletions modules/extensions/src/fill-style/fill-style-extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,8 @@ export default class FillStyleExtension extends LayerExtension<FillStyleExtensio
return;
}

const {fillPatternAtlas} = this.props;
const {fillPatternAtlas, fillPatternEnabled, fillPatternMask} = this.props;
const {viewport} = params.context;
const {fillPatternEnabled, fillPatternMask} = params.moduleParameters;
const fillProps: FillStyleModuleProps = {
viewport,
fillPatternEnabled,
Expand Down
2 changes: 1 addition & 1 deletion test/modules/core/lib/layer.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ test('Layer#uniformTransitions', t => {
onAfterUpdate: () =>
t.deepEquals(
drawCalls.pop(),
{opacity: Math.pow(0.5, 1 / 2.2), modelMatrix: scale2Mat4},
{opacity: 0.5, modelMatrix: scale2Mat4},
'layer drawn with opacity in transition'
)
},
Expand Down

0 comments on commit e1726b5

Please sign in to comment.