X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bigscreen%2Ftinyptc%2Fxvshm.h;fp=bigscreen%2Ftinyptc%2Fxvshm.h;h=10d61abd715cc0467c14d77b6c83fdd427859b09;hb=140a0aae7299d15459fe9ec74ad5020887e0a960;hp=0000000000000000000000000000000000000000;hpb=fd56777b1051147ba14850b72f1f959cd82a1827;p=ccbs diff --git a/bigscreen/tinyptc/xvshm.h b/bigscreen/tinyptc/xvshm.h new file mode 100644 index 0000000..10d61ab --- /dev/null +++ b/bigscreen/tinyptc/xvshm.h @@ -0,0 +1,91 @@ +/* + * TinyPTC x11 v0.7.3 XVideo with Shared Memory Extension target + * Copyright (C) 2002 Fred Howell + * Copyright (C) 2002 Alessandro Gatti + * + * http://www.sourceforge.net/projects/tinyptc/ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __PTC_XVSHM_H +#define __PTC_XVSHM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "tinyptc.h" + +#ifdef __PTC_XVSHM__ + +#ifdef __TINYPTC_INCLUDED +#error You chose more than one target. Please make your mind and try again. +#endif /* __TINYPTC_INCLUDED */ + +#define __TINYPTC_INCLUDED +#define pragma target xvshm + +#ifdef __cplusplus + extern "C" { +#endif /* __cplusplus */ + +int ptc_open (char *title, int width, int height); +int ptc_update (void *buffer); +void ptc_close (void); +int ptc_process_events (void); + +#ifdef __PTC_MMX__ +void convert_yv12_mmx(void *pin, void *py, void *pu, void *pv, int stride); +#else +void yuvbuf_init(); +void convert_yv12_c(void *pin, unsigned char *py, unsigned char *pu, unsigned char *pv, int stride); +#endif /* __PTC_MMX__ */ + +#ifdef __cplusplus + } +#endif /* __cplusplus */ + +#endif /* __PTC_XVSHM__ */ + +#endif /* __PTC_XVSHM_H */ + +#ifdef __PTC_FROM_SOURCE + +static Display *ptc_display; +static int ptc_screen, ptc_screen_width, ptc_screen_height, + ptc_viewport_width, ptc_viewport_height, ptc_depth; +static Window ptc_root_window; +static Visual *ptc_visual; +static char *ptc_buffer = NULL; + +static Window ptc_window; +static int ptc_x_position, ptc_y_position; +static XSetWindowAttributes ptc_window_attributes; +static GC ptc_window_gc; + +static XShmSegmentInfo ptc_shm_segment; +static int ptc_xv_ok; +static XvImage *ptc_xvimage; +static XvPortID ptc_xv_port; + + +#endif /* __PTC_FROM_SOURCE */