Home | History | Annotate | Download | only in libGLESv2
      1 //
      2 // Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
      3 // Use of this source code is governed by a BSD-style license that can be
      4 // found in the LICENSE file.
      5 //
      6 
      7 // Contants.h: Defines some implementation specific and gl constants
      8 
      9 #ifndef LIBGLESV2_CONSTANTS_H_
     10 #define LIBGLESV2_CONSTANTS_H_
     11 
     12 namespace gl
     13 {
     14 
     15 enum
     16 {
     17     MAX_VERTEX_ATTRIBS = 16,
     18 
     19     // Implementation upper limits, real maximums depend on the hardware
     20     IMPLEMENTATION_MAX_VARYING_VECTORS = 32,
     21     IMPLEMENTATION_MAX_DRAW_BUFFERS = 8,
     22     IMPLEMENTATION_MAX_FRAMEBUFFER_ATTACHMENTS = IMPLEMENTATION_MAX_DRAW_BUFFERS + 2, // 2 extra for depth and/or stencil buffers
     23 
     24     IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS = 16,
     25     IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS = 16,
     26     IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS = IMPLEMENTATION_MAX_VERTEX_SHADER_UNIFORM_BUFFERS +
     27                                                          IMPLEMENTATION_MAX_FRAGMENT_SHADER_UNIFORM_BUFFERS,
     28 
     29     IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_BUFFERS = 4,
     30 
     31     // These are the maximums the implementation can support
     32     // The actual GL caps are limited by the device caps
     33     // and should be queried from the Context
     34     IMPLEMENTATION_MAX_2D_TEXTURE_SIZE = 16384,
     35     IMPLEMENTATION_MAX_CUBE_MAP_TEXTURE_SIZE = 16384,
     36     IMPLEMENTATION_MAX_3D_TEXTURE_SIZE = 2048,
     37     IMPLEMENTATION_MAX_2D_ARRAY_TEXTURE_LAYERS = 2048,
     38 
     39     IMPLEMENTATION_MAX_TEXTURE_LEVELS = 15   // 1+log2 of MAX_TEXTURE_SIZE
     40 };
     41 
     42 }
     43 
     44 #endif // LIBGLESV2_CONSTANTS_H_
     45