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 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 refCount_ = 0; | 275 refCount_ = 0; |
276 resourcePtr_ = fontFileReferenceKey; | 276 resourcePtr_ = fontFileReferenceKey; |
277 resourceSize_ = fontFileReferenceKeySize; | 277 resourceSize_ = fontFileReferenceKeySize; |
278 } | 278 } |
279 HRESULT STDMETHODCALLTYPE CDwFontFileStream::QueryInterface(REFIID iid, void** p
pvObject) | 279 HRESULT STDMETHODCALLTYPE CDwFontFileStream::QueryInterface(REFIID iid, void** p
pvObject) |
280 { | 280 { |
281 if (iid == IID_IUnknown || iid == __uuidof(IDWriteFontFileStream)) { | 281 if (iid == IID_IUnknown || iid == __uuidof(IDWriteFontFileStream)) { |
282 *ppvObject = this; | 282 *ppvObject = this; |
283 AddRef(); | 283 AddRef(); |
284 return S_OK; | 284 return S_OK; |
285 } else { | |
286 *ppvObject = NULL; | |
287 return E_NOINTERFACE; | |
288 } | 285 } |
| 286 *ppvObject = NULL; |
| 287 return E_NOINTERFACE; |
289 } | 288 } |
290 ULONG STDMETHODCALLTYPE CDwFontFileStream::AddRef() | 289 ULONG STDMETHODCALLTYPE CDwFontFileStream::AddRef() |
291 { | 290 { |
292 return InterlockedIncrement((long*)(&refCount_)); | 291 return InterlockedIncrement((long*)(&refCount_)); |
293 } | 292 } |
294 ULONG STDMETHODCALLTYPE CDwFontFileStream::Release() | 293 ULONG STDMETHODCALLTYPE CDwFontFileStream::Release() |
295 { | 294 { |
296 ULONG newCount = InterlockedDecrement((long*)(&refCount_)); | 295 ULONG newCount = InterlockedDecrement((long*)(&refCount_)); |
297 if (newCount == 0) { | 296 if (newCount == 0) { |
298 delete this; | 297 delete this; |
299 } | 298 } |
300 return newCount; | 299 return newCount; |
301 } | 300 } |
302 HRESULT STDMETHODCALLTYPE CDwFontFileStream::ReadFileFragment( | 301 HRESULT STDMETHODCALLTYPE CDwFontFileStream::ReadFileFragment( |
303 void const** fragmentStart, | 302 void const** fragmentStart, |
304 UINT64 fileOffset, | 303 UINT64 fileOffset, |
305 UINT64 fragmentSize, | 304 UINT64 fragmentSize, |
306 OUT void** fragmentContext | 305 OUT void** fragmentContext |
307 ) | 306 ) |
308 { | 307 { |
309 if (fileOffset <= resourceSize_ && | 308 if (fileOffset <= resourceSize_ && fragmentSize <= resourceSize_ - fileOffse
t) { |
310 fragmentSize <= resourceSize_ - fileOffset) { | |
311 *fragmentStart = static_cast<uint8_t const*>(resourcePtr_) + static_cast
<size_t>(fileOffset); | 309 *fragmentStart = static_cast<uint8_t const*>(resourcePtr_) + static_cast
<size_t>(fileOffset); |
312 *fragmentContext = NULL; | 310 *fragmentContext = NULL; |
313 return S_OK; | 311 return S_OK; |
314 } else { | |
315 *fragmentStart = NULL; | |
316 *fragmentContext = NULL; | |
317 return E_FAIL; | |
318 } | 312 } |
| 313 *fragmentStart = NULL; |
| 314 *fragmentContext = NULL; |
| 315 return E_FAIL; |
319 } | 316 } |
320 void STDMETHODCALLTYPE CDwFontFileStream::ReleaseFileFragment(void* fragmentCont
ext) | 317 void STDMETHODCALLTYPE CDwFontFileStream::ReleaseFileFragment(void* fragmentCont
ext) |
321 { | 318 { |
322 } | 319 } |
323 HRESULT STDMETHODCALLTYPE CDwFontFileStream::GetFileSize(OUT UINT64* fileSize) | 320 HRESULT STDMETHODCALLTYPE CDwFontFileStream::GetFileSize(OUT UINT64* fileSize) |
324 { | 321 { |
325 *fileSize = resourceSize_; | 322 *fileSize = resourceSize_; |
326 return S_OK; | 323 return S_OK; |
327 } | 324 } |
328 HRESULT STDMETHODCALLTYPE CDwFontFileStream::GetLastWriteTime(OUT UINT64* lastWr
iteTime) | 325 HRESULT STDMETHODCALLTYPE CDwFontFileStream::GetLastWriteTime(OUT UINT64* lastWr
iteTime) |
329 { | 326 { |
330 *lastWriteTime = 0; | 327 *lastWriteTime = 0; |
331 return E_NOTIMPL; | 328 return E_NOTIMPL; |
332 } | 329 } |
333 IDWriteFontFileLoader* CDwFontFileLoader::instance_ = NULL; | 330 IDWriteFontFileLoader* CDwFontFileLoader::instance_ = NULL; |
334 CDwFontFileLoader::CDwFontFileLoader() : | 331 CDwFontFileLoader::CDwFontFileLoader() : |
335 refCount_(0) | 332 refCount_(0) |
336 { | 333 { |
337 } | 334 } |
338 HRESULT STDMETHODCALLTYPE CDwFontFileLoader::QueryInterface(REFIID iid, void** p
pvObject) | 335 HRESULT STDMETHODCALLTYPE CDwFontFileLoader::QueryInterface(REFIID iid, void** p
pvObject) |
339 { | 336 { |
340 if (iid == IID_IUnknown || iid == __uuidof(IDWriteFontFileLoader)) { | 337 if (iid == IID_IUnknown || iid == __uuidof(IDWriteFontFileLoader)) { |
341 *ppvObject = this; | 338 *ppvObject = this; |
342 AddRef(); | 339 AddRef(); |
343 return S_OK; | 340 return S_OK; |
344 } else { | |
345 *ppvObject = NULL; | |
346 return E_NOINTERFACE; | |
347 } | 341 } |
| 342 *ppvObject = NULL; |
| 343 return E_NOINTERFACE; |
348 } | 344 } |
349 ULONG STDMETHODCALLTYPE CDwFontFileLoader::AddRef() | 345 ULONG STDMETHODCALLTYPE CDwFontFileLoader::AddRef() |
350 { | 346 { |
351 return InterlockedIncrement((long*)(&refCount_)); | 347 return InterlockedIncrement((long*)(&refCount_)); |
352 } | 348 } |
353 ULONG STDMETHODCALLTYPE CDwFontFileLoader::Release() | 349 ULONG STDMETHODCALLTYPE CDwFontFileLoader::Release() |
354 { | 350 { |
355 ULONG newCount = InterlockedDecrement((long*)(&refCount_)); | 351 ULONG newCount = InterlockedDecrement((long*)(&refCount_)); |
356 if (newCount == 0) { | 352 if (newCount == 0) { |
357 instance_ = NULL; | 353 instance_ = NULL; |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 text_bbox.Height(), | 458 text_bbox.Height(), |
463 &dib, | 459 &dib, |
464 text_bbox.left, | 460 text_bbox.left, |
465 text_bbox.top, | 461 text_bbox.top, |
466 FXDIB_BLEND_NORMAL, | 462 FXDIB_BLEND_NORMAL, |
467 pClipRgn | 463 pClipRgn |
468 ); | 464 ); |
469 return hr; | 465 return hr; |
470 } | 466 } |
471 #endif | 467 #endif |
OLD | NEW |