Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
change stroke shader constants/ preprocessor to be compatible with we…
…bgpu and webgl
  • Loading branch information
lukeplowden committed Jun 16, 2025
commit d88fba92a6ab643d0205b02e41e107230ad3b647
8 changes: 4 additions & 4 deletions src/core/p5.Renderer3D.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@ import { RenderBuffer } from "../webgl/p5.RenderBuffer";
import { Image } from "../image/p5.Image";
import { Texture } from "../webgl/p5.Texture";

export function getStrokeDefs() {
export function getStrokeDefs(shaderConstant) {
const STROKE_CAP_ENUM = {};
const STROKE_JOIN_ENUM = {};
let lineDefs = "";
const defineStrokeCapEnum = function (key, val) {
lineDefs += `#define STROKE_CAP_${key} ${val}\n`;
lineDefs += shaderConstant(`STROKE_CAP_${key}`, `${val}`, 'u32');
STROKE_CAP_ENUM[constants[key]] = val;
};
const defineStrokeJoinEnum = function (key, val) {
lineDefs += `#define STROKE_JOIN_${key} ${val}\n`;
lineDefs += shaderConstant(`STROKE_JOIN_${key}`, `${val}`, 'u32');
STROKE_JOIN_ENUM[constants[key]] = val;
};

Expand All @@ -41,7 +41,7 @@ export function getStrokeDefs() {
return { STROKE_CAP_ENUM, STROKE_JOIN_ENUM, lineDefs };
}

const { STROKE_CAP_ENUM, STROKE_JOIN_ENUM } = getStrokeDefs();
const { STROKE_CAP_ENUM, STROKE_JOIN_ENUM } = getStrokeDefs(()=>"");

export class Renderer3D extends Renderer {
constructor(pInst, w, h, isMainCanvas, elt) {
Expand Down
2 changes: 1 addition & 1 deletion src/webgl/p5.RendererGL.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import filterInvertFrag from "./shaders/filters/invert.frag";
import filterThresholdFrag from "./shaders/filters/threshold.frag";
import filterShaderVert from "./shaders/filters/default.vert";

const { lineDefs } = getStrokeDefs();
const { lineDefs } = getStrokeDefs((n, v) => `#define ${n} ${v};\n`);

const defaultShaders = {
normalVert,
Expand Down
6 changes: 5 additions & 1 deletion src/webgpu/p5.RendererWebGPU.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import { Renderer3D } from '../core/p5.Renderer3D';
import { Renderer3D, getStrokeDefs } from '../core/p5.Renderer3D';
import { Shader } from '../webgl/p5.Shader';
import * as constants from '../core/constants';


import { colorVertexShader, colorFragmentShader } from './shaders/color';
import { lineVertexShader, lineFragmentShader} from './shaders/line';
import { materialVertexShader, materialFragmentShader } from './shaders/material';

const { lineDefs } = getStrokeDefs((n, v, t) => `const ${n}: ${t} = ${v};\n`);

class RendererWebGPU extends Renderer3D {
constructor(pInst, w, h, isMainCanvas, elt) {
super(pInst, w, h, isMainCanvas, elt)
Expand Down