// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// API docs from [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web).
// Attributions and copyright licensing by Mozilla Contributors is licensed
// under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/.

// Generated from Web IDL definitions.

// ignore_for_file: unintended_html_in_doc_comment

@JS()
library;

import 'dart:js_interop';

import 'webgl1.dart';

extension type WEBGL_draw_buffers._(JSObject _) implements JSObject {
  static const GLenum COLOR_ATTACHMENT0_WEBGL = 36064;

  static const GLenum COLOR_ATTACHMENT1_WEBGL = 36065;

  static const GLenum COLOR_ATTACHMENT2_WEBGL = 36066;

  static const GLenum COLOR_ATTACHMENT3_WEBGL = 36067;

  static const GLenum COLOR_ATTACHMENT4_WEBGL = 36068;

  static const GLenum COLOR_ATTACHMENT5_WEBGL = 36069;

  static const GLenum COLOR_ATTACHMENT6_WEBGL = 36070;

  static const GLenum COLOR_ATTACHMENT7_WEBGL = 36071;

  static const GLenum COLOR_ATTACHMENT8_WEBGL = 36072;

  static const GLenum COLOR_ATTACHMENT9_WEBGL = 36073;

  static const GLenum COLOR_ATTACHMENT10_WEBGL = 36074;

  static const GLenum COLOR_ATTACHMENT11_WEBGL = 36075;

  static const GLenum COLOR_ATTACHMENT12_WEBGL = 36076;

  static const GLenum COLOR_ATTACHMENT13_WEBGL = 36077;

  static const GLenum COLOR_ATTACHMENT14_WEBGL = 36078;

  static const GLenum COLOR_ATTACHMENT15_WEBGL = 36079;

  static const GLenum DRAW_BUFFER0_WEBGL = 34853;

  static const GLenum DRAW_BUFFER1_WEBGL = 34854;

  static const GLenum DRAW_BUFFER2_WEBGL = 34855;

  static const GLenum DRAW_BUFFER3_WEBGL = 34856;

  static const GLenum DRAW_BUFFER4_WEBGL = 34857;

  static const GLenum DRAW_BUFFER5_WEBGL = 34858;

  static const GLenum DRAW_BUFFER6_WEBGL = 34859;

  static const GLenum DRAW_BUFFER7_WEBGL = 34860;

  static const GLenum DRAW_BUFFER8_WEBGL = 34861;

  static const GLenum DRAW_BUFFER9_WEBGL = 34862;

  static const GLenum DRAW_BUFFER10_WEBGL = 34863;

  static const GLenum DRAW_BUFFER11_WEBGL = 34864;

  static const GLenum DRAW_BUFFER12_WEBGL = 34865;

  static const GLenum DRAW_BUFFER13_WEBGL = 34866;

  static const GLenum DRAW_BUFFER14_WEBGL = 34867;

  static const GLenum DRAW_BUFFER15_WEBGL = 34868;

  static const GLenum MAX_COLOR_ATTACHMENTS_WEBGL = 36063;

  static const GLenum MAX_DRAW_BUFFERS_WEBGL = 34852;

  external void drawBuffersWEBGL(JSArray<JSNumber> buffers);
}
