test_texture.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CC_TEST_TEST_TEXTURE_H_
6#define CC_TEST_TEST_TEXTURE_H_
7
8#include "base/containers/hash_tables.h"
9#include "base/memory/ref_counted.h"
10#include "base/memory/scoped_ptr.h"
11#include "cc/resources/resource_format.h"
12#include "third_party/khronos/GLES2/gl2.h"
13#include "ui/gfx/size.h"
14
15namespace cc {
16
17size_t TextureSizeBytes(const gfx::Size& size, ResourceFormat format);
18
19struct TestTexture : public base::RefCounted<TestTexture> {
20  TestTexture();
21
22  void Reallocate(const gfx::Size& size, ResourceFormat format);
23  bool IsValidParameter(GLenum pname);
24
25  gfx::Size size;
26  ResourceFormat format;
27  scoped_ptr<uint8_t[]> data;
28
29  typedef base::hash_map<GLenum, GLint>
30      TextureParametersMap;
31  TextureParametersMap params;
32
33 private:
34  friend class base::RefCounted<TestTexture>;
35  ~TestTexture();
36};
37
38}  // namespace cc
39
40#endif  // CC_TEST_TEST_TEXTURE_H_
41