blob: 4007e767a21fae049b2c029e7f3d6b134ff80379 [file] [log] [blame]
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_GPU_GRAPHICS_CONTEXT_3D_UTILS_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_GPU_GRAPHICS_CONTEXT_3D_UTILS_H_
#include "base/memory/weak_ptr.h"
#include "gpu/command_buffer/common/mailbox.h"
#include "gpu/command_buffer/common/sync_token.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
#include "third_party/skia/include/core/SkImage.h"
typedef unsigned int GLenum;
namespace blink {
class WebGraphicsContext3DProviderWrapper;
class PLATFORM_EXPORT GraphicsContext3DUtils {
USING_FAST_MALLOC(GraphicsContext3DUtils);
public:
// The constructor takes a weak ref to the wrapper because it internally
// it generates callbacks that may outlive the wrapper.
GraphicsContext3DUtils(base::WeakPtr<WebGraphicsContext3DProviderWrapper>&&
context_provider_wrapper)
: context_provider_wrapper_(std::move(context_provider_wrapper)) {}
bool Accelerated2DCanvasFeatureEnabled();
private:
base::WeakPtr<WebGraphicsContext3DProviderWrapper> context_provider_wrapper_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_GPU_GRAPHICS_CONTEXT_3D_UTILS_H_