cef/libcef/browser/gpu/external_texture_manager.h
Greg Wessels 713eebcafc Add support for shared texture and external BeginFrame in OSR mode (issue #1006)
- Add CefWindowInfo::shared_texture_enabled and
  CefRenderHandler::OnAcceleratedPaint for shared texture support. Currently
  only supported on Windows (D3D11).
- Add CefWindowInfo::external_begin_frame_enabled and
  CefBrowserHost::SendExternalBeginFrame for external begin frame support.
2018-09-26 13:10:49 +02:00

47 lines
1.2 KiB
C++

// Copyright 2018 The Chromium Embedded Framework 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 CEF_LIBCEF_BROWSER_GPU_EXTERNAL_TEXTURE_MANAGER_H_
#define CEF_LIBCEF_BROWSER_GPU_EXTERNAL_TEXTURE_MANAGER_H_
#pragma once
#include <map>
#include "gpu/command_buffer/service/texture_manager.h"
#include "gpu/gpu_export.h"
#include "ui/gl/gl_image.h"
#include "ui/gl/gl_surface_egl.h"
namespace gl {
class GLImage;
}
namespace gpu {
namespace gles2 {
class GPU_GLES2_EXPORT ExternalTextureManager {
public:
ExternalTextureManager();
~ExternalTextureManager();
void* CreateTexture(GLuint texture_id,
uint32_t width,
uint32_t height,
TextureManager* tex_man);
void LockTexture(void* handle);
void UnlockTexture(void* handle);
void DeleteTexture(void* handle, TextureManager* tex_man);
private:
typedef std::map<void*, scoped_refptr<gl::GLImage>> ExternalSurfaceMap;
ExternalSurfaceMap surfaceMap_;
};
} // namespace gles2
} // namespace gpu
#endif // CEF_LIBCEF_BROWSER_GPU_EXTERNAL_TEXTURE_MANAGER_H_