# 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("../src/gpu/graphite", "abspath")
_include = get_path_info("../include/gpu/graphite", "abspath")
_include_private = get_path_info("../include/private/gpu/graphite", "abspath")

skia_graphite_public = [
  "$_include/BackendTexture.h",
  "$_include/Context.h",
  "$_include/ContextOptions.h",
  "$_include/GraphiteTypes.h",
  "$_include/ImageProvider.h",
  "$_include/Recorder.h",
  "$_include/Recording.h",
  "$_include/TextureInfo.h",
]

skia_graphite_sources = [
  "$_src/AttachmentTypes.h",
  "$_src/Attribute.h",
  "$_src/BackendTexture.cpp",
  "$_src/Buffer.cpp",
  "$_src/Buffer.h",
  "$_src/Caps.cpp",
  "$_src/Caps.h",
  "$_src/ClientMappedBufferManager.cpp",
  "$_src/ClientMappedBufferManager.h",
  "$_src/ClipStack.cpp",
  "$_src/ClipStack_graphite.h",
  "$_src/CommandBuffer.cpp",
  "$_src/CommandBuffer.h",
  "$_src/CommandTypes.h",
  "$_src/ComputePassTask.cpp",
  "$_src/ComputePassTask.h",
  "$_src/ComputePipeline.cpp",
  "$_src/ComputePipeline.h",
  "$_src/ComputeTypes.h",
  "$_src/Context.cpp",
  "$_src/ContextPriv.h",
  "$_src/ContextUtils.cpp",
  "$_src/ContextUtils.h",
  "$_src/CopyTask.cpp",
  "$_src/CopyTask.h",
  "$_src/Device.cpp",
  "$_src/Device.h",
  "$_src/DrawAtlas.cpp",
  "$_src/DrawAtlas.h",
  "$_src/DrawBufferManager.cpp",
  "$_src/DrawBufferManager.h",
  "$_src/DrawCommands.h",
  "$_src/DrawContext.cpp",
  "$_src/DrawContext.h",
  "$_src/DrawList.cpp",
  "$_src/DrawList.h",
  "$_src/DrawOrder.h",
  "$_src/DrawParams.h",
  "$_src/DrawPass.cpp",
  "$_src/DrawPass.h",
  "$_src/DrawTypes.h",
  "$_src/DrawWriter.cpp",
  "$_src/DrawWriter.h",
  "$_src/GlobalCache.cpp",
  "$_src/GlobalCache.h",
  "$_src/GpuWorkSubmission.cpp",
  "$_src/GpuWorkSubmission.h",
  "$_src/GraphicsPipeline.cpp",
  "$_src/GraphicsPipeline.h",
  "$_src/GraphicsPipelineDesc.h",
  "$_src/GraphiteResourceKey.cpp",
  "$_src/GraphiteResourceKey.h",
  "$_src/ImageUtils.cpp",
  "$_src/ImageUtils.h",
  "$_src/Image_Graphite.cpp",
  "$_src/Image_Graphite.h",
  "$_src/Log.h",
  "$_src/PaintParams.cpp",
  "$_src/PaintParams.h",
  "$_src/PipelineDataCache.h",
  "$_src/QueueManager.cpp",
  "$_src/QueueManager.h",
  "$_src/Recorder.cpp",
  "$_src/RecorderPriv.h",
  "$_src/Recording.cpp",
  "$_src/RecordingPriv.h",
  "$_src/RenderPassTask.cpp",
  "$_src/RenderPassTask.h",
  "$_src/Renderer.cpp",
  "$_src/Renderer.h",
  "$_src/RendererProvider.cpp",
  "$_src/RendererProvider.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/SharedContext.cpp",
  "$_src/SharedContext.h",
  "$_src/SpecialImage_Graphite.cpp",
  "$_src/Surface_Graphite.cpp",
  "$_src/Surface_Graphite.h",
  "$_src/SynchronizeToCpuTask.cpp",
  "$_src/SynchronizeToCpuTask.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/UploadBufferManager.cpp",
  "$_src/UploadBufferManager.h",
  "$_src/UploadTask.cpp",
  "$_src/UploadTask.h",
  "$_src/geom/BoundsManager.h",
  "$_src/geom/Geometry.h",
  "$_src/geom/IntersectionTree.cpp",
  "$_src/geom/IntersectionTree.h",
  "$_src/geom/Rect.h",
  "$_src/geom/Shape.cpp",
  "$_src/geom/Shape.h",
  "$_src/geom/SubRunData.h",
  "$_src/geom/Transform.cpp",
  "$_src/geom/Transform_graphite.h",
  "$_src/render/AnalyticRRectRenderStep.cpp",
  "$_src/render/AnalyticRRectRenderStep.h",
  "$_src/render/BitmapTextRenderStep.cpp",
  "$_src/render/BitmapTextRenderStep.h",
  "$_src/render/CommonDepthStencilSettings.h",
  "$_src/render/CoverBoundsRenderStep.cpp",
  "$_src/render/CoverBoundsRenderStep.h",
  "$_src/render/DynamicInstancesPatchAllocator.h",
  "$_src/render/MiddleOutFanRenderStep.cpp",
  "$_src/render/MiddleOutFanRenderStep.h",
  "$_src/render/SDFTextRenderStep.cpp",
  "$_src/render/SDFTextRenderStep.h",
  "$_src/render/TessellateCurvesRenderStep.cpp",
  "$_src/render/TessellateCurvesRenderStep.h",
  "$_src/render/TessellateStrokesRenderStep.cpp",
  "$_src/render/TessellateStrokesRenderStep.h",
  "$_src/render/TessellateWedgesRenderStep.cpp",
  "$_src/render/TessellateWedgesRenderStep.h",
  "$_src/render/VerticesRenderStep.cpp",
  "$_src/render/VerticesRenderStep.h",
  "$_src/text/AtlasManager.cpp",
  "$_src/text/AtlasManager.h",
]

skia_graphite_dawn_sources = [
  "$_include/dawn/DawnBackendContext.h",
  "$_include/dawn/DawnTypes.h",
  "$_include_private/DawnTypesPriv.h",
  "$_src/dawn/DawnCaps.cpp",
  "$_src/dawn/DawnCaps.h",
  "$_src/dawn/DawnCommandBuffer.cpp",
  "$_src/dawn/DawnCommandBuffer.h",
  "$_src/dawn/DawnQueueManager.cpp",
  "$_src/dawn/DawnQueueManager.h",
  "$_src/dawn/DawnResourceProvider.cpp",
  "$_src/dawn/DawnResourceProvider.h",
  "$_src/dawn/DawnSharedContext.cpp",
  "$_src/dawn/DawnSharedContext.h",
  "$_src/dawn/DawnTypesPriv.cpp",
]

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/MtlComputeCommandEncoder.h",
  "$_src/mtl/MtlComputePipeline.h",
  "$_src/mtl/MtlComputePipeline.mm",
  "$_src/mtl/MtlGraphicsPipeline.h",
  "$_src/mtl/MtlGraphicsPipeline.mm",
  "$_src/mtl/MtlQueueManager.h",
  "$_src/mtl/MtlQueueManager.mm",
  "$_src/mtl/MtlRenderCommandEncoder.h",
  "$_src/mtl/MtlResourceProvider.h",
  "$_src/mtl/MtlResourceProvider.mm",
  "$_src/mtl/MtlSampler.h",
  "$_src/mtl/MtlSampler.mm",
  "$_src/mtl/MtlSharedContext.h",
  "$_src/mtl/MtlSharedContext.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",
]

skia_graphite_vk_sources = [
  "$_include/vk/VulkanGraphiteTypes.h",
  "$_include_private/VulkanGraphiteTypesPriv.h",
  "$_src/vk/VulkanCaps.cpp",
  "$_src/vk/VulkanCaps.h",
  "$_src/vk/VulkanCommandBuffer.cpp",
  "$_src/vk/VulkanCommandBuffer.h",
  "$_src/vk/VulkanGraphiteTypes.cpp",
  "$_src/vk/VulkanGraphiteUtils.h",
  "$_src/vk/VulkanQueueManager.cpp",
  "$_src/vk/VulkanQueueManager.h",
  "$_src/vk/VulkanResourceProvider.cpp",
  "$_src/vk/VulkanResourceProvider.h",
  "$_src/vk/VulkanSharedContext.cpp",
  "$_src/vk/VulkanSharedContext.h",
]

skia_graphite_piet_sources = [
  "$_src/PietRenderTask.cpp",
  "$_src/PietRenderTask.h",
]
