Changeset 10076 for OpenSceneGraph/trunk/src/osgPlugins/3ds/background.cpp
- Timestamp:
- 04/22/09 17:46:24 (4 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/src/osgPlugins/3ds/background.cpp
r1563 r10076 36 36 37 37 static Lib3dsBool 38 solid_bgnd_read(Lib3dsBackground *background, FILE *f)38 solid_bgnd_read(Lib3dsBackground *background, iostream *strm) 39 39 { 40 40 Lib3dsChunk c; 41 41 Lib3dsWord chunk; 42 42 43 if (!lib3ds_chunk_read_start(&c, LIB3DS_SOLID_BGND, f)) {43 if (!lib3ds_chunk_read_start(&c, LIB3DS_SOLID_BGND, strm)) { 44 44 return(LIB3DS_FALSE); 45 45 } 46 46 47 while ((chunk=lib3ds_chunk_read_next(&c, f))!=0) {47 while ((chunk=lib3ds_chunk_read_next(&c, strm))!=0) { 48 48 switch (chunk) { 49 49 case LIB3DS_LIN_COLOR_F: 50 lib3ds_rgb_read(background->solid.col, f);50 lib3ds_rgb_read(background->solid.col, strm); 51 51 break; 52 52 case LIB3DS_COLOR_F: 53 lib3ds_rgb_read(background->solid.col, f);53 lib3ds_rgb_read(background->solid.col, strm); 54 54 break; 55 55 default: … … 58 58 } 59 59 60 lib3ds_chunk_read_end(&c, f);61 return(LIB3DS_TRUE); 62 } 63 64 65 static Lib3dsBool 66 v_gradient_read(Lib3dsBackground *background, FILE *f)60 lib3ds_chunk_read_end(&c, strm); 61 return(LIB3DS_TRUE); 62 } 63 64 65 static Lib3dsBool 66 v_gradient_read(Lib3dsBackground *background, iostream *strm) 67 67 { 68 68 Lib3dsChunk c; … … 73 73 74 74 75 if (!lib3ds_chunk_read_start(&c, LIB3DS_V_GRADIENT, f)) {75 if (!lib3ds_chunk_read_start(&c, LIB3DS_V_GRADIENT, strm)) { 76 76 return(LIB3DS_FALSE); 77 77 } 78 background->gradient.percent=lib3ds_float_read( f);79 lib3ds_chunk_read_tell(&c, f);78 background->gradient.percent=lib3ds_float_read(strm); 79 lib3ds_chunk_read_tell(&c, strm); 80 80 81 81 index[0]=index[1]=0; 82 while ((chunk=lib3ds_chunk_read_next(&c, f))!=0) {82 while ((chunk=lib3ds_chunk_read_next(&c, strm))!=0) { 83 83 switch (chunk) { 84 84 case LIB3DS_COLOR_F: 85 lib3ds_rgb_read(col[0][index[0]], f);85 lib3ds_rgb_read(col[0][index[0]],strm); 86 86 index[0]++; 87 87 break; 88 88 case LIB3DS_LIN_COLOR_F: 89 lib3ds_rgb_read(col[1][index[1]], f);89 lib3ds_rgb_read(col[1][index[1]],strm); 90 90 index[1]++; 91 91 have_lin=1; … … 103 103 } 104 104 } 105 lib3ds_chunk_read_end(&c, f);105 lib3ds_chunk_read_end(&c, strm); 106 106 return(LIB3DS_TRUE); 107 107 } … … 112 112 */ 113 113 Lib3dsBool 114 lib3ds_background_read(Lib3dsBackground *background, FILE *f)115 { 116 Lib3dsChunk c; 117 118 if (!lib3ds_chunk_read(&c, f)) {114 lib3ds_background_read(Lib3dsBackground *background, iostream *strm) 115 { 116 Lib3dsChunk c; 117 118 if (!lib3ds_chunk_read(&c, strm)) { 119 119 return(LIB3DS_FALSE); 120 120 } … … 123 123 case LIB3DS_BIT_MAP: 124 124 { 125 if (!lib3ds_string_read(background->bitmap.name, 64, f)) {125 if (!lib3ds_string_read(background->bitmap.name, 64, strm)) { 126 126 return(LIB3DS_FALSE); 127 127 } … … 130 130 case LIB3DS_SOLID_BGND: 131 131 { 132 lib3ds_chunk_read_reset(&c, f);133 if (!solid_bgnd_read(background, f)) {132 lib3ds_chunk_read_reset(&c, strm); 133 if (!solid_bgnd_read(background, strm)) { 134 134 return(LIB3DS_FALSE); 135 135 } … … 138 138 case LIB3DS_V_GRADIENT: 139 139 { 140 lib3ds_chunk_read_reset(&c, f);141 if (!v_gradient_read(background, f)) {140 lib3ds_chunk_read_reset(&c, strm); 141 if (!v_gradient_read(background, strm)) { 142 142 return(LIB3DS_FALSE); 143 143 } … … 166 166 167 167 static Lib3dsBool 168 colorf_write(Lib3dsRgba rgb, FILE *f)168 colorf_write(Lib3dsRgba rgb, iostream *strm) 169 169 { 170 170 Lib3dsChunk c; … … 172 172 c.chunk=LIB3DS_COLOR_F; 173 173 c.size=18; 174 lib3ds_chunk_write(&c, f);175 lib3ds_rgb_write(rgb, f);174 lib3ds_chunk_write(&c,strm); 175 lib3ds_rgb_write(rgb,strm); 176 176 177 177 c.chunk=LIB3DS_LIN_COLOR_F; 178 178 c.size=18; 179 lib3ds_chunk_write(&c, f);180 lib3ds_rgb_write(rgb, f);179 lib3ds_chunk_write(&c,strm); 180 lib3ds_rgb_write(rgb,strm); 181 181 return(LIB3DS_TRUE); 182 182 } … … 200 200 */ 201 201 Lib3dsBool 202 lib3ds_background_write(Lib3dsBackground *background, FILE *f)202 lib3ds_background_write(Lib3dsBackground *background, iostream *strm) 203 203 { 204 204 if (strlen(background->bitmap.name)) { /*---- LIB3DS_BIT_MAP ----*/ … … 206 206 c.chunk=LIB3DS_BIT_MAP; 207 207 c.size=6+1+strlen(background->bitmap.name); 208 lib3ds_chunk_write(&c, f);209 lib3ds_string_write(background->bitmap.name, f);208 lib3ds_chunk_write(&c,strm); 209 lib3ds_string_write(background->bitmap.name, strm); 210 210 } 211 211 … … 214 214 c.chunk=LIB3DS_SOLID_BGND; 215 215 c.size=42; 216 lib3ds_chunk_write(&c, f);217 colorf_write(background->solid.col, f);216 lib3ds_chunk_write(&c,strm); 217 colorf_write(background->solid.col,strm); 218 218 } 219 219 … … 224 224 c.chunk=LIB3DS_V_GRADIENT; 225 225 c.size=118; 226 lib3ds_chunk_write(&c, f);227 lib3ds_float_write(background->gradient.percent, f);228 colorf_write(background->gradient.top, f);229 colorf_write(background->gradient.middle, f);230 colorf_write(background->gradient.bottom, f);226 lib3ds_chunk_write(&c,strm); 227 lib3ds_float_write(background->gradient.percent,strm); 228 colorf_write(background->gradient.top,strm); 229 colorf_write(background->gradient.middle,strm); 230 colorf_write(background->gradient.bottom,strm); 231 231 } 232 232 … … 235 235 c.chunk=LIB3DS_USE_BIT_MAP; 236 236 c.size=6; 237 lib3ds_chunk_write(&c, f);237 lib3ds_chunk_write(&c,strm); 238 238 } 239 239 … … 242 242 c.chunk=LIB3DS_USE_SOLID_BGND; 243 243 c.size=6; 244 lib3ds_chunk_write(&c, f);244 lib3ds_chunk_write(&c,strm); 245 245 } 246 246 … … 249 249 c.chunk=LIB3DS_USE_V_GRADIENT; 250 250 c.size=6; 251 lib3ds_chunk_write(&c, f);251 lib3ds_chunk_write(&c,strm); 252 252 } 253 253
