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

Side by Side Diff: chrome/browser/android/vr_shell/vr_shell_renderer.cc

Issue 2729523002: Re-land^2 WebVR compositor bypass via BrowserMain context + mailbox (Closed)
Patch Set: Rebase to 11e28fd6b9380b77273db51ef0b6ccc7ea341944 Created 3 years, 9 months 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
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_gl.cc ('k') | device/vr/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "chrome/browser/android/vr_shell/vr_shell_renderer.h" 5 #include "chrome/browser/android/vr_shell/vr_shell_renderer.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <string> 9 #include <string>
10 10
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 kTextureQuadDataStride, 399 kTextureQuadDataStride,
400 VOID_OFFSET(kPositionDataOffset)); 400 VOID_OFFSET(kPositionDataOffset));
401 glEnableVertexAttribArray(position_handle_); 401 glEnableVertexAttribArray(position_handle_);
402 402
403 // Set up texture coordinate attribute. 403 // Set up texture coordinate attribute.
404 glVertexAttribPointer(tex_coord_handle_, kTextureCoordinateDataSize, GL_FLOAT, 404 glVertexAttribPointer(tex_coord_handle_, kTextureCoordinateDataSize, GL_FLOAT,
405 false, kTextureQuadDataStride, 405 false, kTextureQuadDataStride,
406 VOID_OFFSET(kTextureCoordinateDataOffset)); 406 VOID_OFFSET(kTextureCoordinateDataOffset));
407 glEnableVertexAttribArray(tex_coord_handle_); 407 glEnableVertexAttribArray(tex_coord_handle_);
408 408
409 // Bind texture. Ideally this should be a 1:1 pixel copy. (Or even more 409 // Bind texture. This is a 1:1 pixel copy since the source surface
410 // ideally, a zero copy reuse of the texture.) For now, we're using an 410 // and renderbuffer destination size are resized to match, so use
411 // undersized render target for WebVR, so GL_LINEAR makes it look slightly 411 // GL_NEAREST.
412 // less chunky. TODO(klausw): change this to GL_NEAREST once we're doing
413 // a 1:1 copy since that should be more efficient.
414 glActiveTexture(GL_TEXTURE0); 412 glActiveTexture(GL_TEXTURE0);
415 glBindTexture(GL_TEXTURE_EXTERNAL_OES, texture_handle); 413 glBindTexture(GL_TEXTURE_EXTERNAL_OES, texture_handle);
416 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 414 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
417 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 415 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
418 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 416 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
419 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 417 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
420 glUniform1i(tex_uniform_handle_, 0); 418 glUniform1i(tex_uniform_handle_, 0);
421 419
422 // Blit texture to buffer 420 // Blit texture to buffer
423 glDrawArrays(GL_TRIANGLES, 0, kVerticesNumber); 421 glDrawArrays(GL_TRIANGLES, 0, kVerticesNumber);
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 : textured_quad_renderer_(new TexturedQuadRenderer), 634 : textured_quad_renderer_(new TexturedQuadRenderer),
637 webvr_renderer_(new WebVrRenderer), 635 webvr_renderer_(new WebVrRenderer),
638 reticle_renderer_(new ReticleRenderer), 636 reticle_renderer_(new ReticleRenderer),
639 laser_renderer_(new LaserRenderer), 637 laser_renderer_(new LaserRenderer),
640 gradient_quad_renderer_(new GradientQuadRenderer), 638 gradient_quad_renderer_(new GradientQuadRenderer),
641 gradient_grid_renderer_(new GradientGridRenderer) {} 639 gradient_grid_renderer_(new GradientGridRenderer) {}
642 640
643 VrShellRenderer::~VrShellRenderer() = default; 641 VrShellRenderer::~VrShellRenderer() = default;
644 642
645 } // namespace vr_shell 643 } // namespace vr_shell
OLDNEW
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_gl.cc ('k') | device/vr/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698