15 #include "pnmimage_base.h" 16 #include "streamReader.h" 17 #include "streamWriter.h" 18 #include "config_pnmimage.h" 30 pm_message(
const char *format, ...) {
34 static const size_t buffer_size = 1024;
35 char buffer[buffer_size];
36 #if defined(WIN32_VC) || defined(WIN64_VC) 38 vsprintf(buffer, format, ap);
40 vsnprintf(buffer, buffer_size, format, ap);
42 nassertv(strlen(buffer) < buffer_size);
44 pnmimage_cat.info() << buffer <<
"\n";
56 pm_error(
const char *format, ...) {
60 static const size_t buffer_size = 1024;
61 char buffer[buffer_size];
62 #if defined(WIN32_VC) || defined(WIN64_VC) 64 vsprintf(buffer, format, ap);
66 vsnprintf(buffer, buffer_size, format, ap);
68 nassertv(strlen(buffer) < buffer_size);
70 pnmimage_cat.error() << buffer <<
"\n";
85 pm_maxvaltobits(
int maxval) {
87 while (maxval > pm_bitstomaxval(bits)) {
89 nassertr(bits != 0, 16);
100 pm_bitstomaxval(
int bits) {
101 return ( 1 << bits ) - 1;
109 pm_allocrow(
int cols,
int size) {
110 return (
char *)PANDA_MALLOC_ARRAY(cols * size);
118 pm_freerow(
char *itrow) {
119 PANDA_FREE_ARRAY(itrow);
127 pm_readbigshort(istream *in,
short *sP) {
129 *sP = reader.get_be_int16();
130 return (!in->eof() && !in->fail()) ? 0 : -1;
134 pm_writebigshort(ostream *out,
short s) {
136 writer.add_be_int16(s);
137 return (!out->fail()) ? 0 : -1;
141 pm_readbiglong(istream *in,
long *lP) {
143 *lP = reader.get_be_int32();
144 return (!in->eof() && !in->fail()) ? 0 : -1;
148 pm_writebiglong(ostream *out,
long l) {
150 writer.add_be_int32(l);
151 return (!out->fail()) ? 0 : -1;
155 pm_readlittleshort(istream *in,
short *sP) {
157 *sP = reader.get_int16();
158 return (!in->eof() && !in->fail()) ? 0 : -1;
162 pm_writelittleshort(ostream *out,
short s) {
165 return (!out->fail()) ? 0 : -1;
169 pm_readlittlelong(istream *in,
long *lP) {
171 *lP = reader.get_int32();
172 return (!in->eof() && !in->fail()) ? 0 : -1;
176 pm_writelittlelong(ostream *out,
long l) {
179 return (!out->fail()) ? 0 : -1;
A StreamWriter object is used to write sequential binary data directly to an ostream.
A class to read sequential binary data directly from an istream.