| 516 | uint sizeLeft; |
| 517 | |
| 518 | static cairo_status_t read(void* const closure, uchar* const data, const uint length) noexcept |
| 519 | { |
| 520 | PngReaderData& readerData = *reinterpret_cast<PngReaderData*>(closure); |
| 521 | |
| 522 | if (readerData.sizeLeft < length) |
| 523 | return CAIRO_STATUS_READ_ERROR; |
| 524 | |
| 525 | std::memcpy(data, readerData.dataPtr, length); |
| 526 | readerData.dataPtr += length; |
| 527 | readerData.sizeLeft -= length; |
| 528 | return CAIRO_STATUS_SUCCESS; |
| 529 | } |
| 530 | }; |
| 531 | |
| 532 | PngReaderData readerData; |