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 | 9 |
10 | 10 |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 spaint.getFillPath(path_data, dstPathData); | 230 spaint.getFillPath(path_data, dstPathData); |
231 SkMatrix smatrix; | 231 SkMatrix smatrix; |
232 smatrix.setAll(pObject2Device->a, pObject2Device->c, pObject2Dev
ice->e, pObject2Device->b, pObject2Device->d, pObject2Device->f, 0, 0, 1); | 232 smatrix.setAll(pObject2Device->a, pObject2Device->c, pObject2Dev
ice->e, pObject2Device->b, pObject2Device->d, pObject2Device->f, 0, 0, 1); |
233 dstPathData->transform(smatrix); | 233 dstPathData->transform(smatrix); |
234 FX_Free(intervals); | 234 FX_Free(intervals); |
235 } | 235 } |
236 } | 236 } |
237 | 237 |
238 CFX_SkiaDeviceDriver::CFX_SkiaDeviceDriver(CFX_DIBitmap* pBitmap, int dither_bit
s, FX_BOOL bRgbByteOrder, CFX_DIBitmap* pOriDevice, FX_BOOL bGroupKnockout) | 238 CFX_SkiaDeviceDriver::CFX_SkiaDeviceDriver(CFX_DIBitmap* pBitmap, int dither_bit
s, FX_BOOL bRgbByteOrder, CFX_DIBitmap* pOriDevice, FX_BOOL bGroupKnockout) |
239 { | 239 { |
240 » m_pAggDriver = FX_NEW CFX_AggDeviceDriver(pBitmap, dither_bits, bRgbByte
Order, pOriDevice, bGroupKnockout); | 240 » m_pAggDriver = new CFX_AggDeviceDriver(pBitmap, dither_bits, bRgbByteOrd
er, pOriDevice, bGroupKnockout); |
241 } | 241 } |
242 CFX_SkiaDeviceDriver::~CFX_SkiaDeviceDriver() | 242 CFX_SkiaDeviceDriver::~CFX_SkiaDeviceDriver() |
243 { | 243 { |
244 if (m_pAggDriver) delete m_pAggDriver; | 244 if (m_pAggDriver) delete m_pAggDriver; |
245 } | 245 } |
246 FX_BOOL CFX_SkiaDeviceDriver::DrawDeviceText(int nChars, const FXTEXT_CHARPOS* p
CharPos, CFX_Font* pFont, | 246 FX_BOOL CFX_SkiaDeviceDriver::DrawDeviceText(int nChars, const FXTEXT_CHARPOS* p
CharPos, CFX_Font* pFont, |
247 CFX_FontCache* pCache, const CFX_AffineMatrix* pObject2Device, F
X_FIXFLOAT font_size, FX_DWORD color, | 247 CFX_FontCache* pCache, const CFX_AffineMatrix* pObject2Device, F
X_FIXFLOAT font_size, FX_DWORD color, |
248 int alpha_flag, void* pIccTransform) | 248 int alpha_flag, void* pIccTransform) |
249 { | 249 { |
250 return m_pAggDriver->DrawDeviceText(nChars, pCharPos, pFont,pCache, pObj
ect2Device, font_size, color, | 250 return m_pAggDriver->DrawDeviceText(nChars, pCharPos, pFont,pCache, pObj
ect2Device, font_size, color, |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
293 // Finally, we have got the mask that we need, intersect with current cl
ip region | 293 // Finally, we have got the mask that we need, intersect with current cl
ip region |
294 m_pAggDriver->m_pClipRgn->IntersectMaskF(clip_box.fLeft, clip_box.fTop,
mask); | 294 m_pAggDriver->m_pClipRgn->IntersectMaskF(clip_box.fLeft, clip_box.fTop,
mask); |
295 | 295 |
296 } | 296 } |
297 FX_BOOL CFX_SkiaDeviceDriver::SetClip_PathFill(const CFX_PathData* pPathData,
// path info | 297 FX_BOOL CFX_SkiaDeviceDriver::SetClip_PathFill(const CFX_PathData* pPathData,
// path info |
298 const CFX_AffineMatrix* pObject2
Device, // optional transformation | 298 const CFX_AffineMatrix* pObject2
Device, // optional transformation |
299 int fill_mode // fill mode, WI
NDING or ALTERNATE | 299 int fill_mode // fill mode, WI
NDING or ALTERNATE |
300 ) | 300 ) |
301 { | 301 { |
302 if (m_pAggDriver->m_pClipRgn == NULL) | 302 if (m_pAggDriver->m_pClipRgn == NULL) |
303 » » m_pAggDriver->m_pClipRgn = FX_NEW CFX_ClipRgn(GetDeviceCaps(FXDC
_PIXEL_WIDTH), GetDeviceCaps(FXDC_PIXEL_HEIGHT)); | 303 » » m_pAggDriver->m_pClipRgn = new CFX_ClipRgn(GetDeviceCaps(FXDC_PI
XEL_WIDTH), GetDeviceCaps(FXDC_PIXEL_HEIGHT)); |
304 | 304 |
305 if (pPathData->GetPointCount() == 5 || pPathData->GetPointCount() == 4)
{ | 305 if (pPathData->GetPointCount() == 5 || pPathData->GetPointCount() == 4)
{ |
306 CFX_FloatRect rectf; | 306 CFX_FloatRect rectf; |
307 if (pPathData->IsRect(pObject2Device, &rectf)) { | 307 if (pPathData->IsRect(pObject2Device, &rectf)) { |
308 rectf.Intersect(CFX_FloatRect(0, 0, (FX_FIXFLOAT)GetDevi
ceCaps(FXDC_PIXEL_WIDTH), (FX_FIXFLOAT)GetDeviceCaps(FXDC_PIXEL_HEIGHT))); | 308 rectf.Intersect(CFX_FloatRect(0, 0, (FX_FIXFLOAT)GetDevi
ceCaps(FXDC_PIXEL_WIDTH), (FX_FIXFLOAT)GetDeviceCaps(FXDC_PIXEL_HEIGHT))); |
309 FX_RECT rect = rectf.GetOutterRect(); | 309 FX_RECT rect = rectf.GetOutterRect(); |
310 m_pAggDriver->m_pClipRgn->IntersectRect(rect); | 310 m_pAggDriver->m_pClipRgn->IntersectRect(rect); |
311 return TRUE; | 311 return TRUE; |
312 } | 312 } |
313 } | 313 } |
(...skipping 11 matching lines...) Expand all Loading... |
325 | 325 |
326 return TRUE; | 326 return TRUE; |
327 } | 327 } |
328 | 328 |
329 FX_BOOL CFX_SkiaDeviceDriver::SetClip_PathStroke(const CFX_PathData* pPathData,
// path info | 329 FX_BOOL CFX_SkiaDeviceDriver::SetClip_PathStroke(const CFX_PathData* pPathData,
// path info |
330 const CFX_AffineMatrix* pObject2
Device, // optional transformation | 330 const CFX_AffineMatrix* pObject2
Device, // optional transformation |
331 const CFX_GraphStateData* pGraph
State // graphic state, for pen attributes | 331 const CFX_GraphStateData* pGraph
State // graphic state, for pen attributes |
332 ) | 332 ) |
333 { | 333 { |
334 if (m_pAggDriver->m_pClipRgn == NULL) | 334 if (m_pAggDriver->m_pClipRgn == NULL) |
335 » » m_pAggDriver->m_pClipRgn = FX_NEW CFX_ClipRgn(GetDeviceCaps(FXDC
_PIXEL_WIDTH), GetDeviceCaps(FXDC_PIXEL_HEIGHT)); | 335 » » m_pAggDriver->m_pClipRgn = new CFX_ClipRgn(GetDeviceCaps(FXDC_PI
XEL_WIDTH), GetDeviceCaps(FXDC_PIXEL_HEIGHT)); |
336 | 336 |
337 // build path data | 337 // build path data |
338 CSkia_PathData path_data; | 338 CSkia_PathData path_data; |
339 path_data.BuildPath(pPathData, NULL); | 339 path_data.BuildPath(pPathData, NULL); |
340 path_data.m_PathData.setFillType(SkPath::kWinding_FillType); | 340 path_data.m_PathData.setFillType(SkPath::kWinding_FillType); |
341 | 341 |
342 SkPaint spaint; | 342 SkPaint spaint; |
343 spaint.setColor(0xffffffff); | 343 spaint.setColor(0xffffffff); |
344 spaint.setStyle(SkPaint::kStroke_Style); | 344 spaint.setStyle(SkPaint::kStroke_Style); |
345 spaint.setAntiAlias(TRUE); | 345 spaint.setAntiAlias(TRUE); |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 CFX_SkiaDevice::CFX_SkiaDevice() | 498 CFX_SkiaDevice::CFX_SkiaDevice() |
499 { | 499 { |
500 m_bOwnedBitmap = FALSE; | 500 m_bOwnedBitmap = FALSE; |
501 } | 501 } |
502 | 502 |
503 FX_BOOL CFX_SkiaDevice::Attach(CFX_DIBitmap* pBitmap, int dither_bits, FX_BOOL b
RgbByteOrder, CFX_DIBitmap* pOriDevice, FX_BOOL bGroupKnockout) | 503 FX_BOOL CFX_SkiaDevice::Attach(CFX_DIBitmap* pBitmap, int dither_bits, FX_BOOL b
RgbByteOrder, CFX_DIBitmap* pOriDevice, FX_BOOL bGroupKnockout) |
504 { | 504 { |
505 if (pBitmap == NULL) | 505 if (pBitmap == NULL) |
506 return FALSE; | 506 return FALSE; |
507 SetBitmap(pBitmap); | 507 SetBitmap(pBitmap); |
508 » CFX_SkiaDeviceDriver* pDriver = FX_NEW CFX_SkiaDeviceDriver(pBitmap, dit
her_bits, bRgbByteOrder, pOriDevice, bGroupKnockout); | 508 » CFX_SkiaDeviceDriver* pDriver = new CFX_SkiaDeviceDriver(pBitmap, dither
_bits, bRgbByteOrder, pOriDevice, bGroupKnockout); |
509 SetDeviceDriver(pDriver); | 509 SetDeviceDriver(pDriver); |
510 return TRUE; | 510 return TRUE; |
511 } | 511 } |
512 | 512 |
513 FX_BOOL CFX_SkiaDevice::Create(int width, int height, FXDIB_Format format, int d
ither_bits, CFX_DIBitmap* pOriDevice) | 513 FX_BOOL CFX_SkiaDevice::Create(int width, int height, FXDIB_Format format, int d
ither_bits, CFX_DIBitmap* pOriDevice) |
514 { | 514 { |
515 m_bOwnedBitmap = TRUE; | 515 m_bOwnedBitmap = TRUE; |
516 » CFX_DIBitmap* pBitmap = FX_NEW CFX_DIBitmap; | 516 » CFX_DIBitmap* pBitmap = new CFX_DIBitmap; |
517 if (!pBitmap->Create(width, height, format)) { | 517 if (!pBitmap->Create(width, height, format)) { |
518 delete pBitmap; | 518 delete pBitmap; |
519 return FALSE; | 519 return FALSE; |
520 } | 520 } |
521 SetBitmap(pBitmap); | 521 SetBitmap(pBitmap); |
522 » CFX_SkiaDeviceDriver* pDriver = FX_NEW CFX_SkiaDeviceDriver(pBitmap, di
ther_bits, FALSE, pOriDevice, FALSE); | 522 » CFX_SkiaDeviceDriver* pDriver = new CFX_SkiaDeviceDriver(pBitmap, dithe
r_bits, FALSE, pOriDevice, FALSE); |
523 SetDeviceDriver(pDriver); | 523 SetDeviceDriver(pDriver); |
524 return TRUE; | 524 return TRUE; |
525 } | 525 } |
526 CFX_SkiaDevice::~CFX_SkiaDevice() | 526 CFX_SkiaDevice::~CFX_SkiaDevice() |
527 { | 527 { |
528 if (m_bOwnedBitmap && GetBitmap()) delete GetBitmap(); | 528 if (m_bOwnedBitmap && GetBitmap()) delete GetBitmap(); |
529 } | 529 } |
530 | 530 |
531 #endif | 531 #endif |
OLD | NEW |