chromium/third_party/angle/src/libANGLE/GLES1Renderer.h

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

// GLES1Renderer.h: Defines GLES1 emulation rendering operations on top of a GLES3
// context. Used by Context.h.

#ifndef LIBANGLE_GLES1_RENDERER_H_
#define LIBANGLE_GLES1_RENDERER_H_

#include "GLES1State.h"
#include "angle_gl.h"
#include "common/angleutils.h"
#include "common/hash_containers.h"
#include "libANGLE/angletypes.h"

#include <memory>
#include <string>
#include <unordered_map>

namespace gl
{
class Context;
class GLES1State;
class Program;
class State;
class Shader;
class ShaderProgramManager;

enum class GLES1StateEnables : uint64_t
{};

constexpr int kClipPlaneCount =;
constexpr int kTexUnitCount   =;
constexpr int kLightCount     =;

GLES1StateEnabledBitSet;

struct GLES1ShaderState
{};

bool operator==(const GLES1ShaderState &a, const GLES1ShaderState &b);
bool operator!=(const GLES1ShaderState &a, const GLES1ShaderState &b);

}  // namespace gl

namespace std
{
template <>
struct hash<gl::GLES1ShaderState>
{};
}  // namespace std

namespace gl
{

class GLES1Renderer final : angle::NonCopyable
{};

}  // namespace gl

#endif  // LIBANGLE_GLES1_RENDERER_H_