Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(302)

Side by Side Diff: src/gpu/vk/GrVkGpu.cpp

Issue 2448593002: Remove SkAutoTUnref and SkAutoTDelete from public includes. (Closed)
Patch Set: And Vulcan. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/gpu/vk/GrVkGpu.h ('k') | src/gpu/vk/GrVkRenderTarget.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "GrVkGpu.h" 8 #include "GrVkGpu.h"
9 9
10 #include "GrContextOptions.h" 10 #include "GrContextOptions.h"
(...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 749
750 static GrSurfaceOrigin resolve_origin(GrSurfaceOrigin origin) { 750 static GrSurfaceOrigin resolve_origin(GrSurfaceOrigin origin) {
751 // By default, all textures in Vk use TopLeft 751 // By default, all textures in Vk use TopLeft
752 if (kDefault_GrSurfaceOrigin == origin) { 752 if (kDefault_GrSurfaceOrigin == origin) {
753 return kTopLeft_GrSurfaceOrigin; 753 return kTopLeft_GrSurfaceOrigin;
754 } else { 754 } else {
755 return origin; 755 return origin;
756 } 756 }
757 } 757 }
758 758
759 GrTexture* GrVkGpu::onWrapBackendTexture(const GrBackendTextureDesc& desc, 759 sk_sp<GrTexture> GrVkGpu::onWrapBackendTexture(const GrBackendTextureDesc& desc,
760 GrWrapOwnership ownership) { 760 GrWrapOwnership ownership) {
761 if (0 == desc.fTextureHandle) { 761 if (0 == desc.fTextureHandle) {
762 return nullptr; 762 return nullptr;
763 } 763 }
764 764
765 int maxSize = this->caps()->maxTextureSize(); 765 int maxSize = this->caps()->maxTextureSize();
766 if (desc.fWidth > maxSize || desc.fHeight > maxSize) { 766 if (desc.fWidth > maxSize || desc.fHeight > maxSize) {
767 return nullptr; 767 return nullptr;
768 } 768 }
769 769
770 const GrVkImageInfo* info = reinterpret_cast<const GrVkImageInfo*>(desc.fTex tureHandle); 770 const GrVkImageInfo* info = reinterpret_cast<const GrVkImageInfo*>(desc.fTex tureHandle);
(...skipping 13 matching lines...) Expand all
784 surfDesc.fFlags = (GrSurfaceFlags)desc.fFlags; 784 surfDesc.fFlags = (GrSurfaceFlags)desc.fFlags;
785 surfDesc.fWidth = desc.fWidth; 785 surfDesc.fWidth = desc.fWidth;
786 surfDesc.fHeight = desc.fHeight; 786 surfDesc.fHeight = desc.fHeight;
787 surfDesc.fConfig = desc.fConfig; 787 surfDesc.fConfig = desc.fConfig;
788 surfDesc.fSampleCnt = SkTMin(desc.fSampleCnt, this->caps()->maxSampleCount() ); 788 surfDesc.fSampleCnt = SkTMin(desc.fSampleCnt, this->caps()->maxSampleCount() );
789 bool renderTarget = SkToBool(desc.fFlags & kRenderTarget_GrBackendTextureFla g); 789 bool renderTarget = SkToBool(desc.fFlags & kRenderTarget_GrBackendTextureFla g);
790 // In GL, Chrome assumes all textures are BottomLeft 790 // In GL, Chrome assumes all textures are BottomLeft
791 // In VK, we don't have this restriction 791 // In VK, we don't have this restriction
792 surfDesc.fOrigin = resolve_origin(desc.fOrigin); 792 surfDesc.fOrigin = resolve_origin(desc.fOrigin);
793 793
794 GrVkTexture* texture = nullptr; 794 if (!renderTarget) {
795 if (renderTarget) { 795 return GrVkTexture::MakeWrappedTexture(this, surfDesc, ownership, info);
796 texture = GrVkTextureRenderTarget::CreateWrappedTextureRenderTarget(this , surfDesc,
797 owne rship, info);
798 } else {
799 texture = GrVkTexture::CreateWrappedTexture(this, surfDesc, ownership, i nfo);
800 } 796 }
801 if (!texture) { 797 return GrVkTextureRenderTarget::MakeWrappedTextureRenderTarget(this, surfDes c, ownership, info);
802 return nullptr;
803 }
804
805 return texture;
806 } 798 }
807 799
808 GrRenderTarget* GrVkGpu::onWrapBackendRenderTarget(const GrBackendRenderTargetDe sc& wrapDesc, 800 sk_sp<GrRenderTarget> GrVkGpu::onWrapBackendRenderTarget(const GrBackendRenderTa rgetDesc& wrapDesc,
809 GrWrapOwnership ownership) { 801 GrWrapOwnership ownersh ip) {
810 802
811 const GrVkImageInfo* info = 803 const GrVkImageInfo* info =
812 reinterpret_cast<const GrVkImageInfo*>(wrapDesc.fRenderTargetHandle); 804 reinterpret_cast<const GrVkImageInfo*>(wrapDesc.fRenderTargetHandle);
813 if (VK_NULL_HANDLE == info->fImage || 805 if (VK_NULL_HANDLE == info->fImage ||
814 (VK_NULL_HANDLE == info->fAlloc.fMemory && kAdopt_GrWrapOwnership == own ership)) { 806 (VK_NULL_HANDLE == info->fAlloc.fMemory && kAdopt_GrWrapOwnership == own ership)) {
815 return nullptr; 807 return nullptr;
816 } 808 }
817 809
818 GrSurfaceDesc desc; 810 GrSurfaceDesc desc;
819 desc.fConfig = wrapDesc.fConfig; 811 desc.fConfig = wrapDesc.fConfig;
820 desc.fFlags = kCheckAllocation_GrSurfaceFlag; 812 desc.fFlags = kCheckAllocation_GrSurfaceFlag;
821 desc.fWidth = wrapDesc.fWidth; 813 desc.fWidth = wrapDesc.fWidth;
822 desc.fHeight = wrapDesc.fHeight; 814 desc.fHeight = wrapDesc.fHeight;
823 desc.fSampleCnt = SkTMin(wrapDesc.fSampleCnt, this->caps()->maxSampleCount() ); 815 desc.fSampleCnt = SkTMin(wrapDesc.fSampleCnt, this->caps()->maxSampleCount() );
824 816
825 desc.fOrigin = resolve_origin(wrapDesc.fOrigin); 817 desc.fOrigin = resolve_origin(wrapDesc.fOrigin);
826 818
827 GrVkRenderTarget* tgt = GrVkRenderTarget::CreateWrappedRenderTarget(this, de sc, 819 sk_sp<GrVkRenderTarget> tgt = GrVkRenderTarget::MakeWrappedRenderTarget(this , desc,
828 ownershi p, 820 owne rship, info);
829 info);
830 if (tgt && wrapDesc.fStencilBits) { 821 if (tgt && wrapDesc.fStencilBits) {
831 if (!createStencilAttachmentForRenderTarget(tgt, desc.fWidth, desc.fHeig ht)) { 822 if (!createStencilAttachmentForRenderTarget(tgt.get(), desc.fWidth, desc .fHeight)) {
832 tgt->unref();
833 return nullptr; 823 return nullptr;
834 } 824 }
835 } 825 }
836 return tgt; 826 return tgt;
837 } 827 }
838 828
839 void GrVkGpu::generateMipmap(GrVkTexture* tex) { 829 void GrVkGpu::generateMipmap(GrVkTexture* tex) {
840 // don't do anything for linearly tiled textures (can't have mipmaps) 830 // don't do anything for linearly tiled textures (can't have mipmaps)
841 if (tex->isLinearTiled()) { 831 if (tex->isLinearTiled()) {
842 SkDebugf("Trying to create mipmap for linear tiled texture"); 832 SkDebugf("Trying to create mipmap for linear tiled texture");
(...skipping 1070 matching lines...) Expand 10 before | Expand all | Expand 10 after
1913 (VkFence*)&f ence, 1903 (VkFence*)&f ence,
1914 VK_TRUE, 1904 VK_TRUE,
1915 timeout)); 1905 timeout));
1916 return (VK_SUCCESS == result); 1906 return (VK_SUCCESS == result);
1917 } 1907 }
1918 1908
1919 void GrVkGpu::deleteFence(GrFence fence) const { 1909 void GrVkGpu::deleteFence(GrFence fence) const {
1920 GR_VK_CALL(this->vkInterface(), DestroyFence(this->device(), (VkFence)fence, nullptr)); 1910 GR_VK_CALL(this->vkInterface(), DestroyFence(this->device(), (VkFence)fence, nullptr));
1921 } 1911 }
1922 1912
OLDNEW
« no previous file with comments | « src/gpu/vk/GrVkGpu.h ('k') | src/gpu/vk/GrVkRenderTarget.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698