OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 "SkWindow.h" | 8 #include "SkWindow.h" |
9 #include "SkCanvas.h" | 9 #include "SkCanvas.h" |
10 #include "SkOSMenu.h" | 10 #include "SkOSMenu.h" |
(...skipping 49 matching lines...) Loading... |
60 fBitmap.allocPixels(info); | 60 fBitmap.allocPixels(info); |
61 this->inval(nullptr); | 61 this->inval(nullptr); |
62 } | 62 } |
63 this->setSize(SkIntToScalar(fBitmap.width()), SkIntToScalar(fBitmap.height()
)); | 63 this->setSize(SkIntToScalar(fBitmap.width()), SkIntToScalar(fBitmap.height()
)); |
64 } | 64 } |
65 | 65 |
66 void SkWindow::resize(int width, int height) { | 66 void SkWindow::resize(int width, int height) { |
67 this->resize(fBitmap.info().makeWH(width, height)); | 67 this->resize(fBitmap.info().makeWH(width, height)); |
68 } | 68 } |
69 | 69 |
70 void SkWindow::setColorType(SkColorType ct, SkColorProfileType pt) { | 70 void SkWindow::setColorType(SkColorType ct, sk_sp<SkColorSpace> cs) { |
71 const SkImageInfo& info = fBitmap.info(); | 71 const SkImageInfo& info = fBitmap.info(); |
72 this->resize(SkImageInfo::Make(info.width(), info.height(), ct, kPremul_SkAl
phaType, pt)); | 72 this->resize(SkImageInfo::Make(info.width(), info.height(), ct, kPremul_SkAl
phaType, cs)); |
73 | 73 |
74 // Set the global flag that enables or disables "legacy" mode, depending on
our format. | 74 // Set the global flag that enables or disables "legacy" mode, depending on
our format. |
75 // With sRGB 32-bit or linear FP 16, we turn on gamma-correct handling of in
puts: | 75 // With sRGB 32-bit or linear FP 16, we turn on gamma-correct handling of in
puts: |
76 SkSurfaceProps props = this->getSurfaceProps(); | 76 SkSurfaceProps props = this->getSurfaceProps(); |
77 uint32_t flags = (props.flags() & ~SkSurfaceProps::kGammaCorrect_Flag) | | 77 uint32_t flags = (props.flags() & ~SkSurfaceProps::kGammaCorrect_Flag) | |
78 (SkColorAndProfileAreGammaCorrect(ct, pt) ? SkSurfaceProps::kGammaCorrec
t_Flag : 0); | 78 (SkColorAndColorSpaceAreGammaCorrect(ct, cs.get()) |
| 79 ? SkSurfaceProps::kGammaCorrect_Flag : 0); |
79 this->setSurfaceProps(SkSurfaceProps(flags, props.pixelGeometry())); | 80 this->setSurfaceProps(SkSurfaceProps(flags, props.pixelGeometry())); |
80 } | 81 } |
81 | 82 |
82 bool SkWindow::handleInval(const SkRect* localR) { | 83 bool SkWindow::handleInval(const SkRect* localR) { |
83 SkIRect ir; | 84 SkIRect ir; |
84 | 85 |
85 if (localR) { | 86 if (localR) { |
86 SkRect devR; | 87 SkRect devR; |
87 SkMatrix inverse; | 88 SkMatrix inverse; |
88 if (!fMatrix.invert(&inverse)) { | 89 if (!fMatrix.invert(&inverse)) { |
(...skipping 262 matching lines...) Loading... |
351 desc.fOrigin = kBottomLeft_GrSurfaceOrigin; | 352 desc.fOrigin = kBottomLeft_GrSurfaceOrigin; |
352 desc.fSampleCnt = attachmentInfo.fSampleCount; | 353 desc.fSampleCnt = attachmentInfo.fSampleCount; |
353 desc.fStencilBits = attachmentInfo.fStencilBits; | 354 desc.fStencilBits = attachmentInfo.fStencilBits; |
354 GrGLint buffer; | 355 GrGLint buffer; |
355 GR_GL_GetIntegerv(interface, GR_GL_FRAMEBUFFER_BINDING, &buffer); | 356 GR_GL_GetIntegerv(interface, GR_GL_FRAMEBUFFER_BINDING, &buffer); |
356 desc.fRenderTargetHandle = buffer; | 357 desc.fRenderTargetHandle = buffer; |
357 return grContext->textureProvider()->wrapBackendRenderTarget(desc); | 358 return grContext->textureProvider()->wrapBackendRenderTarget(desc); |
358 } | 359 } |
359 | 360 |
360 #endif | 361 #endif |
OLD | NEW |