программно определять режим рендеринга в p5 js? - PullRequest
0 голосов
/ 30 марта 2020

для механизма рендеринга p5 js, если в функции setup () я использую WEBGL против P2D, как я узнаю позже в своем коде, в каком режиме рендеринга я нахожусь? Я написал обобщенные c функции, которые работают в режимах 2D и 3D, и я хочу, чтобы код выполнялся по-разному в зависимости от режима рендеринга.

1 Ответ

0 голосов
/ 30 марта 2020

Возможно, есть более простые и элегантные способы сделать это, но, в крайнем случае, вы можете прочитать drawingContext используемого рендерера и посмотреть, является ли он экземпляром WebGLRenderingContext или CanvasRenderingContext2D

const webglSketch = p => {
	p.setup = () => {
		p.createCanvas(100, 100, p.WEBGL)
		p.background('red')
		console.log('WEBGL?', p._renderer.drawingContext instanceof WebGLRenderingContext)
		console.log('2D?', p._renderer.drawingContext instanceof CanvasRenderingContext2D)
	}
}

const twoDSketch = p => {
	p.setup = () => {
		p.createCanvas(100, 100)
		p.background('blue')
		console.log('WEBGL?', p._renderer.drawingContext instanceof WebGLRenderingContext)
		console.log('2D?', p._renderer.drawingContext instanceof CanvasRenderingContext2D)
	}
}

new p5(webglSketch)
new p5(twoDSketch)
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.0.0/p5.min.js"></script>

Если вы не используете режим экземпляра, просто проверьте глобальный объект _renderer.

...