#include "third_party/skia/include/core/SkSurface.h"
#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_image_egl.h"
namespace viz {
size_.width(), size_.height(), TBM_FORMAT_ARGB8888);
EGLint attrs[] = {EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE};
- image_egl_ = base::MakeRefCounted<gl::GLImageEGL>(size_);
- if (!image_egl_->Initialize(EGL_NATIVE_SURFACE_TIZEN,
- static_cast<EGLClientBuffer>(tbm_surface_),
- attrs, 0, 0)) {
- return;
- }
+ egl_image_ =
+ gl::MakeScopedEGLImage(EGL_NO_CONTEXT, EGL_NATIVE_SURFACE_TIZEN,
+ static_cast<EGLClientBuffer>(tbm_surface_), attrs);
GLuint texture_id = 0;
glGenTextures(1, &texture_id);
glBindTexture(GL_TEXTURE_2D, texture_id);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- image_egl_->BindTexImage(GL_TEXTURE_2D);
- gpu::GetGrBackendTexture(context_state_->feature_info(), GL_TEXTURE_2D,
- size_, texture_id, RGBA_8888,
+ glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, egl_image_.get());
+
+ gpu::GetGrBackendTexture(context_state_->feature_info(), GL_TEXTURE_2D, size_,
+ texture_id, kRGBA_8888_SkColorType,
context_state_->gr_context()->threadSafeProxy(),
&backend_texture_);
}
void SkiaOutputDeviceOffscreenTBM::DiscardBackbuffer() {
- if (image_egl_)
- image_egl_.release();
-
if (tbm_surface_) {
if (tbm_surface_destroy(tbm_surface_) != TBM_SURFACE_ERROR_NONE)
LOG(ERROR) << "Failed to destroy tbm surface.";