Cobalt

Starboard

在 Cobalt 的上下文中,Starboard 是一个重要的概念。让我为你解释一下:

  1. Starboard 是什么?
    • Starboard 是 Cobalt 的一个关键组件,用于抽象操作系统功能和平台特性,使其能够在不同平台上运行。
    • 它是一个用于移植的抽象层,包含了一系列用于处理不同操作系统和平台特性的实现片段。
    • Starboard 的目标是将 Cobalt 与底层操作系统和硬件隔离开来,使 Cobalt 能够在不同设备上无缝运行。
  2. 如何使用 Starboard?
    • 在 Cobalt 的源代码中,你会看到 Starboard 的相关目录和文件,这些文件包含了特定平台的实现细节。
    • Starboard 将平台特定的功能封装在这些文件中,以便 Cobalt 可以在不同平台上运行。
    • Starboard 的设计目标是只包含 Cobalt 实际使用的平台特定功能,而不包含不必要的部分。

总之,Starboard 是 Cobalt 的一个关键组件,用于处理操作系统和平台差异,使 Cobalt 能够在不同设备上运行。

360 Video

在Youtube video 360中涉及到的几个函数及流程:

video_360

A Video Frame, 它将被渲染到一个球面上。

360 image

Skia

Skia 是一个开源的 2D 图形库,它提供了通用的 API,可以在各种硬件和软件平台上使用。它作为 Google Chrome 和 ChromeOS、Android、Flutter 等产品的图形引擎123。

Skia 是用 C++ 编写的完整的 2D 图形库,用于绘制文本、几何图形和图像。 它抽象了平台特定的图形 API(这些 API 在不同平台之间有所不同)。 最初由 Skia Inc. 开发,后来于 2005 年被 Google 收购,并于 2008 年以 New BSD 自由软件许可证 的形式发布为开源软件3。

egl opengl

cobalt 中egl opengl API的跟踪

cobalt/renderer/egl_and_gles.h
cobalt/renderer/rasterizer/egl/graphics_state.cc

cobalt中wayland

   SbWindowPrivate::SbWindowPrivate(wl_compositor* compositor,
                                    wl_shell* shell,
                                    const SbWindowOptions* options,
                                    float pixel_ratio) {
     width = kWindowWidth;
     height = kWindowHeight;
     video_pixel_ratio = pixel_ratio;
     if (options && options->size.width > 0 && options->size.height > 0) {
       width = options->size.width;
       height = options->size.height;
     }
     surface = wl_compositor_create_surface(compositor);
     shell_surface = wl_shell_get_shell_surface(shell, surface);
     wl_shell_surface_add_listener(shell_surface, &shell_surface_listener, this);
     wl_shell_surface_set_title(shell_surface, "cobalt");
     struct wl_region* region;
     region = wl_compositor_create_region(compositor);
     wl_region_add(region, 0, 0, width, height);
     wl_surface_set_opaque_region(surface, region);
     wl_region_destroy(region);
     egl_window = wl_egl_window_create(surface, width, height);
     WindowRaise();
   }

results matching ""

    No results matching ""