Difference for main/texmerge.c from version 1.2 to 1.3


version 1.2 version 1.3
Line 19
 
Line 19
  * Routines to cache merged textures.   * Routines to cache merged textures.
  *    *
  * $Log$   * $Log$
    * Revision 1.3  1999/10/07 21:08:36  donut
    * OGL alternate texmerge
    *
  * Revision 1.2  1999/09/21 04:05:55  donut   * Revision 1.2  1999/09/21 04:05:55  donut
  * mostly complete OGL implementation (still needs bitmap handling (reticle), and door/fan textures are corrupt)   * mostly complete OGL implementation (still needs bitmap handling (reticle), and door/fan textures are corrupt)
  *   *
Line 139
 
Line 142
   
 //resending textures into video ram is very slow, so cache more (worst case, the ogl driver will swap out some itself, probably doing a better job) -MM  //resending textures into video ram is very slow, so cache more (worst case, the ogl driver will swap out some itself, probably doing a better job) -MM
 #ifdef OGL  #ifdef OGL
   #include "ogl_init.h"
 #define MAX_NUM_CACHE_BITMAPS 200  #define MAX_NUM_CACHE_BITMAPS 200
 #else  #else
 #define MAX_NUM_CACHE_BITMAPS 50  #define MAX_NUM_CACHE_BITMAPS 50
Line 300
 
Line 304
   
  return Cache[least_recently_used].bitmap;   return Cache[least_recently_used].bitmap;
 }  }
   
   #ifndef NMONO
   grs_bitmap * usedp[500];
   int usedc[500];
   int usedn,usedna,usedg,usedgc;
   void addused(grs_bitmap *bm){
    int u;
    for (u=0;u<usedn;u++)
    if (usedp[u]==bm){
    usedc[u]++;
    return;
    }
    usedp[usedn]=bm;
    usedc[usedn]=1;
    usedn++;
    if (!(bm->bm_flags&BM_FLAG_SUPER_TRANSPARENT))
    usedna++;
   #ifdef OGL
    if (bm->gltexture>0)
    usedg++;
   #endif
   }
   void merge_textures_stats(void){
    int i,num=0,numu=0,strans=0;
    usedn=usedna=usedg=usedgc=0;
    for (i=0; i<num_cache_entries; i++ ){
    if (Cache[i].last_frame_used<0){
    numu++;
    continue;
    }
    num++;
    if (Cache[i].top_bmp->bm_flags&BM_FLAG_SUPER_TRANSPARENT)
    strans++;
    addused(Cache[i].top_bmp);
    addused(Cache[i].bottom_bmp);
   #ifdef OGL
    if (Cache[i].bitmap->gltexture>0)
    usedgc++;
   #endif
    }
    mprintf((0,"texmerge: %i(%ig, %igc, %i left), strans:%i, uniq:%i(%i)\n",num,usedg,usedgc,numu,strans,usedn,usedna));
   }
   #endif //!NMONO
   
 void merge_textures_new( int type, grs_bitmap * bottom_bmp, grs_bitmap * top_bmp, ubyte * dest_data )  void merge_textures_new( int type, grs_bitmap * bottom_bmp, grs_bitmap * top_bmp, ubyte * dest_data )
 {  {

Legend:
line(s) removed in v.1.2 
line(s) changed
 line(s) added in v.1.3