skia2/gn/graphite.gni
Michael Ludwig 7b04832cbe [graphite] Initial ClipStack paired down from v1::ClipStack
PS1 is the exact contents of src/gpu/v1/ClipStack.* copied to
experimental/graphite/src.

PS2+ shows all the changes to remove v1-only features and update some of
the types over to what graphite uses. The major changes are:
1. FragmentProcessors, clip atlases, stencil mask writing, and SW mask
   writing are gone.
2. SW mask caching and tracking are gone.
3. Graphite is effectively in the "forceAA" mode that the original clip
   stack supported. So branches that focused on non-AA, or comparing AA
   or handling cases where elements' AA mismatched could all be removed.
4. Updated to use Graphite's Shape and Transform classes. Did not go as
   far as moving the bounds from SkIRect to Rect, but since everything
   is AA, it will be much simpler to switch to comparing float bounds
   directly and not worry about rounding in or out. That's a more
   substantial change so will come later.
5. The original ClipStack had a "Draw" type that was used to compute
   clip interactions between SaveRecords and Elements. It was always
   just device-space bounds because of limitations of the GrClip API.
   In Graphite, we can use the exact same set of info for Draws and
   Elements, making interaction tests share code and be more accurate.
   Since that's a more involved change, I just removed the simpler Draw
   type from this version for now.
6. Tried to add TODOs for what logic and extra state will need to be
   added to actually apply graphite's clip stack as depth-only draws.

Bug: skia:12698
Change-Id: I418703e8f759cd5e1ddd1e302a864bf2204cf040
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/525516
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-03-31 16:45:58 +00:00

155 lines
4.3 KiB
Plaintext

# Copyright 2021 Google LLC
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Things are easiest for everyone if these source paths are absolute.
_src = get_path_info("../experimental/graphite/src", "abspath")
_include = get_path_info("../experimental/graphite/include", "abspath")
skia_graphite_public = [
"$_include/BackendTexture.h",
"$_include/Context.h",
"$_include/GraphiteTypes.h",
"$_include/Recorder.h",
"$_include/Recording.h",
"$_include/SkStuff.h",
"$_include/TextureInfo.h",
]
skia_graphite_sources = [
"$_src/Attribute.h",
"$_src/BackendTexture.cpp",
"$_src/Buffer.cpp",
"$_src/Buffer.h",
"$_src/Caps.cpp",
"$_src/Caps.h",
"$_src/ClipStack.cpp",
"$_src/ClipStack_graphite.h",
"$_src/CommandBuffer.cpp",
"$_src/CommandBuffer.h",
"$_src/Context.cpp",
"$_src/ContextPriv.cpp",
"$_src/ContextPriv.h",
"$_src/ContextUtils.cpp",
"$_src/ContextUtils.h",
"$_src/CopyTask.cpp",
"$_src/CopyTask.h",
"$_src/Device.cpp",
"$_src/Device.h",
"$_src/DrawBufferManager.cpp",
"$_src/DrawBufferManager.h",
"$_src/DrawContext.cpp",
"$_src/DrawContext.h",
"$_src/DrawList.cpp",
"$_src/DrawList.h",
"$_src/DrawOrder.h",
"$_src/DrawPass.cpp",
"$_src/DrawPass.h",
"$_src/DrawTypes.h",
"$_src/DrawWriter.cpp",
"$_src/DrawWriter.h",
"$_src/EnumBitMask.h",
"$_src/GlobalCache.cpp",
"$_src/GlobalCache.h",
"$_src/Gpu.cpp",
"$_src/Gpu.h",
"$_src/GpuWorkSubmission.cpp",
"$_src/GpuWorkSubmission.h",
"$_src/GraphicsPipeline.cpp",
"$_src/GraphicsPipeline.h",
"$_src/GraphicsPipelineDesc.cpp",
"$_src/GraphicsPipelineDesc.h",
"$_src/GraphiteResourceKey.cpp",
"$_src/GraphiteResourceKey.h",
"$_src/Image_Graphite.cpp",
"$_src/Image_Graphite.h",
"$_src/Log.h",
"$_src/PaintParams.cpp",
"$_src/PaintParams.h",
"$_src/PipelineDataCache.h",
"$_src/Recorder.cpp",
"$_src/RecorderPriv.cpp",
"$_src/RecorderPriv.h",
"$_src/Recording.cpp",
"$_src/RenderPassTask.cpp",
"$_src/RenderPassTask.h",
"$_src/Renderer.h",
"$_src/Resource.cpp",
"$_src/Resource.h",
"$_src/ResourceCache.cpp",
"$_src/ResourceCache.h",
"$_src/ResourceProvider.cpp",
"$_src/ResourceProvider.h",
"$_src/ResourceTypes.h",
"$_src/Sampler.cpp",
"$_src/Sampler.h",
"$_src/SkStuff.cpp",
"$_src/Surface_Graphite.cpp",
"$_src/Surface_Graphite.h",
"$_src/Task.cpp",
"$_src/Task.h",
"$_src/TaskGraph.cpp",
"$_src/TaskGraph.h",
"$_src/Texture.cpp",
"$_src/Texture.h",
"$_src/TextureInfo.cpp",
"$_src/TextureProxy.cpp",
"$_src/TextureProxy.h",
"$_src/TextureProxyView.h",
"$_src/TextureUtils.cpp",
"$_src/TextureUtils.h",
"$_src/UniformManager.cpp",
"$_src/UniformManager.h",
"$_src/UploadTask.cpp",
"$_src/UploadTask.h",
"$_src/geom/BoundsManager.h",
"$_src/geom/IntersectionTree.cpp",
"$_src/geom/IntersectionTree.h",
"$_src/geom/Rect.h",
"$_src/geom/Shape.cpp",
"$_src/geom/Shape.h",
"$_src/geom/Transform.cpp",
"$_src/geom/Transform_graphite.h",
"$_src/geom/VectorTypes.h",
"$_src/render/CoverBoundsRenderStep.cpp",
"$_src/render/CoverBoundsRenderStep.h",
"$_src/render/MiddleOutFanRenderStep.cpp",
"$_src/render/MiddleOutFanRenderStep.h",
"$_src/render/StencilAndCoverDSS.h",
"$_src/render/StencilAndFillPathRenderer.cpp",
"$_src/render/TessellateCurvesRenderStep.cpp",
"$_src/render/TessellateCurvesRenderStep.h",
"$_src/render/TessellateWedgesRenderStep.cpp",
"$_src/render/TessellateWedgesRenderStep.h",
]
skia_graphite_mtl_sources = [
"$_include/mtl/MtlBackendContext.h",
"$_include/mtl/MtlTypes.h",
"$_include/private/MtlTypesPriv.h",
"$_src/mtl/MtlBlitCommandEncoder.h",
"$_src/mtl/MtlBuffer.h",
"$_src/mtl/MtlBuffer.mm",
"$_src/mtl/MtlCaps.h",
"$_src/mtl/MtlCaps.mm",
"$_src/mtl/MtlCommandBuffer.h",
"$_src/mtl/MtlCommandBuffer.mm",
"$_src/mtl/MtlGpu.h",
"$_src/mtl/MtlGpu.mm",
"$_src/mtl/MtlGraphicsPipeline.h",
"$_src/mtl/MtlGraphicsPipeline.mm",
"$_src/mtl/MtlRenderCommandEncoder.h",
"$_src/mtl/MtlResourceProvider.h",
"$_src/mtl/MtlResourceProvider.mm",
"$_src/mtl/MtlSampler.h",
"$_src/mtl/MtlSampler.mm",
"$_src/mtl/MtlTexture.h",
"$_src/mtl/MtlTexture.mm",
"$_src/mtl/MtlTrampoline.h",
"$_src/mtl/MtlTrampoline.mm",
"$_src/mtl/MtlTypesPriv.mm",
"$_src/mtl/MtlUtils.h",
"$_src/mtl/MtlUtils.mm",
]