Subversion Repositories pentevo

Rev

Rev 716 | Blame | Last modification | View Log | Download | RSS feed

  1. #pragma once
  2.  
  3. struct RSM_DATA
  4. {
  5.    __m64 *colortab; // tables for current frame
  6.  
  7.    enum { MAX_MIX_FRAMES = 8, FRAME_TABLES_SIZE = MAX_MIX_FRAMES*0x100*4*8 };
  8.    enum { MAX_LINE_DWORDS = MAX_WIDTH };
  9.    unsigned mix_frames, frame_table_size, line_size_d;
  10.    union {
  11.       __m64 line_buffer[MAX_LINE_DWORDS/2];
  12.       unsigned line_buffer_d[MAX_LINE_DWORDS];
  13.    };
  14.  
  15.    unsigned period, frame, rbuf_dst, bias;
  16.  
  17.    unsigned char *data;
  18.    unsigned char *needframes; // new spectrum frames in next pc frame
  19.    __m64 *tables;
  20.  
  21.    RSM_DATA() { data = 0; }
  22.    ~RSM_DATA() { free(data); }
  23.  
  24.    void prepare_line_8(unsigned char *src0);
  25.    void prepare_line_16(unsigned char *src0);
  26.    void prepare_line_32(unsigned char *src0);
  27.  
  28.    int mode;
  29.    // 0 - 16/32bit RGB. tables:  4*attr+2pix => 2 pixels in MMX QWORD
  30.    // 1 - 16bit YUY2.   tables: 16*attr+4pix => 4 pixels in MMX QWORD
  31.    // 2 - 8bit.         tables: 16*attr+4pix => 4 pixels in DWORD
  32.  
  33. };
  34.  
  35. extern RSM_DATA rsm;
  36.  
  37. void __fastcall render_rsm(unsigned char *dst, unsigned pitch);
  38. void calc_rsm_tables();
  39.