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

Side by Side Diff: content/common/dwrite_font_platform_win.cc

Issue 1091093006: Update {virtual,override} to follow C++11 style in content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Back out some webrtc files. Created 5 years, 8 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 | « content/child/websocket_bridge.h ('k') | content/common/font_cache_dispatcher_win.h » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/public/common/dwrite_font_platform_win.h" 5 #include "content/public/common/dwrite_font_platform_win.h"
6 6
7 #include <dwrite.h> 7 #include <dwrite.h>
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 // collection as specified by DirectWrite. We also use this class for storing 146 // collection as specified by DirectWrite. We also use this class for storing
147 // some state information as this is one of the centralized entity. 147 // some state information as this is one of the centralized entity.
148 class FontCollectionLoader 148 class FontCollectionLoader
149 : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>, 149 : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>,
150 IDWriteFontCollectionLoader> { 150 IDWriteFontCollectionLoader> {
151 public: 151 public:
152 FontCollectionLoader() 152 FontCollectionLoader()
153 : in_collection_building_mode_(false), 153 : in_collection_building_mode_(false),
154 create_static_cache_(false) {} 154 create_static_cache_(false) {}
155 155
156 virtual ~FontCollectionLoader(); 156 ~FontCollectionLoader() override;
157 157
158 HRESULT RuntimeClassInitialize() { 158 HRESULT RuntimeClassInitialize() {
159 return S_OK; 159 return S_OK;
160 } 160 }
161 161
162 // IDWriteFontCollectionLoader methods. 162 // IDWriteFontCollectionLoader methods.
163 virtual HRESULT STDMETHODCALLTYPE 163 HRESULT STDMETHODCALLTYPE
164 CreateEnumeratorFromKey( 164 CreateEnumeratorFromKey(IDWriteFactory* factory,
165 IDWriteFactory* factory, 165 void const* key,
166 void const* key, 166 UINT32 key_size,
167 UINT32 key_size, 167 IDWriteFontFileEnumerator** file_enumerator) override;
168 IDWriteFontFileEnumerator** file_enumerator) override;
169 168
170 // Does all the initialization for required loading fonts from registry. 169 // Does all the initialization for required loading fonts from registry.
171 static HRESULT Initialize(IDWriteFactory* factory); 170 static HRESULT Initialize(IDWriteFactory* factory);
172 171
173 // Returns font cache map size. 172 // Returns font cache map size.
174 UINT32 GetFontMapSize(); 173 UINT32 GetFontMapSize();
175 174
176 // Returns font name string when given font index. 175 // Returns font name string when given font index.
177 base::string16 GetFontNameFromKey(UINT32 idx); 176 base::string16 GetFontNameFromKey(UINT32 idx);
178 177
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 485
487 DISALLOW_COPY_AND_ASSIGN(FontCacheWriter); 486 DISALLOW_COPY_AND_ASSIGN(FontCacheWriter);
488 }; 487 };
489 488
490 // Class implements IDWriteFontFileStream interface as required by direct write. 489 // Class implements IDWriteFontFileStream interface as required by direct write.
491 class FontFileStream 490 class FontFileStream
492 : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>, 491 : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>,
493 IDWriteFontFileStream> { 492 IDWriteFontFileStream> {
494 public: 493 public:
495 // IDWriteFontFileStream methods. 494 // IDWriteFontFileStream methods.
496 virtual HRESULT STDMETHODCALLTYPE ReadFileFragment( 495 HRESULT STDMETHODCALLTYPE ReadFileFragment(
497 void const** fragment_start, 496 void const** fragment_start,
498 UINT64 file_offset, 497 UINT64 file_offset,
499 UINT64 fragment_size, 498 UINT64 fragment_size,
500 void** context) override { 499 void** context) override {
501 if (cached_data_) { 500 if (cached_data_) {
502 *fragment_start = g_font_loader->GetCachedFragment(font_key_, 501 *fragment_start = g_font_loader->GetCachedFragment(font_key_,
503 file_offset, 502 file_offset,
504 fragment_size); 503 fragment_size);
505 if (*fragment_start == NULL) { 504 if (*fragment_start == NULL) {
506 DCHECK(false); 505 DCHECK(false);
(...skipping 12 matching lines...) Expand all
519 if (g_font_loader->IsBuildStaticCacheMode()) { 518 if (g_font_loader->IsBuildStaticCacheMode()) {
520 FontCacheWriter* cache_writer = g_font_loader->GetFontCacheWriter(); 519 FontCacheWriter* cache_writer = g_font_loader->GetFontCacheWriter();
521 cache_writer->AddRegion(writer_cookie_, 520 cache_writer->AddRegion(writer_cookie_,
522 file_offset, 521 file_offset,
523 fragment_size, 522 fragment_size,
524 static_cast<const BYTE*>(*fragment_start)); 523 static_cast<const BYTE*>(*fragment_start));
525 } 524 }
526 return S_OK; 525 return S_OK;
527 } 526 }
528 527
529 virtual void STDMETHODCALLTYPE ReleaseFileFragment(void* context) override {} 528 void STDMETHODCALLTYPE ReleaseFileFragment(void* context) override {}
530 529
531 virtual HRESULT STDMETHODCALLTYPE GetFileSize(UINT64* file_size) override { 530 HRESULT STDMETHODCALLTYPE GetFileSize(UINT64* file_size) override {
532 if (cached_data_) { 531 if (cached_data_) {
533 *file_size = g_font_loader->GetCachedFileSize(font_key_); 532 *file_size = g_font_loader->GetCachedFileSize(font_key_);
534 return S_OK; 533 return S_OK;
535 } 534 }
536 535
537 if (!memory_.get() || !memory_->IsValid()) 536 if (!memory_.get() || !memory_->IsValid())
538 return E_FAIL; 537 return E_FAIL;
539 538
540 *file_size = memory_->length(); 539 *file_size = memory_->length();
541 return S_OK; 540 return S_OK;
542 } 541 }
543 542
544 virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime( 543 HRESULT STDMETHODCALLTYPE GetLastWriteTime(UINT64* last_write_time) override {
545 UINT64* last_write_time) override {
546 if (cached_data_) { 544 if (cached_data_) {
547 *last_write_time = 0; 545 *last_write_time = 0;
548 return S_OK; 546 return S_OK;
549 } 547 }
550 548
551 if (!memory_.get() || !memory_->IsValid()) 549 if (!memory_.get() || !memory_->IsValid())
552 return E_FAIL; 550 return E_FAIL;
553 551
554 // According to MSDN article http://goo.gl/rrSYzi the "last modified time" 552 // According to MSDN article http://goo.gl/rrSYzi the "last modified time"
555 // is used by DirectWrite font selection algorithms to determine whether 553 // is used by DirectWrite font selection algorithms to determine whether
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 614
617 DISALLOW_COPY_AND_ASSIGN(FontFileStream); 615 DISALLOW_COPY_AND_ASSIGN(FontFileStream);
618 }; 616 };
619 617
620 // Implements IDWriteFontFileLoader as required by FontFileLoader. 618 // Implements IDWriteFontFileLoader as required by FontFileLoader.
621 class FontFileLoader 619 class FontFileLoader
622 : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>, 620 : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>,
623 IDWriteFontFileLoader> { 621 IDWriteFontFileLoader> {
624 public: 622 public:
625 // IDWriteFontFileLoader methods. 623 // IDWriteFontFileLoader methods.
626 virtual HRESULT STDMETHODCALLTYPE 624 HRESULT STDMETHODCALLTYPE
627 CreateStreamFromKey(void const* ref_key, 625 CreateStreamFromKey(void const* ref_key,
628 UINT32 ref_key_size, 626 UINT32 ref_key_size,
629 IDWriteFontFileStream** stream) override { 627 IDWriteFontFileStream** stream) override {
630 if (ref_key_size != sizeof(UINT32)) 628 if (ref_key_size != sizeof(UINT32))
631 return E_FAIL; 629 return E_FAIL;
632 630
633 UINT32 font_key = *static_cast<const UINT32*>(ref_key); 631 UINT32 font_key = *static_cast<const UINT32*>(ref_key);
634 mswr::ComPtr<FontFileStream> font_stream; 632 mswr::ComPtr<FontFileStream> font_stream;
635 HRESULT hr = mswr::MakeAndInitialize<FontFileStream>(&font_stream, 633 HRESULT hr = mswr::MakeAndInitialize<FontFileStream>(&font_stream,
636 font_key); 634 font_key);
637 if (SUCCEEDED(hr)) { 635 if (SUCCEEDED(hr)) {
638 *stream = font_stream.Detach(); 636 *stream = font_stream.Detach();
639 return S_OK; 637 return S_OK;
640 } 638 }
641 return E_FAIL; 639 return E_FAIL;
642 } 640 }
643 641
644 FontFileLoader() {} 642 FontFileLoader() {}
645 virtual ~FontFileLoader() {} 643 ~FontFileLoader() override {}
646 644
647 private: 645 private:
648 DISALLOW_COPY_AND_ASSIGN(FontFileLoader); 646 DISALLOW_COPY_AND_ASSIGN(FontFileLoader);
649 }; 647 };
650 648
651 // Implements IDWriteFontFileEnumerator as required by direct write. 649 // Implements IDWriteFontFileEnumerator as required by direct write.
652 class FontFileEnumerator 650 class FontFileEnumerator
653 : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>, 651 : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>,
654 IDWriteFontFileEnumerator> { 652 IDWriteFontFileEnumerator> {
655 public: 653 public:
656 // IDWriteFontFileEnumerator methods. 654 // IDWriteFontFileEnumerator methods.
657 virtual HRESULT STDMETHODCALLTYPE MoveNext(BOOL* has_current_file) override { 655 HRESULT STDMETHODCALLTYPE MoveNext(BOOL* has_current_file) override {
658 *has_current_file = FALSE; 656 *has_current_file = FALSE;
659 657
660 if (current_file_) 658 if (current_file_)
661 current_file_.ReleaseAndGetAddressOf(); 659 current_file_.ReleaseAndGetAddressOf();
662 660
663 if (font_idx_ < g_font_loader->GetFontMapSize()) { 661 if (font_idx_ < g_font_loader->GetFontMapSize()) {
664 HRESULT hr = 662 HRESULT hr =
665 factory_->CreateCustomFontFileReference(&font_idx_, 663 factory_->CreateCustomFontFileReference(&font_idx_,
666 sizeof(UINT32), 664 sizeof(UINT32),
667 file_loader_.Get(), 665 file_loader_.Get(),
668 current_file_.GetAddressOf()); 666 current_file_.GetAddressOf());
669 DCHECK(SUCCEEDED(hr)); 667 DCHECK(SUCCEEDED(hr));
670 *has_current_file = TRUE; 668 *has_current_file = TRUE;
671 font_idx_++; 669 font_idx_++;
672 } 670 }
673 return S_OK; 671 return S_OK;
674 } 672 }
675 673
676 virtual HRESULT STDMETHODCALLTYPE 674 HRESULT STDMETHODCALLTYPE
677 GetCurrentFontFile(IDWriteFontFile** font_file) override { 675 GetCurrentFontFile(IDWriteFontFile** font_file) override {
678 if (!current_file_) { 676 if (!current_file_) {
679 *font_file = NULL; 677 *font_file = NULL;
680 return E_FAIL; 678 return E_FAIL;
681 } 679 }
682 680
683 *font_file = current_file_.Detach(); 681 *font_file = current_file_.Detach();
684 return S_OK; 682 return S_OK;
685 } 683 }
686 684
687 FontFileEnumerator(const void* keys, 685 FontFileEnumerator(const void* keys,
688 UINT32 buffer_size, 686 UINT32 buffer_size,
689 IDWriteFactory* factory, 687 IDWriteFactory* factory,
690 IDWriteFontFileLoader* file_loader) 688 IDWriteFontFileLoader* file_loader)
691 : factory_(factory), file_loader_(file_loader), font_idx_(0) {} 689 : factory_(factory), file_loader_(file_loader), font_idx_(0) {}
692 690
693 virtual ~FontFileEnumerator() {} 691 ~FontFileEnumerator() override {}
694 692
695 mswr::ComPtr<IDWriteFactory> factory_; 693 mswr::ComPtr<IDWriteFactory> factory_;
696 mswr::ComPtr<IDWriteFontFile> current_file_; 694 mswr::ComPtr<IDWriteFontFile> current_file_;
697 mswr::ComPtr<IDWriteFontFileLoader> file_loader_; 695 mswr::ComPtr<IDWriteFontFileLoader> file_loader_;
698 UINT32 font_idx_; 696 UINT32 font_idx_;
699 697
700 private: 698 private:
701 DISALLOW_COPY_AND_ASSIGN(FontFileEnumerator); 699 DISALLOW_COPY_AND_ASSIGN(FontFileEnumerator);
702 }; 700 };
703 701
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after
1220 g_shared_font_cache.Set(mapping); 1218 g_shared_font_cache.Set(mapping);
1221 1219
1222 return true; 1220 return true;
1223 } 1221 }
1224 1222
1225 bool BuildFontCache(const base::FilePath& file) { 1223 bool BuildFontCache(const base::FilePath& file) {
1226 return BuildFontCacheInternal(file.value().c_str()); 1224 return BuildFontCacheInternal(file.value().c_str());
1227 } 1225 }
1228 1226
1229 } // namespace content 1227 } // namespace content
OLDNEW
« no previous file with comments | « content/child/websocket_bridge.h ('k') | content/common/font_cache_dispatcher_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698