// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "impeller/renderer/backend/vulkan/texture_source_vk.h"

namespace impeller {

bool TextureSourceVK::SetContents(const TextureDescriptor& desc,
                                  const uint8_t* contents,
                                  size_t length,
                                  size_t slice) {
  return false;
}

}  // namespace impeller
