// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[DartPackage="mojo_services"]
module mojo;

struct GpuShaderPrecision {
  int32 min_range;
  int32 max_range;
  int32 precision;
};

struct GpuPerStagePrecisions {
  GpuShaderPrecision low_int;
  GpuShaderPrecision medium_int;
  GpuShaderPrecision high_int;
  GpuShaderPrecision low_float;
  GpuShaderPrecision medium_float;
  GpuShaderPrecision high_float;
};

struct GpuCapabilities {
  GpuPerStagePrecisions vertex_shader_precisions;
  GpuPerStagePrecisions fragment_shader_precisions;
  int32 max_combined_texture_image_units;
  int32 max_cube_map_texture_size;
  int32 max_fragment_uniform_vectors;
  int32 max_renderbuffer_size;
  int32 max_texture_image_units;
  int32 max_texture_size;
  int32 max_varying_vectors;
  int32 max_vertex_attribs;
  int32 max_vertex_texture_image_units;
  int32 max_vertex_uniform_vectors;
  int32 num_compressed_texture_formats;
  int32 num_shader_binary_formats;
  int32 bind_generates_resource_chromium;

  bool post_sub_buffer;
  bool egl_image_external;
  bool texture_format_bgra8888;
  bool texture_format_etc1;
  bool texture_format_etc1_npot;
  bool texture_rectangle;
  bool iosurface;
  bool texture_usage;
  bool texture_storage;
  bool discard_framebuffer;
  bool sync_query;
  bool image;
  bool future_sync_points;
  bool blend_equation_advanced;
  bool blend_equation_advanced_coherent;
};
