setViewport method

void setViewport(
  1. int x,
  2. int y,
  3. int width,
  4. int height,
)

Sets the viewport.

The viewport defines the area of the canvas where rendering will occur.

  • x: The x-coordinate of the lower-left corner of the viewport.
  • y: The y-coordinate of the lower-left corner of the viewport.
  • width: The width of the viewport.
  • height: The height of the viewport.

Implementation

void setViewport(int x, int y, int width, int height) {
  final glY = _canvas.height - height - y;

  if (_renderState.viewport.x != x ||
      _renderState.viewport.y != glY ||
      _renderState.viewport.width != width ||
      _renderState.viewport.height != height) {
    _renderState.viewport.set(x, glY, width, height);
    gl.viewport(
      _renderState.viewport.x,
      _renderState.viewport.y,
      _renderState.viewport.width,
      _renderState.viewport.height,
    );
    if (_renderState.isScissorEnabled) {
      gl.scissor(
        _renderState.scissor.x,
        _renderState.scissor.y,
        _renderState.scissor.width,
        _renderState.scissor.height,
      );
    }
  }
}