blob: 5cce9125cac1c73ffd0bf18b69ef014fb44b4226 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#pragma once
#include <cstddef>
#include "flutter/fml/macros.h"
#include "impeller/geometry/size.h"
#include "impeller/renderer/shader_types.h"
namespace impeller {
class ProcTableGLES;
struct CapabilitiesGLES {
CapabilitiesGLES(const ProcTableGLES& gl);
// Must be at least 8.
size_t max_combined_texture_image_units = 8;
// Must be at least 16.
size_t max_cube_map_texture_size = 16;
// Must be at least 16.
size_t max_fragment_uniform_vectors = 16;
// Must be at least 1.
size_t max_renderbuffer_size = 1;
// Must be at least 8.
size_t max_texture_image_units = 8;
// Must be at least 64.
ISize max_texture_size = ISize{64, 64};
// Must be at least 8.
size_t max_varying_vectors = 8;
// Must be at least 8.
size_t max_vertex_attribs = 8;
// May be 0.
size_t max_vertex_texture_image_units = 0;
// Must be at least 128.
size_t max_vertex_uniform_vectors = 128;
// Must be at least display size.
ISize max_viewport_dims;
// May be 0.
size_t num_compressed_texture_formats = 0;
// May be 0.
size_t num_shader_binary_formats = 0;
size_t GetMaxTextureUnits(ShaderStage stage) const;
};
} // namespace impeller