| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "../../../include/fxge/fx_ge.h" | 5 #include "../../../include/fxge/fx_ge.h" |
| 6 //#define _SKIA_SUPPORT_ | 6 //#define _SKIA_SUPPORT_ |
| 7 #if defined(_SKIA_SUPPORT_) | 7 #if defined(_SKIA_SUPPORT_) |
| 8 #include "../../../include/fxcodec/fx_codec.h" | 8 #include "../../../include/fxcodec/fx_codec.h" |
| 9 #include "SkBlitter.h" | 9 #include "SkBlitter.h" |
| 10 #include "fx_skia_blitter_new.h" | 10 #include "fx_skia_blitter_new.h" |
| (...skipping 1280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1291 } | 1291 } |
| 1292 } | 1292 } |
| 1293 dest_scan += 4; | 1293 dest_scan += 4; |
| 1294 } | 1294 } |
| 1295 } | 1295 } |
| 1296 } | 1296 } |
| 1297 | 1297 |
| 1298 | 1298 |
| 1299 | 1299 |
| 1300 //-------------------------------------------------------------------- | 1300 //-------------------------------------------------------------------- |
| 1301 » FX_BOOL CFX_SkiaRenderer::Init(CFX_DIBitmap* pDevice, CFX_DIBitmap* pOri
Device, const CFX_ClipRgn* pClipRgn, FX_DWORD color, FX_BOOL bFullCover, FX_BOOL
bRgbByteOrder, | 1301 » bool CFX_SkiaRenderer::Init(CFX_DIBitmap* pDevice, CFX_DIBitmap* pOriDev
ice, const CFX_ClipRgn* pClipRgn, FX_DWORD color, bool bFullCover, bool bRgbByte
Order, |
| 1302 int alpha_flag, void* pIccTransform) //The alpha flag must be fi
ll_flag if exist. | 1302 int alpha_flag, void* pIccTransform) //The alpha flag must be fi
ll_flag if exist. |
| 1303 { | 1303 { |
| 1304 m_pDevice = pDevice; | 1304 m_pDevice = pDevice; |
| 1305 m_pClipRgn = pClipRgn; | 1305 m_pClipRgn = pClipRgn; |
| 1306 m_bRgbByteOrder = bRgbByteOrder; | 1306 m_bRgbByteOrder = bRgbByteOrder; |
| 1307 m_pOriDevice = pOriDevice; | 1307 m_pOriDevice = pOriDevice; |
| 1308 m_pDestScan = NULL; | 1308 m_pDestScan = NULL; |
| 1309 m_pDestExtraAlphaScan = NULL; | 1309 m_pDestExtraAlphaScan = NULL; |
| 1310 m_pOriScan = NULL; | 1310 m_pOriScan = NULL; |
| 1311 m_pClipScan = NULL; | 1311 m_pClipScan = NULL; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1324 m_pClipScan = m_pClipMask->GetBuffer(); | 1324 m_pClipScan = m_pClipMask->GetBuffer(); |
| 1325 } | 1325 } |
| 1326 if (m_pDevice->m_pAlphaMask) | 1326 if (m_pDevice->m_pAlphaMask) |
| 1327 m_pDestExtraAlphaScan = m_pDevice->m_pAlphaMask->GetBuff
er(); | 1327 m_pDestExtraAlphaScan = m_pDevice->m_pAlphaMask->GetBuff
er(); |
| 1328 if (m_pOriDevice) | 1328 if (m_pOriDevice) |
| 1329 m_pOriScan = m_pOriDevice->GetBuffer(); | 1329 m_pOriScan = m_pOriDevice->GetBuffer(); |
| 1330 m_pDestScan = m_pDevice->GetBuffer(); | 1330 m_pDestScan = m_pDevice->GetBuffer(); |
| 1331 | 1331 |
| 1332 m_bFullCover = bFullCover; | 1332 m_bFullCover = bFullCover; |
| 1333 | 1333 |
| 1334 » » FX_BOOL bObjectCMYK = FXGETFLAG_COLORTYPE(alpha_flag); | 1334 » » bool bObjectCMYK = FXGETFLAG_COLORTYPE(alpha_flag); |
| 1335 » » FX_BOOL bDeviceCMYK = pDevice->IsCmykImage(); | 1335 » » bool bDeviceCMYK = pDevice->IsCmykImage(); |
| 1336 | 1336 |
| 1337 m_Alpha = bObjectCMYK ? FXGETFLAG_ALPHA_FILL(alpha_flag) : FXARG
B_A(color); | 1337 m_Alpha = bObjectCMYK ? FXGETFLAG_ALPHA_FILL(alpha_flag) : FXARG
B_A(color); |
| 1338 | 1338 |
| 1339 ICodec_IccModule* pIccModule = NULL; | 1339 ICodec_IccModule* pIccModule = NULL; |
| 1340 // No lcms engine, we skip the transform | 1340 // No lcms engine, we skip the transform |
| 1341 if (!CFX_GEModule::Get()->GetCodecModule() || !CFX_GEModule::Get
()->GetCodecModule()->GetIccModule()) | 1341 if (!CFX_GEModule::Get()->GetCodecModule() || !CFX_GEModule::Get
()->GetCodecModule()->GetIccModule()) |
| 1342 pIccTransform = NULL; | 1342 pIccTransform = NULL; |
| 1343 else | 1343 else |
| 1344 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetI
ccModule(); | 1344 pIccModule = CFX_GEModule::Get()->GetCodecModule()->GetI
ccModule(); |
| 1345 | 1345 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1370 if (bDeviceCMYK) { // Cmyk(a) Device | 1370 if (bDeviceCMYK) { // Cmyk(a) Device |
| 1371 ASSERT(!m_bRgbByteOrder); | 1371 ASSERT(!m_bRgbByteOrder); |
| 1372 //TODO... opt for cmyk | 1372 //TODO... opt for cmyk |
| 1373 composite_span = &CFX_SkiaRenderer::CompositeSpa
nCMYK; | 1373 composite_span = &CFX_SkiaRenderer::CompositeSpa
nCMYK; |
| 1374 if (bObjectCMYK) { | 1374 if (bObjectCMYK) { |
| 1375 m_Color = FXCMYK_TODIB(color); | 1375 m_Color = FXCMYK_TODIB(color); |
| 1376 if (pIccTransform) | 1376 if (pIccTransform) |
| 1377 pIccModule->TranslateScanline(pI
ccTransform, (uint8_t*)&m_Color, (const uint8_t*)&m_Color, 1); | 1377 pIccModule->TranslateScanline(pI
ccTransform, (uint8_t*)&m_Color, (const uint8_t*)&m_Color, 1); |
| 1378 } else { // Object RGB | 1378 } else { // Object RGB |
| 1379 if (!pIccTransform) | 1379 if (!pIccTransform) |
| 1380 » » » » » » return FALSE; | 1380 » » » » » » return false; |
| 1381 color = FXARGB_TODIB(color); | 1381 color = FXARGB_TODIB(color); |
| 1382 pIccModule->TranslateScanline(pIccTransf
orm, (uint8_t*)&m_Color, (const uint8_t*)&color, 1); | 1382 pIccModule->TranslateScanline(pIccTransf
orm, (uint8_t*)&m_Color, (const uint8_t*)&color, 1); |
| 1383 } | 1383 } |
| 1384 m_Red = ((uint8_t*)&m_Color)[0]; | 1384 m_Red = ((uint8_t*)&m_Color)[0]; |
| 1385 m_Green = ((uint8_t*)&m_Color)[1]; | 1385 m_Green = ((uint8_t*)&m_Color)[1]; |
| 1386 m_Blue = ((uint8_t*)&m_Color)[2]; | 1386 m_Blue = ((uint8_t*)&m_Color)[2]; |
| 1387 m_Gray = ((uint8_t*)&m_Color)[3]; | 1387 m_Gray = ((uint8_t*)&m_Color)[3]; |
| 1388 » » » » return TRUE; | 1388 » » » » return true; |
| 1389 } else { | 1389 } else { |
| 1390 if (pIccTransform) { | 1390 if (pIccTransform) { |
| 1391 color = bObjectCMYK ? FXCMYK_TODIB(color
) : FXARGB_TODIB(color); | 1391 color = bObjectCMYK ? FXCMYK_TODIB(color
) : FXARGB_TODIB(color); |
| 1392 pIccModule->TranslateScanline(pIccTransf
orm, (uint8_t*)&m_Color, (const uint8_t*)&color, 1); | 1392 pIccModule->TranslateScanline(pIccTransf
orm, (uint8_t*)&m_Color, (const uint8_t*)&color, 1); |
| 1393 ((uint8_t*)&m_Color)[3] = m_Alpha; | 1393 ((uint8_t*)&m_Color)[3] = m_Alpha; |
| 1394 m_Red = ((uint8_t*)&m_Color)[2]; | 1394 m_Red = ((uint8_t*)&m_Color)[2]; |
| 1395 m_Green = ((uint8_t*)&m_Color)[1]; | 1395 m_Green = ((uint8_t*)&m_Color)[1]; |
| 1396 m_Blue = ((uint8_t*)&m_Color)[0]; | 1396 m_Blue = ((uint8_t*)&m_Color)[0]; |
| 1397 // Need Johnson to improvement it. | 1397 // Need Johnson to improvement it. |
| 1398 if (m_bRgbByteOrder) { | 1398 if (m_bRgbByteOrder) { |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1490 //TODO... | 1490 //TODO... |
| 1491 break; | 1491 break; |
| 1492 case 10: | 1492 case 10: |
| 1493 composite_span = &CFX_SkiaRenderer::CompositeSpa
nRGB24_10; | 1493 composite_span = &CFX_SkiaRenderer::CompositeSpa
nRGB24_10; |
| 1494 break; | 1494 break; |
| 1495 case 14: | 1495 case 14: |
| 1496 composite_span = &CFX_SkiaRenderer::CompositeSpa
nRGB24_14; | 1496 composite_span = &CFX_SkiaRenderer::CompositeSpa
nRGB24_14; |
| 1497 break; | 1497 break; |
| 1498 } | 1498 } |
| 1499 if (composite_span == NULL) | 1499 if (composite_span == NULL) |
| 1500 » » » return FALSE; | 1500 » » » return false; |
| 1501 » » return TRUE; | 1501 » » return true; |
| 1502 } | 1502 } |
| 1503 | 1503 |
| 1504 /*----------------------------------------------------------------------
------------------------------*/ | 1504 /*----------------------------------------------------------------------
------------------------------*/ |
| 1505 void CFX_SkiaA8Renderer::blitAntiH(int x, int y, const SkAlpha antialias
[], const int16_t runs[]) | 1505 void CFX_SkiaA8Renderer::blitAntiH(int x, int y, const SkAlpha antialias
[], const int16_t runs[]) |
| 1506 { | 1506 { |
| 1507 FXSYS_assert(m_pDevice); | 1507 FXSYS_assert(m_pDevice); |
| 1508 int dst_y = y - m_Top; | 1508 int dst_y = y - m_Top; |
| 1509 if (dst_y < 0 || dst_y >= m_pDevice->GetHeight()) | 1509 if (dst_y < 0 || dst_y >= m_pDevice->GetHeight()) |
| 1510 return; | 1510 return; |
| 1511 | 1511 |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1589 SkAlpha leftAlpha, SkAlpha rightAlpha) | 1589 SkAlpha leftAlpha, SkAlpha rightAlpha) |
| 1590 { | 1590 { |
| 1591 blitV(x++, y, height, leftAlpha); | 1591 blitV(x++, y, height, leftAlpha); |
| 1592 if (width > 0) { | 1592 if (width > 0) { |
| 1593 blitRect(x, y, width, height); | 1593 blitRect(x, y, width, height); |
| 1594 x += width; | 1594 x += width; |
| 1595 } | 1595 } |
| 1596 blitV(x, y, height, rightAlpha); | 1596 blitV(x, y, height, rightAlpha); |
| 1597 } | 1597 } |
| 1598 | 1598 |
| 1599 » FX_BOOL CFX_SkiaA8Renderer::Init(CFX_DIBitmap* pDevice, int Left, int To
p) | 1599 » bool CFX_SkiaA8Renderer::Init(CFX_DIBitmap* pDevice, int Left, int Top) |
| 1600 { | 1600 { |
| 1601 m_pDevice = pDevice; | 1601 m_pDevice = pDevice; |
| 1602 m_Left = Left; | 1602 m_Left = Left; |
| 1603 m_Top = Top; | 1603 m_Top = Top; |
| 1604 if (pDevice){ | 1604 if (pDevice){ |
| 1605 m_dstWidth = m_Left + pDevice->GetWidth(); | 1605 m_dstWidth = m_Left + pDevice->GetWidth(); |
| 1606 m_dstHeight = m_Top + pDevice->GetHeight(); | 1606 m_dstHeight = m_Top + pDevice->GetHeight(); |
| 1607 } | 1607 } |
| 1608 » » return TRUE; | 1608 » » return true; |
| 1609 } | 1609 } |
| 1610 #endif | 1610 #endif |
| OLD | NEW |