void EXROStream::write(const char c[], int n) { if(position + n > data->get_compressed_allocated()) data->allocate_compressed_data(MAX(position + n, data->get_compressed_allocated() * 2)); memcpy(data->get_data() + position, c, n); position += n; data->set_compressed_size(MAX(position, data->get_compressed_size())); }
static void write_function(png_structp png_ptr, png_bytep data, png_uint_32 length) { VFrame *output = (VFrame*)png_get_io_ptr(png_ptr); if(output->get_compressed_allocated() < output->get_compressed_size() + length) output->allocate_compressed_data((output->get_compressed_allocated() + length) * 2); memcpy(output->get_data() + output->get_compressed_size(), data, length); output->set_compressed_size(output->get_compressed_size() + length); }