/*
* Copyright 2023 Google LLC
*
* Use of this source code is governed by a BSD - style license that can be
* found in the LICENSE file .
*/
#ifndef SkSurfaceMetal_DEFINED
#define SkSurfaceMetal_DEFINED
#include "include/core/SkRefCnt.h"
#include "include/core/SkSurface.h"
#include "include/gpu/ganesh/GrTypes.h"
#include "include/gpu/ganesh/SkSurfaceGanesh.h"
#include "include/gpu/ganesh/mtl/GrMtlTypes.h"
namespace SkSurfaces {
/** Creates SkSurface from CAMetalLayer.
Returned SkSurface takes a reference on the CAMetalLayer . The ref on the layer will be
released when the SkSurface is destroyed .
Only available when Metal API is enabled .
Will grab the current drawable from the layer and use its texture as a backendRT to
create a renderable surface .
@ param context GPU context
@ param layer GrMTLHandle ( expected to be a CAMetalLayer * )
@ param sampleCnt samples per pixel , or 0 to disable full scene anti - aliasing
@ param colorSpace range of colors ; may be nullptr
@ param surfaceProps LCD striping orientation and setting for device independent
fonts ; may be nullptr
@ param drawable Pointer to drawable to be filled in when this surface is
instantiated ; may not be nullptr
@ return created SkSurface , or nullptr
*/
SK_API sk_sp<SkSurface> WrapCAMetalLayer(GrRecordingContext* context,
GrMTLHandle layer,
GrSurfaceOrigin origin,
int sampleCnt,
SkColorType colorType,
sk_sp<SkColorSpace> colorSpace,
const SkSurfaceProps* surfaceProps,
GrMTLHandle* drawable) SK_API_AVAILABLE_CA_METAL_LAYER;
/** Creates SkSurface from MTKView.
Returned SkSurface takes a reference on the MTKView . The ref on the layer will be
released when the SkSurface is destroyed .
Only available when Metal API is enabled .
Will grab the current drawable from the layer and use its texture as a backendRT to
create a renderable surface .
@ param context GPU context
@ param layer GrMTLHandle ( expected to be a MTKView * )
@ param sampleCnt samples per pixel , or 0 to disable full scene anti - aliasing
@ param colorSpace range of colors ; may be nullptr
@ param surfaceProps LCD striping orientation and setting for device independent
fonts ; may be nullptr
@ return created SkSurface , or nullptr
*/
SK_API sk_sp<SkSurface> WrapMTKView(GrRecordingContext* context,
GrMTLHandle mtkView,
GrSurfaceOrigin origin,
int sampleCnt,
SkColorType colorType,
sk_sp<SkColorSpace> colorSpace,
const SkSurfaceProps* surfaceProps)
SK_API_AVAILABLE(macos(10 .11 ), ios(9 .0 ), tvos(9 .0 ));
} // namespace SkSurfaces
#endif
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland