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 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "../../../include/fxge/fx_ge.h" | 7 #include "../../../include/fxge/fx_ge.h" |
8 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_DESKTOP_ | 8 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_DESKTOP_ |
9 #include "../../../include/fxge/fx_ge_win32.h" | 9 #include "../../../include/fxge/fx_ge_win32.h" |
10 #include "dwrite_int.h" | 10 #include "dwrite_int.h" |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 refCount_ = 0; | 279 refCount_ = 0; |
280 resourcePtr_ = fontFileReferenceKey; | 280 resourcePtr_ = fontFileReferenceKey; |
281 resourceSize_ = fontFileReferenceKeySize; | 281 resourceSize_ = fontFileReferenceKeySize; |
282 } | 282 } |
283 HRESULT STDMETHODCALLTYPE CDwFontFileStream::QueryInterface(REFIID iid, void** p
pvObject) | 283 HRESULT STDMETHODCALLTYPE CDwFontFileStream::QueryInterface(REFIID iid, void** p
pvObject) |
284 { | 284 { |
285 if (iid == IID_IUnknown || iid == __uuidof(IDWriteFontFileStream)) { | 285 if (iid == IID_IUnknown || iid == __uuidof(IDWriteFontFileStream)) { |
286 *ppvObject = this; | 286 *ppvObject = this; |
287 AddRef(); | 287 AddRef(); |
288 return S_OK; | 288 return S_OK; |
289 } else { | |
290 *ppvObject = NULL; | |
291 return E_NOINTERFACE; | |
292 } | 289 } |
| 290 *ppvObject = NULL; |
| 291 return E_NOINTERFACE; |
293 } | 292 } |
294 ULONG STDMETHODCALLTYPE CDwFontFileStream::AddRef() | 293 ULONG STDMETHODCALLTYPE CDwFontFileStream::AddRef() |
295 { | 294 { |
296 return InterlockedIncrement((long*)(&refCount_)); | 295 return InterlockedIncrement((long*)(&refCount_)); |
297 } | 296 } |
298 ULONG STDMETHODCALLTYPE CDwFontFileStream::Release() | 297 ULONG STDMETHODCALLTYPE CDwFontFileStream::Release() |
299 { | 298 { |
300 ULONG newCount = InterlockedDecrement((long*)(&refCount_)); | 299 ULONG newCount = InterlockedDecrement((long*)(&refCount_)); |
301 if (newCount == 0) { | 300 if (newCount == 0) { |
302 delete this; | 301 delete this; |
303 } | 302 } |
304 return newCount; | 303 return newCount; |
305 } | 304 } |
306 HRESULT STDMETHODCALLTYPE CDwFontFileStream::ReadFileFragment( | 305 HRESULT STDMETHODCALLTYPE CDwFontFileStream::ReadFileFragment( |
307 void const** fragmentStart, | 306 void const** fragmentStart, |
308 UINT64 fileOffset, | 307 UINT64 fileOffset, |
309 UINT64 fragmentSize, | 308 UINT64 fragmentSize, |
310 OUT void** fragmentContext | 309 OUT void** fragmentContext |
311 ) | 310 ) |
312 { | 311 { |
313 if (fileOffset <= resourceSize_ && | 312 if (fileOffset <= resourceSize_ && fragmentSize <= resourceSize_ - fileOffse
t) { |
314 fragmentSize <= resourceSize_ - fileOffset) { | |
315 *fragmentStart = static_cast<uint8_t const*>(resourcePtr_) + static_cast
<size_t>(fileOffset); | 313 *fragmentStart = static_cast<uint8_t const*>(resourcePtr_) + static_cast
<size_t>(fileOffset); |
316 *fragmentContext = NULL; | 314 *fragmentContext = NULL; |
317 return S_OK; | 315 return S_OK; |
318 } else { | |
319 *fragmentStart = NULL; | |
320 *fragmentContext = NULL; | |
321 return E_FAIL; | |
322 } | 316 } |
| 317 *fragmentStart = NULL; |
| 318 *fragmentContext = NULL; |
| 319 return E_FAIL; |
323 } | 320 } |
324 void STDMETHODCALLTYPE CDwFontFileStream::ReleaseFileFragment(void* fragmentCont
ext) | 321 void STDMETHODCALLTYPE CDwFontFileStream::ReleaseFileFragment(void* fragmentCont
ext) |
325 { | 322 { |
326 } | 323 } |
327 HRESULT STDMETHODCALLTYPE CDwFontFileStream::GetFileSize(OUT UINT64* fileSize) | 324 HRESULT STDMETHODCALLTYPE CDwFontFileStream::GetFileSize(OUT UINT64* fileSize) |
328 { | 325 { |
329 *fileSize = resourceSize_; | 326 *fileSize = resourceSize_; |
330 return S_OK; | 327 return S_OK; |
331 } | 328 } |
332 HRESULT STDMETHODCALLTYPE CDwFontFileStream::GetLastWriteTime(OUT UINT64* lastWr
iteTime) | 329 HRESULT STDMETHODCALLTYPE CDwFontFileStream::GetLastWriteTime(OUT UINT64* lastWr
iteTime) |
333 { | 330 { |
334 *lastWriteTime = 0; | 331 *lastWriteTime = 0; |
335 return E_NOTIMPL; | 332 return E_NOTIMPL; |
336 } | 333 } |
337 IDWriteFontFileLoader* CDwFontFileLoader::instance_ = NULL; | 334 IDWriteFontFileLoader* CDwFontFileLoader::instance_ = NULL; |
338 CDwFontFileLoader::CDwFontFileLoader() : | 335 CDwFontFileLoader::CDwFontFileLoader() : |
339 refCount_(0) | 336 refCount_(0) |
340 { | 337 { |
341 } | 338 } |
342 HRESULT STDMETHODCALLTYPE CDwFontFileLoader::QueryInterface(REFIID iid, void** p
pvObject) | 339 HRESULT STDMETHODCALLTYPE CDwFontFileLoader::QueryInterface(REFIID iid, void** p
pvObject) |
343 { | 340 { |
344 if (iid == IID_IUnknown || iid == __uuidof(IDWriteFontFileLoader)) { | 341 if (iid == IID_IUnknown || iid == __uuidof(IDWriteFontFileLoader)) { |
345 *ppvObject = this; | 342 *ppvObject = this; |
346 AddRef(); | 343 AddRef(); |
347 return S_OK; | 344 return S_OK; |
348 } else { | |
349 *ppvObject = NULL; | |
350 return E_NOINTERFACE; | |
351 } | 345 } |
| 346 *ppvObject = NULL; |
| 347 return E_NOINTERFACE; |
352 } | 348 } |
353 ULONG STDMETHODCALLTYPE CDwFontFileLoader::AddRef() | 349 ULONG STDMETHODCALLTYPE CDwFontFileLoader::AddRef() |
354 { | 350 { |
355 return InterlockedIncrement((long*)(&refCount_)); | 351 return InterlockedIncrement((long*)(&refCount_)); |
356 } | 352 } |
357 ULONG STDMETHODCALLTYPE CDwFontFileLoader::Release() | 353 ULONG STDMETHODCALLTYPE CDwFontFileLoader::Release() |
358 { | 354 { |
359 ULONG newCount = InterlockedDecrement((long*)(&refCount_)); | 355 ULONG newCount = InterlockedDecrement((long*)(&refCount_)); |
360 if (newCount == 0) { | 356 if (newCount == 0) { |
361 instance_ = NULL; | 357 instance_ = NULL; |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 text_bbox.Height(), | 465 text_bbox.Height(), |
470 &dib, | 466 &dib, |
471 text_bbox.left, | 467 text_bbox.left, |
472 text_bbox.top, | 468 text_bbox.top, |
473 FXDIB_BLEND_NORMAL, | 469 FXDIB_BLEND_NORMAL, |
474 pClipRgn | 470 pClipRgn |
475 ); | 471 ); |
476 return hr; | 472 return hr; |
477 } | 473 } |
478 #endif | 474 #endif |
OLD | NEW |