// 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.

// Generated from Web IDL definitions.

import 'dart:js_interop';

import 'webgl1.dart';

@JS('WEBGL_compressed_texture_pvrtc')
@staticInterop
class WEBGL_compressed_texture_pvrtc {
  external static GLenum get COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
  external static GLenum get COMPRESSED_RGB_PVRTC_2BPPV1_IMG;
  external static GLenum get COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
  external static GLenum get COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;
}
