Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Side by Side Diff: mojo/skia/ganesh_framebuffer_surface.cc

Issue 1534033002: Improve Ganesh helpers. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-8
Patch Set: fix includes Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/skia/ganesh_framebuffer_surface.h"
6
5 #include <GLES2/gl2.h> 7 #include <GLES2/gl2.h>
6 8
7 #include "base/logging.h" 9 #include "base/logging.h"
8 #include "mojo/skia/ganesh_framebuffer_surface.h" 10 #include "mojo/skia/ganesh_context.h"
9 11
10 namespace mojo { 12 namespace mojo {
13 namespace skia {
11 14
12 GaneshFramebufferSurface::GaneshFramebufferSurface(GaneshContext* context) { 15 GaneshFramebufferSurface::GaneshFramebufferSurface(GaneshContext* context) {
13 DCHECK(context); 16 DCHECK(context);
14 GaneshContext::Scope scope(context); 17 GaneshContext::Scope scope(context);
15 18
16 GLint samples = 0; 19 GLint samples = 0;
17 glGetIntegerv(GL_SAMPLES, &samples); 20 glGetIntegerv(GL_SAMPLES, &samples);
18 GLint stencil_bits = 0; 21 GLint stencil_bits = 0;
19 glGetIntegerv(GL_STENCIL_BITS, &stencil_bits); 22 glGetIntegerv(GL_STENCIL_BITS, &stencil_bits);
20 GLint framebuffer_binding = 0; 23 GLint framebuffer_binding = 0;
21 glGetIntegerv(GL_FRAMEBUFFER_BINDING, &framebuffer_binding); 24 glGetIntegerv(GL_FRAMEBUFFER_BINDING, &framebuffer_binding);
22 GLint viewport[4] = {0, 0, 0, 0}; 25 GLint viewport[4] = {0, 0, 0, 0};
23 glGetIntegerv(GL_VIEWPORT, viewport); 26 glGetIntegerv(GL_VIEWPORT, viewport);
24 DCHECK(viewport[2] > 0); 27 DCHECK(viewport[2] > 0);
25 DCHECK(viewport[3] > 0); 28 DCHECK(viewport[3] > 0);
26 29
27 GrBackendRenderTargetDesc desc; 30 GrBackendRenderTargetDesc desc;
28 desc.fWidth = viewport[2]; 31 desc.fWidth = viewport[2];
29 desc.fHeight = viewport[3]; 32 desc.fHeight = viewport[3];
30 desc.fConfig = kSkia8888_GrPixelConfig; 33 desc.fConfig = kSkia8888_GrPixelConfig;
31 desc.fOrigin = kBottomLeft_GrSurfaceOrigin; 34 desc.fOrigin = kBottomLeft_GrSurfaceOrigin;
32 desc.fSampleCnt = samples; 35 desc.fSampleCnt = samples;
33 desc.fStencilBits = stencil_bits; 36 desc.fStencilBits = stencil_bits;
34 desc.fRenderTargetHandle = framebuffer_binding; 37 desc.fRenderTargetHandle = framebuffer_binding;
35 GrRenderTarget* render_target =
36 context->gr()->textureProvider()->wrapBackendRenderTarget(desc);
37 DCHECK(render_target);
38 38
39 surface_ = skia::AdoptRef(SkSurface::NewRenderTargetDirect(render_target)); 39 surface_ = ::skia::AdoptRef(SkSurface::NewFromBackendRenderTarget(
40 context->gr_context(), desc, nullptr));
40 DCHECK(surface_); 41 DCHECK(surface_);
41 } 42 }
42 43
43 GaneshFramebufferSurface::~GaneshFramebufferSurface() {} 44 GaneshFramebufferSurface::~GaneshFramebufferSurface() {}
44 45
46 } // namespace skia
45 } // namespace mojo 47 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698