view libvo/osd.h @ 18683:d940ecaff286

moves invariant code (chiefly MMX register initialization) out of loops as well as eliminating some memory accesses within the inner loop. Patch by Zuxy Meng < zuxy POIS meng AH gmail POIS com > Original thread: Date: Mon, 12 Jun 2006 00:31:53 -0700 (PDT) Subject [MPlayer-dev-eng] [PATCH] Loop invariant motion in libvo/osd_template.c
author gpoirier
date Mon, 12 Jun 2006 11:14:10 +0000
parents f580a7755ac5
children 3f0d00abc073
line wrap: on
line source


#ifndef __MPLAYER_OSD_H
#define __MPLAYER_OSD_H

// Generic alpha renderers for all YUV modes and RGB depths.
// These are "reference implementations", should be optimized later (MMX, etc)

extern void vo_draw_alpha_init(void); // build tables

extern void vo_draw_alpha_yv12(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride);
extern void vo_draw_alpha_yuy2(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride);
extern void vo_draw_alpha_uyvy(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride);
extern void vo_draw_alpha_rgb24(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride);
extern void vo_draw_alpha_rgb32(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride);
extern void vo_draw_alpha_rgb15(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride);
extern void vo_draw_alpha_rgb16(int w,int h, unsigned char* src, unsigned char *srca, int srcstride, unsigned char* dstbase,int dststride);

#endif