Changeset View
Changeset View
Standalone View
Standalone View
source/blender/imbuf/intern/openexr/openexr_api.cpp
| Show First 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | |||||
| class IMemStream : public Imf::IStream { | class IMemStream : public Imf::IStream { | ||||
| public: | public: | ||||
| IMemStream(unsigned char *exrbuf, size_t exrsize) | IMemStream(unsigned char *exrbuf, size_t exrsize) | ||||
| : IStream("<memory>"), _exrpos(0), _exrsize(exrsize) | : IStream("<memory>"), _exrpos(0), _exrsize(exrsize) | ||||
| { | { | ||||
| _exrbuf = exrbuf; | _exrbuf = exrbuf; | ||||
| } | } | ||||
| ~IMemStream() override | |||||
| { | |||||
| } | |||||
| bool read(char c[], int n) override | bool read(char c[], int n) override | ||||
| { | { | ||||
| if (n + _exrpos <= _exrsize) { | if (n + _exrpos <= _exrsize) { | ||||
| memcpy(c, (void *)(&_exrbuf[_exrpos]), n); | memcpy(c, (void *)(&_exrbuf[_exrpos]), n); | ||||
| _exrpos += n; | _exrpos += n; | ||||
| return true; | return true; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 1,980 Lines • Show Last 20 Lines | |||||