regl-shape
Version:
2D shape shader for regl
62 lines (61 loc) • 2.09 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRectShader = void 0;
const shader_vert_1 = __importDefault(require("./shader.vert"));
const shader_frag_1 = __importDefault(require("./shader.frag"));
function createRectShader(regl, offsetBuffer, baseOptions) {
const drawConfig = Object.assign(Object.assign({}, baseOptions), { vert: shader_vert_1.default,
frag: shader_frag_1.default, attributes: {
// if point is at the end of segment
lineEnd: {
buffer: offsetBuffer,
divisor: 0,
stride: 8,
offset: 0,
},
// if point is at the top of segment
lineTop: {
buffer: offsetBuffer,
divisor: 0,
stride: 8,
offset: 4,
},
// beginning of line coordinate
aCoord: {
buffer: (_, props) => props.positionBuffer,
stride: 8,
offset: 8,
divisor: 1,
},
// end of line coordinate
bCoord: {
buffer: (_, props) => props.positionBuffer,
stride: 8,
offset: 16,
divisor: 1,
},
aCoordFract: {
buffer: (_, props) => props.positionFractBuffer,
stride: 8,
offset: 8,
divisor: 1,
},
bCoordFract: {
buffer: (_, props) => props.positionFractBuffer,
stride: 8,
offset: 16,
divisor: 1,
},
color: {
buffer: (_, props) => props.colorBuffer,
stride: 4,
offset: 0,
divisor: 1,
},
} });
return regl(drawConfig);
}
exports.createRectShader = createRectShader;