Merge "Update GrContext creation calls to use sk_sp"
This commit is contained in:
@@ -45,8 +45,7 @@ CopyResult SkiaOpenGLReadback::copyImageInto(EGLImageKHR eglImage, const Matrix4
|
||||
if (Properties::getRenderPipelineType() == RenderPipelineType::SkiaVulkan) {
|
||||
sk_sp<const GrGLInterface> glInterface(GrGLCreateNativeInterface());
|
||||
LOG_ALWAYS_FATAL_IF(!glInterface.get());
|
||||
grContext.reset(GrContext::Create(GrBackend::kOpenGL_GrBackend,
|
||||
(GrBackendContext)glInterface.get()));
|
||||
grContext = GrContext::MakeGL(std::move(glInterface));
|
||||
} else {
|
||||
grContext->resetContext();
|
||||
}
|
||||
|
||||
@@ -53,13 +53,13 @@ CacheManager::CacheManager(const DisplayInfo& display) : mMaxSurfaceArea(display
|
||||
}
|
||||
}
|
||||
|
||||
void CacheManager::reset(GrContext* context) {
|
||||
if (context != mGrContext.get()) {
|
||||
void CacheManager::reset(sk_sp<GrContext> context) {
|
||||
if (context != mGrContext) {
|
||||
destroy();
|
||||
}
|
||||
|
||||
if (context) {
|
||||
mGrContext = sk_ref_sp(context);
|
||||
mGrContext = std::move(context);
|
||||
mGrContext->getResourceCacheLimits(&mMaxResources, nullptr);
|
||||
updateContextCacheSizes();
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ private:
|
||||
|
||||
CacheManager(const DisplayInfo& display);
|
||||
|
||||
void reset(GrContext* grContext);
|
||||
void reset(sk_sp<GrContext> grContext);
|
||||
void destroy();
|
||||
void updateContextCacheSizes();
|
||||
|
||||
|
||||
@@ -141,8 +141,9 @@ void EglManager::initialize() {
|
||||
GrContextOptions options;
|
||||
options.fDisableDistanceFieldPaths = true;
|
||||
mRenderThread.cacheManager().configureContext(&options);
|
||||
mRenderThread.setGrContext(GrContext::Create(GrBackend::kOpenGL_GrBackend,
|
||||
(GrBackendContext)glInterface.get(), options));
|
||||
sk_sp<GrContext> grContext(GrContext::MakeGL(std::move(glInterface), options));
|
||||
LOG_ALWAYS_FATAL_IF(!grContext.get());
|
||||
mRenderThread.setGrContext(grContext);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -173,12 +173,12 @@ Readback& RenderThread::readback() {
|
||||
return *mReadback;
|
||||
}
|
||||
|
||||
void RenderThread::setGrContext(GrContext* context) {
|
||||
void RenderThread::setGrContext(sk_sp<GrContext> context) {
|
||||
mCacheManager->reset(context);
|
||||
if (mGrContext.get()) {
|
||||
if (mGrContext) {
|
||||
mGrContext->releaseResourcesAndAbandonContext();
|
||||
}
|
||||
mGrContext.reset(context);
|
||||
mGrContext = std::move(context);
|
||||
}
|
||||
|
||||
int RenderThread::displayEventReceiverCallback(int fd, int events, void* data) {
|
||||
|
||||
@@ -88,7 +88,7 @@ public:
|
||||
const DisplayInfo& mainDisplayInfo() { return mDisplayInfo; }
|
||||
|
||||
GrContext* getGrContext() const { return mGrContext.get(); }
|
||||
void setGrContext(GrContext* cxt);
|
||||
void setGrContext(sk_sp<GrContext> cxt);
|
||||
|
||||
CacheManager& cacheManager() { return *mCacheManager; }
|
||||
VulkanManager& vulkanManager() { return *mVkManager; }
|
||||
|
||||
@@ -58,6 +58,7 @@ void VulkanManager::initialize() {
|
||||
|
||||
mBackendContext.reset(GrVkBackendContext::Create(vkGetInstanceProcAddr, vkGetDeviceProcAddr,
|
||||
&mPresentQueueIndex, canPresent));
|
||||
LOG_ALWAYS_FATAL_IF(!mBackendContext.get());
|
||||
|
||||
// Get all the addresses of needed vulkan functions
|
||||
VkInstance instance = mBackendContext->fInstance;
|
||||
@@ -110,8 +111,9 @@ void VulkanManager::initialize() {
|
||||
GrContextOptions options;
|
||||
options.fDisableDistanceFieldPaths = true;
|
||||
mRenderThread.cacheManager().configureContext(&options);
|
||||
mRenderThread.setGrContext(
|
||||
GrContext::Create(kVulkan_GrBackend, (GrBackendContext)mBackendContext.get(), options));
|
||||
sk_sp<GrContext> grContext(GrContext::MakeVulkan(mBackendContext, options));
|
||||
LOG_ALWAYS_FATAL_IF(!grContext.get());
|
||||
mRenderThread.setGrContext(grContext);
|
||||
DeviceInfo::initialize(mRenderThread.getGrContext()->caps()->maxRenderTargetSize());
|
||||
|
||||
if (Properties::enablePartialUpdates && Properties::useBufferAge) {
|
||||
|
||||
Reference in New Issue
Block a user