1// Copyright (c) 2012 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 PAPPI_TESTS_TEST_GRAPHICS_3D_H_
6#define PAPPI_TESTS_TEST_GRAPHICS_3D_H_
7
8#include <string>
9#include "ppapi/tests/test_case.h"
10
11struct PPB_OpenGLES2;
12
13namespace pp {
14class Graphics3D;
15}  // namespace pp
16
17class TestGraphics3D : public TestCase {
18 public:
19  TestGraphics3D(TestingInstance* instance) : TestCase(instance) {}
20
21  // TestCase implementation.
22  virtual bool Init();
23  virtual void RunTests(const std::string& filter);
24
25 private:
26  // Various tests.
27  std::string TestExtensionsGL();
28  std::string TestFrameGL();
29  std::string TestFramePPAPI();
30  std::string TestBadResource();
31
32  // Utils used by various tests.
33  int32_t SwapBuffersSync(pp::Graphics3D* context);
34  std::string CheckPixelPPAPI(pp::Graphics3D* context,
35                             int x, int y, const uint8_t expected_color[4]);
36  std::string CheckPixelGL(int x, int y, const uint8_t expected_color[4]);
37
38  // OpenGL ES2 interface.
39  const PPB_OpenGLES2* opengl_es2_;
40};
41
42#endif  // PAPPI_TESTS_TEST_GRAPHICS_3D_H_
43