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