Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/gfx/skia/skia/include/gpu/vk/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  VulkanBackendContext.h   Sprache: C

 
/*
 * Copyright 2022 Google LLC
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */


#ifndef skgpu_VulkanBackendContext_DEFINED
#define skgpu_VulkanBackendContext_DEFINED

#include "include/core/SkRefCnt.h"
#include "include/gpu/GpuTypes.h"
#include "include/gpu/vk/VulkanMemoryAllocator.h"
#include "include/gpu/vk/VulkanTypes.h"
#include "include/private/base/SkAPI.h"
#include "include/private/gpu/vk/SkiaVulkan.h"

#include <cstdint>

namespace skgpu {

class VulkanExtensions;

// The VkBackendContext contains all of the base Vk objects needed by the skia Vulkan context.
struct SK_API VulkanBackendContext {
    VkInstance                       fInstance = VK_NULL_HANDLE;
    VkPhysicalDevice                 fPhysicalDevice = VK_NULL_HANDLE;
    VkDevice                         fDevice = VK_NULL_HANDLE;
    VkQueue                          fQueue = VK_NULL_HANDLE;
    uint32_t                         fGraphicsQueueIndex = 0;
    // The max api version set here should match the value set in VkApplicationInfo::apiVersion when
    // then VkInstance was created.
    uint32_t                         fMaxAPIVersion = 0;
    const skgpu::VulkanExtensions*   fVkExtensions = nullptr;
    // The client can create their VkDevice with either a VkPhysicalDeviceFeatures or
    // VkPhysicalDeviceFeatures2 struct, thus we have to support taking both. The
    // VkPhysicalDeviceFeatures2 struct is needed so we know if the client enabled any extension
    // specific features. If fDeviceFeatures2 is not null then we ignore fDeviceFeatures. If both
    // fDeviceFeatures and fDeviceFeatures2 are null we will assume no features are enabled.
    const VkPhysicalDeviceFeatures*  fDeviceFeatures = nullptr;
    const VkPhysicalDeviceFeatures2* fDeviceFeatures2 = nullptr;
    // Optional. The client may provide an inplementation of a VulkanMemoryAllocator for Skia to use
    // for allocating Vulkan resources that use VkDeviceMemory.
    sk_sp<VulkanMemoryAllocator>     fMemoryAllocator;
    skgpu::VulkanGetProc             fGetProc;
    Protected                        fProtectedContext = Protected::kNo;
    // Optional callback which will be invoked if a VK_ERROR_DEVICE_LOST error code is received from
    // the driver. Debug information from the driver will be provided to the callback if the
    // VK_EXT_device_fault extension is supported and enabled (VkPhysicalDeviceFaultFeaturesEXT must
    // be in the pNext chain of VkDeviceCreateInfo).
    skgpu::VulkanDeviceLostContext   fDeviceLostContext = nullptr;
    skgpu::VulkanDeviceLostProc      fDeviceLostProc = nullptr;
};

}  // namespace skgpu

#endif // skgpu_VulkanBackendContext_DEFINED

Messung V0.5
C=91 H=89 G=89

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.