Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
716 | lvd | 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(); |