blob: 0f54b27615fb5cecf628667ea2c9eee3a56e95aa [file] [log] [blame]
// Copyright 2015 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.
#include "mojo/skia/ganesh_framebuffer_surface.h"
#include <GLES2/gl2.h>
#include "base/logging.h"
namespace mojo {
namespace skia {
GaneshFramebufferSurface::GaneshFramebufferSurface(
const GaneshContext::Scope& scope) {
GLint samples = 0;
glGetIntegerv(GL_SAMPLES, &samples);
GLint stencil_bits = 0;
glGetIntegerv(GL_STENCIL_BITS, &stencil_bits);
GLint framebuffer_binding = 0;
glGetIntegerv(GL_FRAMEBUFFER_BINDING, &framebuffer_binding);
GLint viewport[4] = {0, 0, 0, 0};
glGetIntegerv(GL_VIEWPORT, viewport);
DCHECK(viewport[2] > 0);
DCHECK(viewport[3] > 0);
GrBackendRenderTargetDesc desc;
desc.fWidth = viewport[2];
desc.fHeight = viewport[3];
desc.fConfig = kSkia8888_GrPixelConfig;
desc.fOrigin = kBottomLeft_GrSurfaceOrigin;
desc.fSampleCnt = samples;
desc.fStencilBits = stencil_bits;
desc.fRenderTargetHandle = framebuffer_binding;
surface_ = ::skia::AdoptRef(SkSurface::NewFromBackendRenderTarget(
scope.gr_context().get(), desc, nullptr));
DCHECK(surface_);
}
GaneshFramebufferSurface::~GaneshFramebufferSurface() {}
} // namespace skia
} // namespace mojo