regl-shape
Version:
2D shape shader for regl
73 lines (72 loc) • 2.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMiterShader = void 0;
const shader_vert_1 = __importDefault(require("./shader.vert"));
const shader_frag_1 = __importDefault(require("./shader.frag"));
function createMiterShader(regl, offsetBuffer, baseOptions) {
const drawConfig = Object.assign(Object.assign({}, baseOptions), {
// culling removes polygon creasing
cull: {
enable: true,
face: "back",
}, vert: shader_vert_1.default,
frag: shader_frag_1.default, attributes: {
// is line end
lineEnd: {
buffer: offsetBuffer,
divisor: 0,
stride: 8,
offset: 0,
},
// is line top
lineTop: {
buffer: offsetBuffer,
divisor: 0,
stride: 8,
offset: 4,
},
// left color
aColor: {
buffer: (_, props) => props.colorBuffer,
stride: 4,
offset: 0,
divisor: 1,
},
// right color
bColor: {
buffer: (_, props) => props.colorBuffer,
stride: 4,
offset: 4,
divisor: 1,
},
prevCoord: {
buffer: (_, props) => props.positionBuffer,
stride: 8,
offset: 0,
divisor: 1,
},
aCoord: {
buffer: (_, props) => props.positionBuffer,
stride: 8,
offset: 8,
divisor: 1,
},
bCoord: {
buffer: (_, props) => props.positionBuffer,
stride: 8,
offset: 16,
divisor: 1,
},
nextCoord: {
buffer: (_, props) => props.positionBuffer,
stride: 8,
offset: 24,
divisor: 1,
},
} });
return regl(drawConfig);
}
exports.createMiterShader = createMiterShader;