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

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

Issue 2834543006: Hook up insecure content warnings for http webVR presentation. (Closed)
Patch Set: Add missing files Created 3 years, 8 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
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_gl.h" 5 #include "chrome/browser/android/vr_shell/vr_shell_gl.h"
6 6
7 #include <chrono> 7 #include <chrono>
8 #include <limits> 8 #include <limits>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 CreateContentSurface(); 287 CreateContentSurface();
288 content_surface_texture_->SetFrameAvailableCallback(base::Bind( 288 content_surface_texture_->SetFrameAvailableCallback(base::Bind(
289 &VrShellGl::OnContentFrameAvailable, weak_ptr_factory_.GetWeakPtr())); 289 &VrShellGl::OnContentFrameAvailable, weak_ptr_factory_.GetWeakPtr()));
290 webvr_surface_texture_->SetFrameAvailableCallback(base::Bind( 290 webvr_surface_texture_->SetFrameAvailableCallback(base::Bind(
291 &VrShellGl::OnWebVRFrameAvailable, weak_ptr_factory_.GetWeakPtr())); 291 &VrShellGl::OnWebVRFrameAvailable, weak_ptr_factory_.GetWeakPtr()));
292 content_surface_texture_->SetDefaultBufferSize( 292 content_surface_texture_->SetDefaultBufferSize(
293 content_tex_physical_size_.width(), content_tex_physical_size_.height()); 293 content_tex_physical_size_.width(), content_tex_physical_size_.height());
294 294
295 InitializeRenderer(); 295 InitializeRenderer();
296 296
297 scene_->OnGLInitialized();
cjgrant 2017/04/21 14:30:13 So just my opinion here, but I really don't like t
mthiesse 2017/04/21 15:05:12 Agreed, but I avoided doing that for now because t
cjgrant 2017/04/21 15:19:33 Mind making a (single or separate) bug for rendere
298
297 gfx::Size webvr_size = 299 gfx::Size webvr_size =
298 device::GvrDelegate::GetRecommendedWebVrSize(gvr_api_.get()); 300 device::GvrDelegate::GetRecommendedWebVrSize(gvr_api_.get());
299 DVLOG(1) << __FUNCTION__ << ": resize initial to " << webvr_size.width() 301 DVLOG(1) << __FUNCTION__ << ": resize initial to " << webvr_size.width()
300 << "x" << webvr_size.height(); 302 << "x" << webvr_size.height();
301 303
302 CreateOrResizeWebVRSurface(webvr_size); 304 CreateOrResizeWebVRSurface(webvr_size);
303 305
304 vsync_task_.Reset(base::Bind(&VrShellGl::OnVSync, base::Unretained(this))); 306 vsync_task_.Reset(base::Bind(&VrShellGl::OnVSync, base::Unretained(this)));
305 OnVSync(); 307 OnVSync();
306 308
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 } 989 }
988 } 990 }
989 991
990 void VrShellGl::DrawElements(const vr::Mat4f& view_proj_matrix, 992 void VrShellGl::DrawElements(const vr::Mat4f& view_proj_matrix,
991 const std::vector<const UiElement*>& elements) { 993 const std::vector<const UiElement*>& elements) {
992 for (const auto* rect : elements) { 994 for (const auto* rect : elements) {
993 vr::Mat4f transform; 995 vr::Mat4f transform;
994 vr::MatrixMul(view_proj_matrix, rect->TransformMatrix(), &transform); 996 vr::MatrixMul(view_proj_matrix, rect->TransformMatrix(), &transform);
995 997
996 switch (rect->fill) { 998 switch (rect->fill) {
997 case Fill::SKIA: {
998 break;
999 }
1000 case Fill::OPAQUE_GRADIENT: { 999 case Fill::OPAQUE_GRADIENT: {
1001 vr_shell_renderer_->GetTexturedQuadRenderer()->Flush();
1002 vr_shell_renderer_->GetGradientQuadRenderer()->Draw( 1000 vr_shell_renderer_->GetGradientQuadRenderer()->Draw(
1003 transform, rect->edge_color, rect->center_color, 1001 transform, rect->edge_color, rect->center_color,
1004 rect->computed_opacity); 1002 rect->computed_opacity);
1005 break; 1003 break;
1006 } 1004 }
1007 case Fill::GRID_GRADIENT: { 1005 case Fill::GRID_GRADIENT: {
1008 vr_shell_renderer_->GetTexturedQuadRenderer()->Flush();
1009 vr_shell_renderer_->GetGradientGridRenderer()->Draw( 1006 vr_shell_renderer_->GetGradientGridRenderer()->Draw(
1010 transform, rect->edge_color, rect->center_color, 1007 transform, rect->edge_color, rect->center_color,
1011 rect->gridline_count, rect->computed_opacity); 1008 rect->gridline_count, rect->computed_opacity);
1012 break; 1009 break;
1013 } 1010 }
1014 case Fill::CONTENT: { 1011 case Fill::CONTENT: {
1015 gfx::RectF copy_rect(0, 0, 1, 1); 1012 gfx::RectF copy_rect(0, 0, 1, 1);
1016 vr_shell_renderer_->GetTexturedQuadRenderer()->AddQuad( 1013 vr_shell_renderer_->GetTexturedQuadRenderer()->Draw(
1017 content_texture_id_, transform, copy_rect, rect->computed_opacity); 1014 content_texture_id_, transform, copy_rect, rect->computed_opacity);
1018 break; 1015 break;
1019 } 1016 }
1017 case Fill::SELF: {
1018 rect->Render(vr_shell_renderer_.get(), transform);
1019 break;
1020 }
1020 default: 1021 default:
1021 break; 1022 break;
1022 } 1023 }
1023 } 1024 }
1024 1025 vr_shell_renderer_->GetSkiaQuadRenderer()->Flush();
cjgrant 2017/04/21 14:30:13 This isn't healthy IMO. Longer-term, vr_shell_ren
mthiesse 2017/04/21 15:05:12 Changed to vr_shell_renderer_->Flush(); for now. L
1025 vr_shell_renderer_->GetTexturedQuadRenderer()->Flush();
1026 } 1026 }
1027 1027
1028 std::vector<const UiElement*> VrShellGl::GetElementsInDrawOrder( 1028 std::vector<const UiElement*> VrShellGl::GetElementsInDrawOrder(
1029 const vr::Mat4f& view_matrix, 1029 const vr::Mat4f& view_matrix,
1030 const std::vector<const UiElement*>& elements) { 1030 const std::vector<const UiElement*>& elements) {
1031 typedef std::pair<float, const UiElement*> DistanceElementPair; 1031 typedef std::pair<float, const UiElement*> DistanceElementPair;
1032 std::vector<DistanceElementPair> zOrderedElementPairs; 1032 std::vector<DistanceElementPair> zOrderedElementPairs;
1033 zOrderedElementPairs.reserve(elements.size()); 1033 zOrderedElementPairs.reserve(elements.size());
1034 1034
1035 for (const auto* element : elements) { 1035 for (const auto* element : elements) {
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
1325 // InitializeGl. Revisit if the initialization order changes. 1325 // InitializeGl. Revisit if the initialization order changes.
1326 device::mojom::VRDisplayInfoPtr info = 1326 device::mojom::VRDisplayInfoPtr info =
1327 device::GvrDelegate::CreateVRDisplayInfo(gvr_api_.get(), 1327 device::GvrDelegate::CreateVRDisplayInfo(gvr_api_.get(),
1328 webvr_surface_size_, device_id); 1328 webvr_surface_size_, device_id);
1329 main_thread_task_runner_->PostTask( 1329 main_thread_task_runner_->PostTask(
1330 FROM_HERE, 1330 FROM_HERE,
1331 base::Bind(&RunVRDisplayInfoCallback, callback, base::Passed(&info))); 1331 base::Bind(&RunVRDisplayInfoCallback, callback, base::Passed(&info)));
1332 } 1332 }
1333 1333
1334 } // namespace vr_shell 1334 } // namespace vr_shell
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698