2017-04-18 19:52:36 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2017 Google Inc.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
|
|
* found in the LICENSE file.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef GrBackendSurface_DEFINED
|
|
|
|
#define GrBackendSurface_DEFINED
|
|
|
|
|
|
|
|
#include "GrTypes.h"
|
2017-05-01 13:50:58 +00:00
|
|
|
#include "gl/GrGLTypes.h"
|
|
|
|
#include "vk/GrVkTypes.h"
|
2017-04-18 19:52:36 +00:00
|
|
|
|
|
|
|
class GrBackendTexture {
|
|
|
|
public:
|
|
|
|
GrBackendTexture(int width,
|
|
|
|
int height,
|
2017-04-26 17:29:21 +00:00
|
|
|
const GrVkImageInfo& vkInfo);
|
2017-04-18 19:52:36 +00:00
|
|
|
|
|
|
|
GrBackendTexture(int width,
|
|
|
|
int height,
|
|
|
|
GrPixelConfig config,
|
2017-04-26 17:29:21 +00:00
|
|
|
const GrGLTextureInfo& glInfo);
|
2017-04-18 19:52:36 +00:00
|
|
|
|
|
|
|
int width() const { return fWidth; }
|
|
|
|
int height() const { return fHeight; }
|
|
|
|
GrPixelConfig config() const { return fConfig; }
|
|
|
|
GrBackend backend() const {return fBackend; }
|
|
|
|
|
|
|
|
// If the backend API is Vulkan, this returns a pointer to the GrVkImageInfo struct. Otherwise
|
|
|
|
// it returns nullptr.
|
Revert "Revert "Plumb GrBackendTexture throughout skia.""
This reverts commit 7fa5c31c2c9af834bee66d5fcf476e250076c8d6.
Reason for revert: Relanding this change now that other fixes have landed.
Original change's description:
> Revert "Plumb GrBackendTexture throughout skia."
>
> This reverts commit 7da62b9059f3c1d31624a0e4da96ee5f908f9c12.
>
> Reason for revert: fix android roll
>
> Original change's description:
> > Plumb GrBackendTexture throughout skia.
> >
> > Bug: skia:
> > Change-Id: I1bae6768ee7229818a83ba608035a1f7867e6875
> > Reviewed-on: https://skia-review.googlesource.com/13645
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> >
>
> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org,stani@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Change-Id: I5cb8763cc837c83ebc6d10366fe2dd3efe35fb89
> Reviewed-on: https://skia-review.googlesource.com/13773
> Reviewed-by: Stan Iliev <stani@google.com>
> Commit-Queue: Stan Iliev <stani@google.com>
>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reviews@skia.org,brianosman@google.com,stani@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I92bc074e4fe37fa5c83186afadc472c03802e8f2
Reviewed-on: https://skia-review.googlesource.com/13975
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-20 16:41:55 +00:00
|
|
|
const GrVkImageInfo* getVkImageInfo() const;
|
2017-04-18 19:52:36 +00:00
|
|
|
|
|
|
|
// If the backend API is GL, this returns a pointer to the GrGLTextureInfo struct. Otherwise
|
|
|
|
// it returns nullptr.
|
Revert "Revert "Plumb GrBackendTexture throughout skia.""
This reverts commit 7fa5c31c2c9af834bee66d5fcf476e250076c8d6.
Reason for revert: Relanding this change now that other fixes have landed.
Original change's description:
> Revert "Plumb GrBackendTexture throughout skia."
>
> This reverts commit 7da62b9059f3c1d31624a0e4da96ee5f908f9c12.
>
> Reason for revert: fix android roll
>
> Original change's description:
> > Plumb GrBackendTexture throughout skia.
> >
> > Bug: skia:
> > Change-Id: I1bae6768ee7229818a83ba608035a1f7867e6875
> > Reviewed-on: https://skia-review.googlesource.com/13645
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> >
>
> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org,stani@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Change-Id: I5cb8763cc837c83ebc6d10366fe2dd3efe35fb89
> Reviewed-on: https://skia-review.googlesource.com/13773
> Reviewed-by: Stan Iliev <stani@google.com>
> Commit-Queue: Stan Iliev <stani@google.com>
>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reviews@skia.org,brianosman@google.com,stani@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I92bc074e4fe37fa5c83186afadc472c03802e8f2
Reviewed-on: https://skia-review.googlesource.com/13975
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-20 16:41:55 +00:00
|
|
|
const GrGLTextureInfo* getGLTextureInfo() const;
|
2017-04-18 19:52:36 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
// Temporary constructor which can be used to convert from a GrBackendTextureDesc.
|
|
|
|
GrBackendTexture(const GrBackendTextureDesc& desc, GrBackend backend);
|
|
|
|
|
|
|
|
// Friending for access to above constructor taking a GrBackendTextureDesc
|
|
|
|
friend class SkImage;
|
|
|
|
friend class SkSurface;
|
|
|
|
|
|
|
|
int fWidth; //<! width in pixels
|
|
|
|
int fHeight; //<! height in pixels
|
|
|
|
GrPixelConfig fConfig;
|
|
|
|
GrBackend fBackend;
|
|
|
|
|
|
|
|
union {
|
2017-04-26 17:29:21 +00:00
|
|
|
GrVkImageInfo fVkInfo;
|
|
|
|
GrGLTextureInfo fGLInfo;
|
2017-04-18 19:52:36 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
class GrBackendRenderTarget {
|
|
|
|
public:
|
|
|
|
GrBackendRenderTarget(int width,
|
|
|
|
int height,
|
|
|
|
int sampleCnt,
|
|
|
|
int stencilBits,
|
2017-05-01 13:50:58 +00:00
|
|
|
const GrVkImageInfo& vkInfo);
|
2017-04-18 19:52:36 +00:00
|
|
|
|
|
|
|
GrBackendRenderTarget(int width,
|
|
|
|
int height,
|
|
|
|
int sampleCnt,
|
|
|
|
int stencilBits,
|
|
|
|
GrPixelConfig config,
|
2017-05-01 13:50:58 +00:00
|
|
|
const GrGLFramebufferInfo& glInfo);
|
2017-04-18 19:52:36 +00:00
|
|
|
|
|
|
|
int width() const { return fWidth; }
|
|
|
|
int height() const { return fHeight; }
|
|
|
|
int sampleCnt() const { return fSampleCnt; }
|
|
|
|
int stencilBits() const { return fStencilBits; }
|
|
|
|
GrPixelConfig config() const { return fConfig; }
|
|
|
|
GrBackend backend() const {return fBackend; }
|
|
|
|
|
|
|
|
// If the backend API is Vulkan, this returns a pointer to the GrVkImageInfo struct. Otherwise
|
2017-05-01 13:50:58 +00:00
|
|
|
// it returns nullptr
|
Revert "Revert "Plumb GrBackendTexture throughout skia.""
This reverts commit 7fa5c31c2c9af834bee66d5fcf476e250076c8d6.
Reason for revert: Relanding this change now that other fixes have landed.
Original change's description:
> Revert "Plumb GrBackendTexture throughout skia."
>
> This reverts commit 7da62b9059f3c1d31624a0e4da96ee5f908f9c12.
>
> Reason for revert: fix android roll
>
> Original change's description:
> > Plumb GrBackendTexture throughout skia.
> >
> > Bug: skia:
> > Change-Id: I1bae6768ee7229818a83ba608035a1f7867e6875
> > Reviewed-on: https://skia-review.googlesource.com/13645
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> >
>
> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org,stani@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Change-Id: I5cb8763cc837c83ebc6d10366fe2dd3efe35fb89
> Reviewed-on: https://skia-review.googlesource.com/13773
> Reviewed-by: Stan Iliev <stani@google.com>
> Commit-Queue: Stan Iliev <stani@google.com>
>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reviews@skia.org,brianosman@google.com,stani@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I92bc074e4fe37fa5c83186afadc472c03802e8f2
Reviewed-on: https://skia-review.googlesource.com/13975
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-20 16:41:55 +00:00
|
|
|
const GrVkImageInfo* getVkImageInfo() const;
|
2017-04-18 19:52:36 +00:00
|
|
|
|
2017-05-01 13:50:58 +00:00
|
|
|
// If the backend API is GL, this returns a pointer to the GrGLFramebufferInfo struct. Otherwise
|
2017-04-18 19:52:36 +00:00
|
|
|
// it returns nullptr.
|
2017-05-01 13:50:58 +00:00
|
|
|
const GrGLFramebufferInfo* getGLFramebufferInfo() const;
|
2017-04-18 19:52:36 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
// Temporary constructor which can be used to convert from a GrBackendRenderTargetDesc.
|
|
|
|
GrBackendRenderTarget(const GrBackendRenderTargetDesc& desc, GrBackend backend);
|
|
|
|
|
|
|
|
// Friending for access to above constructor taking a GrBackendTextureDesc
|
|
|
|
friend class SkSurface;
|
|
|
|
|
|
|
|
int fWidth; //<! width in pixels
|
|
|
|
int fHeight; //<! height in pixels
|
|
|
|
|
|
|
|
int fSampleCnt;
|
|
|
|
int fStencilBits;
|
|
|
|
GrPixelConfig fConfig;
|
|
|
|
|
|
|
|
GrBackend fBackend;
|
|
|
|
|
|
|
|
union {
|
2017-05-01 13:50:58 +00:00
|
|
|
GrVkImageInfo fVkInfo;
|
|
|
|
GrGLFramebufferInfo fGLInfo;
|
2017-04-18 19:52:36 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|