1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <stdio.h> 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <cmath> 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <string> 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <vector> 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/public/test/unittest_test_suite.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ui/gl/gl_surface.h" 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h" 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace { 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 178bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)using webkit::gpu::WebGraphicsContext3DInProcessCommandBufferImpl; 188bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass ContextTestBase : public testing::Test { 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public: 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void SetUp() { 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebGraphicsContext3D::Attributes attributes; 23e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch bool lose_context_when_out_of_memory = false; 24e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch typedef WebGraphicsContext3DInProcessCommandBufferImpl WGC3DIPCBI; 25e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch context_ = WGC3DIPCBI::CreateOffscreenContext( 26e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch attributes, lose_context_when_out_of_memory); 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch context_->makeContextCurrent(); 288bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) context_support_ = context_->GetContextSupport(); 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void TearDown() { 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch context_.reset(NULL); 33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch protected: 368bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> context_; 378bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) gpu::ContextSupport* context_support_; 38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Include the actual tests. 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define CONTEXT_TEST_F TEST_F 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/common/gpu/client/gpu_context_tests.h" 45