// 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.
#ifndef PAPPI_TESTS_TEST_GRAPHICS_3D_H_
#define PAPPI_TESTS_TEST_GRAPHICS_3D_H_
#include <string>
#include "ppapi/tests/test_case.h"
struct PPB_OpenGLES2;
namespace pp {
class Graphics3D;
} // namespace pp
class TestGraphics3D : public TestCase {
public:
TestGraphics3D(TestingInstance* instance) : TestCase(instance) {}
// TestCase implementation.
virtual bool Init();
virtual void RunTests(const std::string& filter);
private:
// Various tests.
std::string TestExtensionsGL();
std::string TestFrameGL();
std::string TestFramePPAPI();
std::string TestBadResource();
// Utils used by various tests.
int32_t SwapBuffersSync(pp::Graphics3D* context);
std::string CheckPixelPPAPI(pp::Graphics3D* context,
int x, int y, const uint8_t expected_color[4]);
std::string CheckPixelGL(int x, int y, const uint8_t expected_color[4]);
// OpenGL ES2 interface.
const PPB_OpenGLES2* opengl_es2_;
};
#endif // PAPPI_TESTS_TEST_GRAPHICS_3D_H_