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. This is a 1:1 pixel copy since the source surface | 409 // Bind texture. Ideally this should be a 1:1 pixel copy. (Or even more |
410 // and renderbuffer destination size are resized to match, so use | 410 // ideally, a zero copy reuse of the texture.) For now, we're using an |
411 // GL_NEAREST. | 411 // undersized render target for WebVR, so GL_LINEAR makes it look slightly |
| 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. |
412 glActiveTexture(GL_TEXTURE0); | 414 glActiveTexture(GL_TEXTURE0); |
413 glBindTexture(GL_TEXTURE_EXTERNAL_OES, texture_handle); | 415 glBindTexture(GL_TEXTURE_EXTERNAL_OES, texture_handle); |
414 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | 416 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
415 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | 417 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
416 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_NEAREST); | 418 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_NEAREST); |
417 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_NEAREST); | 419 glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_NEAREST); |
418 glUniform1i(tex_uniform_handle_, 0); | 420 glUniform1i(tex_uniform_handle_, 0); |
419 | 421 |
420 // Blit texture to buffer | 422 // Blit texture to buffer |
421 glDrawArrays(GL_TRIANGLES, 0, kVerticesNumber); | 423 glDrawArrays(GL_TRIANGLES, 0, kVerticesNumber); |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
634 : textured_quad_renderer_(new TexturedQuadRenderer), | 636 : textured_quad_renderer_(new TexturedQuadRenderer), |
635 webvr_renderer_(new WebVrRenderer), | 637 webvr_renderer_(new WebVrRenderer), |
636 reticle_renderer_(new ReticleRenderer), | 638 reticle_renderer_(new ReticleRenderer), |
637 laser_renderer_(new LaserRenderer), | 639 laser_renderer_(new LaserRenderer), |
638 gradient_quad_renderer_(new GradientQuadRenderer), | 640 gradient_quad_renderer_(new GradientQuadRenderer), |
639 gradient_grid_renderer_(new GradientGridRenderer) {} | 641 gradient_grid_renderer_(new GradientGridRenderer) {} |
640 | 642 |
641 VrShellRenderer::~VrShellRenderer() = default; | 643 VrShellRenderer::~VrShellRenderer() = default; |
642 | 644 |
643 } // namespace vr_shell | 645 } // namespace vr_shell |
OLD | NEW |