filename | src/pvr2/tileiter.h |
changeset | 1153:00e507e4025c |
prev | 1151:e1848ca9b5b1 |
next | 1298:d0eb2307b847 |
author | nkeynes |
date | Thu Feb 23 15:24:47 2012 +1000 (12 years ago) |
permissions | -rw-r--r-- |
last change | Check for existence of glDrawBuffer (assuming that glReadBuffer will follow). Note only need to guard the common code in gl_fbo.c |
file | annotate | diff | log | raw |
1.1 --- a/src/pvr2/tileiter.h Wed Dec 08 18:33:23 2010 +10001.2 +++ b/src/pvr2/tileiter.h Thu Feb 23 15:24:47 2012 +10001.3 @@ -84,36 +84,34 @@1.4 for(;;){1.5 uint32_t entry = *it->ptr;1.6 uint32_t tag = entry >> 29;1.7 - if( tag < 6 ) {1.8 - if( tag & 0x04 ) {1.9 - int vertex_count = tag-1; /* 4 == tri, 5 == quad */1.10 - int vertex_length = (entry >> 21) & 0x07;1.11 - if( (entry & 0x01000000) && (pvr2_scene.shadow_mode == SHADOW_FULL) ) {1.12 - it->poly_size = 5 + (vertex_length<<1) * vertex_count;1.13 - } else {1.14 - it->poly_size = 3 + vertex_length * vertex_count;1.15 - }1.16 - it->strip_count = ((entry >> 25) & 0x0F);1.17 - it->poly_addr = entry & 0x001FFFFF;1.18 + if( tag == 0x07 ) {1.19 + if( tag & 0x10000000 ) {1.20 + it->ptr = NULL;1.21 return;1.22 } else {1.23 - /* Other polygon */1.24 - it->strip_count = 0;1.25 - it->poly_addr = entry & 0x001FFFFF;1.26 - return;1.27 + it->ptr = (uint32_t *)(pvr2_main_ram + (entry&0x007FFFFF));1.28 + it->poly_addr = -1;1.29 + entry = *it->ptr;1.30 }1.31 + } else if( tag == 6 ) {1.32 + /* Illegal? Skip */1.33 + it->ptr++;1.34 + } else if( tag & 0x04 ) {1.35 + int vertex_count = tag-1; /* 4 == tri, 5 == quad */1.36 + int vertex_length = (entry >> 21) & 0x07;1.37 + if( (entry & 0x01000000) && (pvr2_scene.shadow_mode == SHADOW_FULL) ) {1.38 + it->poly_size = 5 + (vertex_length<<1) * vertex_count;1.39 + } else {1.40 + it->poly_size = 3 + vertex_length * vertex_count;1.41 + }1.42 + it->strip_count = ((entry >> 25) & 0x0F);1.43 + it->poly_addr = entry & 0x001FFFFF;1.44 + return;1.45 } else {1.46 - if( tag == 0x07 ) {1.47 - if( entry & 0x10000000 ) {1.48 - it->ptr = NULL;1.49 - return;1.50 - } else {1.51 - it->ptr = (uint32_t *)(pvr2_main_ram + (entry&0x007FFFFF));1.52 - }1.53 - } else if( tag == 6 ) {1.54 - /* Illegal? Skip */1.55 - it->ptr++;1.56 - }1.57 + /* Other polygon */1.58 + it->strip_count = 0;1.59 + it->poly_addr = entry & 0x001FFFFF;1.60 + return;1.61 }1.62 }1.63 }
.