OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |