File: xr_webgl_sub_image.cc

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (45 lines) | stat: -rw-r--r-- 1,816 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "third_party/blink/renderer/modules/xr/xr_webgl_sub_image.h"

#include "third_party/blink/renderer/modules/webgl/webgl_unowned_texture.h"

namespace blink {

XRWebGLSubImage::XRWebGLSubImage(const gfx::Rect& viewport,
                                 std::optional<uint16_t> image_index,
                                 XRWebGLSwapChain* color_swap_chain,
                                 XRWebGLSwapChain* depth_stencil_swap_chain,
                                 XRWebGLSwapChain* motion_vector_swap_chain)
    : XRSubImage(viewport), image_index_(image_index) {
  // Must have color swap chain, depth/stencil and motion vector are optional.
  CHECK(color_swap_chain);
  color_texture_ = color_swap_chain->GetCurrentTexture();
  color_texture_width_ = color_swap_chain->descriptor().width;
  color_texture_height_ = color_swap_chain->descriptor().height;

  if (depth_stencil_swap_chain) {
    depth_stencil_texture_ = depth_stencil_swap_chain->GetCurrentTexture();
    depth_stencil_texture_width_ = depth_stencil_swap_chain->descriptor().width;
    depth_stencil_texture_height_ =
        depth_stencil_swap_chain->descriptor().height;
  }

  if (motion_vector_swap_chain) {
    motion_vector_texture_ = motion_vector_swap_chain->GetCurrentTexture();
    motion_vector_texture_width_ = motion_vector_swap_chain->descriptor().width;
    motion_vector_texture_height_ =
        motion_vector_swap_chain->descriptor().height;
  }
}

void XRWebGLSubImage::Trace(Visitor* visitor) const {
  visitor->Trace(color_texture_);
  visitor->Trace(depth_stencil_texture_);
  visitor->Trace(motion_vector_texture_);
  XRSubImage::Trace(visitor);
}

}  // namespace blink