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

Side by Side Diff: printing/pdf_metafile_cg_mac.cc

Issue 1343593002: Cleanup code in printing/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months 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 | « printing/pdf_metafile_cg_mac.h ('k') | printing/pdf_metafile_cg_mac_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium 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 "printing/pdf_metafile_cg_mac.h" 5 #include "printing/pdf_metafile_cg_mac.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 case 3: 63 case 3:
64 // After rotating by 270 degrees with the axis at the origin, the page 64 // After rotating by 270 degrees with the axis at the origin, the page
65 // content is now "off screen". Shift it right to move it back on screen. 65 // content is now "off screen". Shift it right to move it back on screen.
66 CGContextTranslateCTM(context, 0, rect.size.height); 66 CGContextTranslateCTM(context, 0, rect.size.height);
67 // Rotates counter-clockwise by 90 degrees. 67 // Rotates counter-clockwise by 90 degrees.
68 CGContextRotateCTM(context, -M_PI_2); 68 CGContextRotateCTM(context, -M_PI_2);
69 break; 69 break;
70 default: 70 default:
71 NOTREACHED(); 71 NOTREACHED();
72 break; 72 break;
73 }; 73 }
74 } 74 }
75 75
76 } // namespace 76 } // namespace
77 77
78 namespace printing { 78 namespace printing {
79 79
80 PdfMetafileCg::PdfMetafileCg() 80 PdfMetafileCg::PdfMetafileCg()
81 : page_is_open_(false), 81 : page_is_open_(false),
82 thread_pdf_docs_owned_(false) { 82 thread_pdf_docs_owned_(false) {
83 if (!thread_pdf_docs.Pointer()->Get() && 83 if (!thread_pdf_docs.Pointer()->Get() &&
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 context_.reset(CGPDFContextCreate(pdf_consumer, NULL, NULL)); 121 context_.reset(CGPDFContextCreate(pdf_consumer, NULL, NULL));
122 if (!context_.get()) { 122 if (!context_.get()) {
123 LOG(ERROR) << "Failed to create pdf context for metafile"; 123 LOG(ERROR) << "Failed to create pdf context for metafile";
124 pdf_data_.reset(NULL); 124 pdf_data_.reset(NULL);
125 } 125 }
126 126
127 return true; 127 return true;
128 } 128 }
129 129
130 bool PdfMetafileCg::InitFromData(const void* src_buffer, 130 bool PdfMetafileCg::InitFromData(const void* src_buffer,
131 uint32 src_buffer_size) { 131 uint32_t src_buffer_size) {
132 DCHECK(!context_.get()); 132 DCHECK(!context_.get());
133 DCHECK(!pdf_data_.get()); 133 DCHECK(!pdf_data_.get());
134 134
135 if (!src_buffer || src_buffer_size == 0) { 135 if (!src_buffer || src_buffer_size == 0) {
136 return false; 136 return false;
137 } 137 }
138 138
139 pdf_data_.reset(CFDataCreateMutable(kCFAllocatorDefault, src_buffer_size)); 139 pdf_data_.reset(CFDataCreateMutable(kCFAllocatorDefault, src_buffer_size));
140 CFDataAppendBytes(pdf_data_, static_cast<const UInt8*>(src_buffer), 140 CFDataAppendBytes(pdf_data_, static_cast<const UInt8*>(src_buffer),
141 src_buffer_size); 141 src_buffer_size);
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 } 288 }
289 if (page_number > GetPageCount()) { 289 if (page_number > GetPageCount()) {
290 LOG(ERROR) << "Invalid page number: " << page_number; 290 LOG(ERROR) << "Invalid page number: " << page_number;
291 return gfx::Rect(); 291 return gfx::Rect();
292 } 292 }
293 CGPDFPageRef pdf_page = CGPDFDocumentGetPage(pdf_doc, page_number); 293 CGPDFPageRef pdf_page = CGPDFDocumentGetPage(pdf_doc, page_number);
294 CGRect page_rect = CGPDFPageGetBoxRect(pdf_page, kCGPDFMediaBox); 294 CGRect page_rect = CGPDFPageGetBoxRect(pdf_page, kCGPDFMediaBox);
295 return gfx::Rect(page_rect); 295 return gfx::Rect(page_rect);
296 } 296 }
297 297
298 uint32 PdfMetafileCg::GetDataSize() const { 298 uint32_t PdfMetafileCg::GetDataSize() const {
299 // PDF data is only valid/complete once the context is released. 299 // PDF data is only valid/complete once the context is released.
300 DCHECK(!context_); 300 DCHECK(!context_);
301 301
302 if (!pdf_data_) 302 if (!pdf_data_)
303 return 0; 303 return 0;
304 return static_cast<uint32>(CFDataGetLength(pdf_data_)); 304 return static_cast<uint32_t>(CFDataGetLength(pdf_data_));
305 } 305 }
306 306
307 bool PdfMetafileCg::GetData(void* dst_buffer, uint32 dst_buffer_size) const { 307 bool PdfMetafileCg::GetData(void* dst_buffer, uint32_t dst_buffer_size) const {
308 // PDF data is only valid/complete once the context is released. 308 // PDF data is only valid/complete once the context is released.
309 DCHECK(!context_); 309 DCHECK(!context_);
310 DCHECK(pdf_data_); 310 DCHECK(pdf_data_);
311 DCHECK(dst_buffer); 311 DCHECK(dst_buffer);
312 DCHECK_GT(dst_buffer_size, 0U); 312 DCHECK_GT(dst_buffer_size, 0U);
313 313
314 uint32 data_size = GetDataSize(); 314 uint32_t data_size = GetDataSize();
315 if (dst_buffer_size > data_size) { 315 if (dst_buffer_size > data_size) {
316 return false; 316 return false;
317 } 317 }
318 318
319 CFDataGetBytes(pdf_data_, CFRangeMake(0, dst_buffer_size), 319 CFDataGetBytes(pdf_data_, CFRangeMake(0, dst_buffer_size),
320 static_cast<UInt8*>(dst_buffer)); 320 static_cast<UInt8*>(dst_buffer));
321 return true; 321 return true;
322 } 322 }
323 323
324 CGContextRef PdfMetafileCg::context() const { 324 CGContextRef PdfMetafileCg::context() const {
325 return context_.get(); 325 return context_.get();
326 } 326 }
327 327
328 CGPDFDocumentRef PdfMetafileCg::GetPDFDocument() const { 328 CGPDFDocumentRef PdfMetafileCg::GetPDFDocument() const {
329 // Make sure that we have data, and that it's not being modified any more. 329 // Make sure that we have data, and that it's not being modified any more.
330 DCHECK(pdf_data_.get()); 330 DCHECK(pdf_data_.get());
331 DCHECK(!context_.get()); 331 DCHECK(!context_.get());
332 332
333 if (!pdf_doc_.get()) { 333 if (!pdf_doc_.get()) {
334 ScopedCFTypeRef<CGDataProviderRef> pdf_data_provider( 334 ScopedCFTypeRef<CGDataProviderRef> pdf_data_provider(
335 CGDataProviderCreateWithCFData(pdf_data_)); 335 CGDataProviderCreateWithCFData(pdf_data_));
336 pdf_doc_.reset(CGPDFDocumentCreateWithProvider(pdf_data_provider)); 336 pdf_doc_.reset(CGPDFDocumentCreateWithProvider(pdf_data_provider));
337 } 337 }
338 return pdf_doc_.get(); 338 return pdf_doc_.get();
339 } 339 }
340 340
341 } // namespace printing 341 } // namespace printing
OLDNEW
« no previous file with comments | « printing/pdf_metafile_cg_mac.h ('k') | printing/pdf_metafile_cg_mac_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698