You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.8 KiB
64 lines
1.8 KiB
2 years ago
|
/*=========================================================================
|
||
|
|
||
|
Program: Visualization Toolkit
|
||
|
Module: $RCSfile: TestCompress.cxx,v $
|
||
|
|
||
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||
|
All rights reserved.
|
||
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
||
|
|
||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||
|
PURPOSE. See the above copyright notice for more information.
|
||
|
|
||
|
=========================================================================*/
|
||
|
// .NAME Test of vtkZLibDataCompressor
|
||
|
// .SECTION Description
|
||
|
//
|
||
|
|
||
|
#include "vtkZLibDataCompressor.h"
|
||
|
#include "vtkOutputWindow.h"
|
||
|
#include "vtkObjectFactory.h"
|
||
|
|
||
|
|
||
|
int TestCompress(int argc, char *argv[])
|
||
|
{
|
||
|
int res = 1;
|
||
|
const unsigned int start_size = 100024;
|
||
|
unsigned int cc;
|
||
|
unsigned char buffer[start_size];
|
||
|
unsigned char* cbuffer;
|
||
|
unsigned char* ucbuffer;
|
||
|
unsigned long nlen;
|
||
|
unsigned long rlen;
|
||
|
|
||
|
vtkZLibDataCompressor* compressor = vtkZLibDataCompressor::New();
|
||
|
for ( cc = 0; cc < start_size; cc ++ )
|
||
|
{
|
||
|
buffer[cc] = cc % sizeof(unsigned char);
|
||
|
}
|
||
|
buffer[0] = 'v';
|
||
|
buffer[1] = 't';
|
||
|
buffer[2] = 'k';
|
||
|
|
||
|
nlen = compressor->GetMaximumCompressionSpace(start_size);
|
||
|
cbuffer = new unsigned char[ nlen ];
|
||
|
rlen = compressor->Compress(buffer, start_size, cbuffer, nlen);
|
||
|
if ( rlen > 0 )
|
||
|
{
|
||
|
ucbuffer = new unsigned char[ start_size ];
|
||
|
rlen = compressor->Uncompress(cbuffer, rlen, ucbuffer, start_size);
|
||
|
if ( rlen == start_size )
|
||
|
{
|
||
|
cout << argv[0] << " Works " << argc << endl;
|
||
|
cout << ucbuffer[0] << ucbuffer[1] << ucbuffer[2] << endl;
|
||
|
res = 0;
|
||
|
}
|
||
|
delete [] ucbuffer;
|
||
|
}
|
||
|
delete [] cbuffer;
|
||
|
|
||
|
compressor->Delete();
|
||
|
return res;
|
||
|
}
|