// If possible, copies the GrBackendFormat and forces the texture type to be Texture2D. If the // GrBackendFormat was for Vulkan and it originally had a skgpu::VulkanYcbcrConversionInfo, // we will remove the conversion and set the format to be VK_FORMAT_R8G8B8A8_UNORM.
GrBackendFormat makeTexture2D() const;
// Returns true if the backend format has been initialized. bool isValid() const { return fValid; }
private: // Size determined by looking at the GrBackendFormatData subclasses, then guessing-and-checking. // Compiler will complain if this is too small - in that case, just increase the number. inline constexpr static size_t kMaxSubclassSize = 80; using AnyFormatData = SkAnySubclass<GrBackendFormatData, kMaxSubclassSize>;
// Used by internal factories. Should not be used externally. Use factories like // GrBackendFormats::MakeGL instead. template <typename FormatData>
GrBackendFormat(GrTextureType textureType, GrBackendApi api, const FormatData& formatData)
: fBackend(api), fTextureType(textureType), fValid(true) {
fFormatData.emplace<FormatData>(formatData);
}
// Get the GrBackendFormat for this texture (or an invalid format if this is not valid).
GrBackendFormat getBackendFormat() const;
// If the client changes any of the mutable backend of the GrBackendTexture they should call // this function to inform Skia that those values have changed. The backend API specific state // that can be set from this function are: // // Vulkan: VkImageLayout and QueueFamilyIndex void setMutableState(const skgpu::MutableTextureState&);
// Returns true if we are working with protected content. bool isProtected() const;
// Returns true if the backend texture has been initialized. bool isValid() const { return fIsValid; }
// Returns true if both textures are valid and refer to the same API texture. bool isSameTexture(const GrBackendTexture&);
private: // Size determined by looking at the GrBackendTextureData subclasses, then guessing-and-checking. // Compiler will complain if this is too small - in that case, just increase the number. inline constexpr static size_t kMaxSubclassSize = 176; using AnyTextureData = SkAnySubclass<GrBackendTextureData, kMaxSubclassSize>;
// Get the GrBackendFormat for this render target (or an invalid format if this is not valid).
GrBackendFormat getBackendFormat() const;
// If the client changes any of the mutable backend of the GrBackendTexture they should call // this function to inform Skia that those values have changed. The backend API specific state // that can be set from this function are: // // Vulkan: VkImageLayout and QueueFamilyIndex void setMutableState(const skgpu::MutableTextureState&);
// Returns true if we are working with protected content. bool isProtected() const;
// Returns true if the backend texture has been initialized. bool isValid() const { return fIsValid; }
private: // Size determined by looking at the GrBackendRenderTargetData subclasses, then // guessing-and-checking. Compiler will complain if this is too small - in that case, just // increase the number. inline constexpr static size_t kMaxSubclassSize = 176; using AnyRenderTargetData = SkAnySubclass<GrBackendRenderTargetData, kMaxSubclassSize>;
// Used by internal factories. Should not be used externally. Use factories like // GrBackendRenderTargets::MakeGL instead. template <typename RenderTargetData>
GrBackendRenderTarget(int width, int height, int sampleCnt, int stencilBits,
GrBackendApi backend, bool framebufferOnly, const RenderTargetData& rtData)
: fIsValid(true)
, fFramebufferOnly(framebufferOnly)
, fWidth(width)
, fHeight(height)
, fSampleCnt(sampleCnt)
, fStencilBits(stencilBits)
, fBackend(backend) {
fRTData.emplace<RenderTargetData>(rtData);
}
friendclass GrVkGpu; // for getMutableState
sk_sp<skgpu::MutableTextureState> getMutableState() const;
bool fIsValid; bool fFramebufferOnly = false; int fWidth; //<! width in pixels int fHeight; //<! height in pixels
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.