// Copyright (c) 2012 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.

// This file contains the ContextState class.

#ifndef GPU_COMMAND_BUFFER_CLIENT_CLIENT_CONTEXT_STATE_H_
#define GPU_COMMAND_BUFFER_CLIENT_CLIENT_CONTEXT_STATE_H_

#include <GLES2/gl2.h>
#include <vector>
#include "gles2_impl_export.h"

namespace gpu {
namespace gles2 {

struct GLES2_IMPL_EXPORT ClientContextState {
  ClientContextState();
  ~ClientContextState();

  // Returns true if state was cached in which case 'enabled' will be set to the
  // current state.
  bool GetEnabled(GLenum cap, bool* enabled) const;

  // Sets the state of a capability.
  // Returns true if the capability is one that is cached.
  // 'changed' will be true if the state was different from 'enabled.
  bool SetCapabilityState(GLenum cap, bool enabled, bool* changed);

  #include "gpu/command_buffer/client/client_context_state_autogen.h"

  EnableFlags enable_flags;
};

}  // namespace gles2
}  // namespace gpu

#endif  // GPU_COMMAND_BUFFER_CLIENT_CLIENT_CONTEXT_STATE_H_

