forked from flutter/engine
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update getBackendInfo calls on GrBackendTexture to support VkImageLay…
…out better. The big api level change here is that the getBackendInfo calls now return by value instead of a pointer. These changes are being made in support of Vulkan so that the client can update the VkImageLayout on the GrBackendTexture and have that update get reflected in our internal tracking of the image. This is done by storing a ref counted GrVkImageLayout object on the GrBackendTexture and the GrVkImage. Bug: skia: Change-Id: I8c6158fd3a66eb61fef97ebf09ea5364bca3f1ae Reviewed-on: https://skia-review.googlesource.com/119101 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
- Loading branch information
Showing
29 changed files
with
713 additions
and
188 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/* | ||
* Copyright 2018 Google Inc. | ||
* | ||
* Use of this source code is governed by a BSD-style license that can be | ||
* found in the LICENSE file. | ||
*/ | ||
|
||
#ifndef GrVkTypesPriv_DEFINED | ||
#define GrVkTypesPriv_DEFINED | ||
|
||
#include "GrVkTypes.h" | ||
#include "SkRefCnt.h" | ||
|
||
class GrVkImageLayout; | ||
|
||
// This struct is to used to store the the actual information about the vulkan backend image on the | ||
// GrBackendTexture and GrBackendRenderTarget. When a client calls getVkImageInfo on a | ||
// GrBackendTexture/RenderTarget, we use the GrVkBackendSurfaceInfo to create a snapshot | ||
// GrVkImgeInfo object. Internally, this uses a ref count GrVkImageLayout object to track the | ||
// current VkImageLayout which can be shared with an internal GrVkImage so that layout updates can | ||
// be seen by all users of the image. | ||
struct GrVkBackendSurfaceInfo { | ||
GrVkBackendSurfaceInfo(GrVkImageInfo info, GrVkImageLayout* layout) | ||
: fImageInfo(info), fLayout(layout) {} | ||
|
||
void cleanup(); | ||
|
||
GrVkBackendSurfaceInfo& operator=(const GrVkBackendSurfaceInfo&) = delete; | ||
|
||
// Assigns the passed in GrVkBackendSurfaceInfo to this object. if isValid is true we will also | ||
// attempt to unref the old fLayout on this object. | ||
void assign(const GrVkBackendSurfaceInfo&, bool isValid); | ||
|
||
void setImageLayout(VkImageLayout layout); | ||
|
||
sk_sp<GrVkImageLayout> getGrVkImageLayout() const; | ||
|
||
GrVkImageInfo snapImageInfo() const; | ||
|
||
#if GR_TEST_UTILS | ||
bool operator==(const GrVkBackendSurfaceInfo& that) const; | ||
#endif | ||
|
||
private: | ||
GrVkImageInfo fImageInfo; | ||
GrVkImageLayout* fLayout; | ||
}; | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.