blob: b625de784f366da0793c465f632f606dcd56c0af [file] [log] [blame]
// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef WINDOW_MANAGER_COMPOSITOR_GL_INTERFACE_BASE_H_
#define WINDOW_MANAGER_COMPOSITOR_GL_INTERFACE_BASE_H_
#include <string>
#include <vector>
#include "base/basictypes.h"
namespace window_manager {
// This is an abstract base class representing any kind of GL
// interface, so that we can pass them opaquely into the
// RealCompositor without knowing if it is OpenGL or OpenGL|ES.
class GLInterfaceBase {
public:
GLInterfaceBase() {}
virtual ~GLInterfaceBase() {}
virtual bool IsCapableOfPartialUpdates() { return false; }
protected:
// Parse an OpenGL extension string, adding all of the available extensions
// to the out vector
static void ParseExtensionString(std::vector<std::string>* out,
const char* extensions);
// Check the vector of strings for the named extension
static bool HasExtension(const std::vector<std::string>& extensions,
const char* extension);
private:
DISALLOW_COPY_AND_ASSIGN(GLInterfaceBase);
};
}; // namespace window_manager
#endif // WINDOW_MANAGER_COMPOSITOR_GL_INTERFACE_BASE_H_