]> git.vomp.tv Git - vompclient-marten.git/blob - glmocoshader.h
MoComp nearly bug free
[vompclient-marten.git] / glmocoshader.h
1 /*\r
2     Copyright 2012 Marten Richter\r
3 \r
4     This file is part of VOMP.\r
5 \r
6     VOMP is free software; you can redistribute it and/or modify\r
7     it under the terms of the GNU General Public License as published by\r
8     the Free Software Foundation; either version 2 of the License, or\r
9     (at your option) any later version.\r
10 \r
11     VOMP is distributed in the hope that it will be useful,\r
12     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14     GNU General Public License for more details.\r
15 \r
16     You should have received a copy of the GNU General Public License\r
17     along with VOMP; if not, write to the Free Software\r
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.\r
19 */\r
20 \r
21 #ifndef GL_MOCOSHADER_H\r
22 #define GL_MOCOSHADER_H\r
23 \r
24 #include "glshader.h"\r
25 #include <libavcodec/xvmc.h>\r
26 \r
27 struct VPEOGLFrame;\r
28 struct VPE_FrameBuf;\r
29 \r
30 \r
31 class GLMocoShader: public GLShader {\r
32 public:\r
33         GLMocoShader();\r
34         virtual ~GLMocoShader();\r
35 \r
36         int init();\r
37         int deinit();\r
38 \r
39         int uploadDataBlocks(short* blocks,unsigned int num_blocks, XvMCMacroBlock *m_blocks,unsigned int num_m_blocks);\r
40 \r
41         int doMoCo(VPEOGLFrame *target,VPEOGLFrame *forward,VPEOGLFrame *backward);\r
42 \r
43 protected:\r
44         virtual int BindAttributes();\r
45         GLuint frame_buf;\r
46         GLuint data_blocks;\r
47         GLuint triangles;\r
48         GLuint macro_block;\r
49         GLint loc_pict_scale;\r
50         GLint blocks_loc;\r
51         GLint forward_pic_loc;\r
52         GLint backward_pic_loc;\r
53         GLint pict_size_loc;\r
54         unsigned int valid_macro_blocks;\r
55 \r
56 \r
57 \r
58 };\r
59 \r
60 \r
61 #endif\r