(int x, int y, int w, int h, int cols, int rows, byte[] data)
| 306 | ============= |
| 307 | */ |
| 308 | public void Draw_StretchRaw (int x, int y, int w, int h, int cols, int rows, byte[] data) |
| 309 | { |
| 310 | int i, j, trows; |
| 311 | int sourceIndex; |
| 312 | int frac, fracstep; |
| 313 | float hscale; |
| 314 | int row; |
| 315 | float t; |
| 316 | |
| 317 | GL_Bind(0); |
| 318 | |
| 319 | if (rows<=256) |
| 320 | { |
| 321 | hscale = 1; |
| 322 | trows = rows; |
| 323 | } |
| 324 | else |
| 325 | { |
| 326 | hscale = rows/256.0f; |
| 327 | trows = 256; |
| 328 | } |
| 329 | t = rows*hscale / 256; |
| 330 | |
| 331 | if ( !qglColorTableEXT ) |
| 332 | { |
| 333 | //int[] image32 = new int[256*256]; |
| 334 | image32.clear(); |
| 335 | int destIndex = 0; |
| 336 | |
| 337 | for (i=0 ; i<trows ; i++) |
| 338 | { |
| 339 | row = (int)(i*hscale); |
| 340 | if (row > rows) |
| 341 | break; |
| 342 | sourceIndex = cols*row; |
| 343 | destIndex = i*256; |
| 344 | fracstep = cols*0x10000/256; |
| 345 | frac = fracstep >> 1; |
| 346 | for (j=0 ; j<256 ; j++) |
| 347 | { |
| 348 | image32.put(destIndex + j, r_rawpalette[data[sourceIndex + (frac>>16)] & 0xff]); |
| 349 | frac += fracstep; |
| 350 | } |
| 351 | } |
| 352 | gl.glTexImage2D (GL_TEXTURE_2D, 0, gl_tex_solid_format, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, image32); |
| 353 | } |
| 354 | else |
| 355 | { |
| 356 | //byte[] image8 = new byte[256*256]; |
| 357 | image8.clear(); |
| 358 | int destIndex = 0;; |
| 359 | |
| 360 | for (i=0 ; i<trows ; i++) |
| 361 | { |
| 362 | row = (int)(i*hscale); |
| 363 | if (row > rows) |
| 364 | break; |
| 365 | sourceIndex = cols*row; |
nothing calls this directly
no test coverage detected