FireBirdLib - Topfield TMS PVR TAP Programming Library
OSDToBMP.c
Go to the documentation of this file.
1#include "FBLib_av.h"
2#include "libFireBird.h"
3
4void OSDToBMP(TYPE_OsdBaseInfo *OsdBaseInfo, int BMPwidth, int BMPheight, byte *BMPPixelBuffer, int Alpha)
5{
7
8 dword *pixel;
9 register int pos, x, y;
10 int n1, n2, nR, nG, nB;
11
12 (void)Alpha;
13
14 if (!BMPPixelBuffer)
15 {
16 TRACEEXIT();
17 return;
18 }
19
20 pixel = OsdBaseInfo->frameBuffer;
21 for(y = 0; y < BMPheight; y++)
22 {
23 for(x = 0; x < BMPwidth; x++ )
24 {
25 pos = ((BMPheight - y - 1) * BMPwidth + x) * 3;
26
27 n1 = A8888(*pixel) / 2.55;
28 n2 = 100 - n1;
29
30 nR = (n2 * BMPPixelBuffer[pos + 2] + n1 * R8888(*pixel)) / 100;
31 nG = (n2 * BMPPixelBuffer[pos + 1] + n1 * G8888(*pixel)) / 100;
32 nB = (n2 * BMPPixelBuffer[pos] + n1 * B8888(*pixel)) / 100;
33
34 BMPPixelBuffer[pos + 2] = _Clip(nR);
35 BMPPixelBuffer[pos + 1] = _Clip(nG);
36 BMPPixelBuffer[pos] = _Clip(nB);
37
38 pixel++;
39 }
40 }
41
42 TRACEEXIT();
43}
void OSDToBMP(TYPE_OsdBaseInfo *OsdBaseInfo, int BMPwidth, int BMPheight, byte *BMPPixelBuffer, int Alpha)
Definition: OSDToBMP.c:4
#define B8888(x)
Definition: libFireBird.h:243
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
#define R8888(x)
Definition: libFireBird.h:241
#define G8888(x)
Definition: libFireBird.h:242
#define A8888(x)
Definition: libFireBird.h:240
#define _Clip(a)
Definition: libFireBird.h:225