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